Most Valuable Professional


View Jan Karel Pieterse's profile on LinkedIn subscribe to rss feed
Subscribe in a reader

Home > Nederlandse site > Artikelen > Excel Namen > Bugs Naam obj.
This page in English

Bereiknamen in Excel

Bugs in Excel's naam object

Tijdens de ontwikkeling van de Name Manager,  is een aantal bugs in Excel's naam object gevonden.

RefersToLocal

De RefersToLocal eigenschap van een naam accepteert slechts een Engelse formule. Bijvoorbeeld deze programmaregel:

Names("Test").RefersToLocal="=SOM($A$1;$B$1)"

geeft in de Nederlandse Excel een foutmelding, zelfs als Excel een dergelijke formule gewoon in een cel accepteert. In de Name Manager is hiervoor een oplossing gemaakt.

Via VBA formulier naam definieren tonen

Wederom een probleem voor niet Engelse Excel versies: Wanneer men via VBA het formulier Naam definieren toont, via:

Application.Dialogs(xlDialogDefineName).Show

of

Application.CommandBars(1).FindControl(ID:=878, recursive:=True).Execute

dan zal Excel de celverwijzing altijd weergeven in R1K1 notatie, ongeacht de instelling van Excel.

Namen van werkbladen met speciale tekens

Wanneer men een naam creŽert op een blad genaamd "Test":

Naam: Test!test

Verwijst naar: "1"

en vervolgens het blad een andere naam geeft, bijvoorbeeld "Hallo! daar!" (zonder de aanhalingstekens), dan wordt deze naam ontoegankelijk voor bewerken en/of wissen. Andere vreemde karakters in bladnamen (zoals "[", "]" en char(3) ) kunnen zelfs leiden tot het vastlopen van Excel, wanneer geprobeerd wordt lokale naam in deze bladen te bewerken. De Name Manager waarschuwt in geval dit zich voordoet.

Globale en lokale namen met dezelfde naam

Wanneer men een lokale naam heeft op het actieve werkblad en er een globale naam is met dezelfde naam, dan zullen de eigenschappen van de lokale naam worden gewijzigd wanneer men tracht de globale naam te wijzigen, zelfs indien men de naam van de werkmap voor de globale naam plaatst (de aangegeven methode om een globale naam aan te duiden). De Name Manager voorkomt deze problemen en bewerkt altijd de naam die u selecteert.

Namen waarvan de "verwijst naar" eigenschap begint met =!

(bijvoorbeeld =!$A$1) kunnen onverwachte resultaten geven als de herberekening van Excel veroorzaakt wordt door VBA. Dergelijke namen zouden de waarde van de aangegeven cel op het blad waar de naam in gebruikt is moeten geven, maar wanneer de herberekening vanuit VBA wordt gestart geven dergelijke namen ineens de waarde uit een cel van het actieve werkblad weer. De Name Manager zal een waarschuwing geven wanneer een naam met een dergelijke verwijzing wordt aangetroffen.

Mocht u een naam wensen die altijd verwijst naar een cel op het blad waarin die naam gebruikt wordt, gebruik dan:

=INDIRECT("A1") in plaats van =!$A$1 .



Vragen, suggesties en opmerkingen

Al het commentaar over deze pagina:


Comment by: Arnoud Vree (7/10/2011 3:01:05 AM)

zit al een tijdje vast met onderstaande code:

heb al heel wat geprobeerd maar kom er maar niet uit om een bereik te difinieren aan een naam.


Sheets("Spelers").Select
Range("A" & CStr(Rows.Count)).End(xlUp).Select
laatste = ActiveCell.Offset(0, 7).Address

With ActiveWorkbook.Names("Deelnemers")
        .Name = "Deelnemers"
     .RefersToR1C1 = "=Spelers!R1C8:" & laatste
        End With
End Sub


Het doel van deze is om een Validatielijst op een ander werkblad telkens te kunnen veranderen.

 


Comment by: Jan Karel Pieterse (7/11/2011 12:26:01 AM)

Hallo Arnoud,

Welke Excel versie heb je?

Indien 2003 of hoger, selecteer je lijst met namen, druk op control+l om er een tabel (2007/2010) of Lijst (2003) van te maken. Selecteer nu het bereik dat een naam moet krijgen en bepaal de naam. Als het goed is, past de bereiknaam zich nu vanzelf aan.

 


Comment by: Johan (7/22/2011 12:59:57 AM)

Is het ook mogelijk gedefiniŽerde namen te kopieren naar een ander werkblad

 


Comment by: Jan Karel Pieterse (7/22/2011 7:24:37 AM)

Hallo Johan,

Niet eenvoudig. Je zou mijn Name Manager kunnen gebruiken en dan de List optie aanklikken (die maakt een lijst vande bereiknamen). Als je die lijst bewerkt voor alleen de bereiknamen die je wilt kopieren, dan kan je na het starten van Name manager de knop "Pick up" gebruiken om die bewerkte bereiknamen te laten maken.

Let op: Je kan niet twee dezelfde -globale- bereiknamen hebben. Als je dezelfde namen wilt, dan moet je die lokaal definieren, dus met de werkbladnaam ervoor:
'Blad naam'!BereikNaam

 


Comment by: Erdogan Sener (2/25/2013 11:18:25 AM)

Is er een maximaal aantal te benoemen bereiknamen in een excel bestand? Ik heb ongeveer 42 bereiknamen gedefinieerd, maar vele worden niet herkend in formules.
alvast bedankt en groet
E. Sener

 


Comment by: Jan Karel Pieterse (2/25/2013 4:43:42 PM)

Hallo Erdogan,

Er is een maximum, maar het is echt heel veel hoger dan 42. Ik heb bestanden gezien met meer dan 10.000 namen (niet dat dat wenselijk is!).
Er is zeer waarschijnlijk iets anders mis.

 


Heeft u vragen, suggesties of opmerkingen? Gebruik dan dit formulier.

Mocht uw vraag niet direct relevant zijn voor deze pagina, maar een algemene Excel vraag betreffen, dan adviseer ik om deze hier te stellen: www.eileenslounge.com.

Uw naam (verplicht veld):

Uw e-mail adres (Niet verplicht, dit adres wordt niet getoond)

Uw verzoek of commentaar:

Als u VBA code in uw commentaar plaatst, gebruik dan [VB] tags: [VB]Uw code[/VB].