Microsoft Excel

Herbers Excel/VBA-Archiv

Name definieren | Herbers Excel-Forum


Betrifft: Name definieren von: Pietro
Geschrieben am: 03.02.2012 13:19:12

Hallo zusammen

Ich möchte bei der folgenden Funktion "Tabelle1" durch das zurzeit aktive Tabellenblatt ersetzen. Ich bin seit einer Stunde bin ich am üben ohne ergebnis!

Sub NameErstellen()
ActiveWorkbook.ActiveSheet.Names.Add Name:="Beispielname", RefersToR1C1:="=Tabelle1!R10C4"
End Sub

Besten Dank für die Hilfe

Pietro

  

Betrifft: AW: Name definieren von: Rudi Maintaire
Geschrieben am: 03.02.2012 13:25:13

Hallo,
ganz einfach so:

Sub NameErstellen()
  ActiveSheet.Names.Add Name:="Beispielname", RefersToR1C1:="=R10C4"
End Sub

Gruß
Rudi


  

Betrifft: AW: Name definieren von: Pietro
Geschrieben am: 03.02.2012 13:35:12

Hallo Rudi

Besten Dank für die rasche Antwort.

Ich habe es immer mit ActiveSheet versucht. Es gibt noch viel zu lernen in VBA.

Einen schönen Tag wünscht

Pietro


  

Betrifft: Definierten Namen MIT ActiveSheet.Name erzeugen von: NoNet
Geschrieben am: 03.02.2012 14:45:14

Hallo Pietro,

Rudis Lösungsvorschlag genügt schon. Damit wird ein lokaler Blattname erzeugt, der nur in diesem Blatt gültig ist (wegen Activesheet.Names.Add).
Da Du aber dazu "lernen" möchtest, zeige ich dir hier noch die Alternative MIT Angabe des aktuellen Tabellenblattnamens :

Sub NameErstellen_Mit_Blattname()
    'Dieser Name ist dann nur im AKTUELLEN Blatt gültig :
    ActiveSheet.Names.Add Name:="Beispielname", RefersToR1C1:= _
                                "='" & ActiveSheet.Name & "'!R10C4"

    'Dieser Name ist in der gesamten Mappe gültig :
    ActiveWorkbook.Names.Add Name:="Beispielname2", RefersToR1C1:= _
                                "='" & ActiveSheet.Name & "'!R5C3"
End Sub
Die ' sind notwendig, falls der Blattname Leerzeichen beinhaltet bzw. beinhalten könnte, dann muss im Bezug der Blattname in ' eingeschlossen werden, z.B. ='Tabellenname mit Leerzeichen'!$D$10

Beachte bitte auch den Unterschied zwischen ActiveSheet.Names.Add und ActiveWorkbook.Names.Add !

Gruß, NoNet