Herbers Excel-Forum - das Archiv

CodeName von neu angelegten Worksheets

Informationen und Beispiele zu den hier genannten Dialog-Elementen:
Bild

Betrifft: CodeName von neu angelegten Worksheets
von: Heinrich Schewe
Geschrieben am: 10.10.2003 03:29:32
Hallo Excelperten,

folgender Code bringt mir den Codenamen, wenn das VBE-Fenster geöffnet ist. Wenn nicht, kommt ein leerer String. Woran liegt das, bzw. wie komme ich an den Codenamen? (Excel 97, VBA Extensibility 5.3 aktiviert)



Sub test()
Dim cn As String
Dim wks As Worksheet
Set wks = ThisWorkbook.Worksheets.Add
cn = wks.CodeName
MsgBox "Codename = " & cn
End Sub



Ich hoffe es kann mir jemand weiterhelfen...

Gruß,
Heinrich
Bild

Betrifft: AW: CodeName von neu angelegten Worksheets
von: Willie
Geschrieben am: 10.10.2003 06:31:29
Guten Morgen Heinrich
Ich denke du suchst nur nach Name hier ein Beispiel für die ersten 3 Tabellenblatter!
In der Msgbox siehst du den Unterschied!
Gruß
Willie



Sub unterschied ()
For i = 1 To 3
Set wks = ThisWorkbook.Worksheets(i)
cn = wks.CodeName
blName = wks.Name
MsgBox "Codename = " & cn & vbLf & _
"Blattname = " & blName
Next
End Sub


Bild

Betrifft: AW: CodeName von neu angelegten Worksheets
von: Heinrich Schewe
Geschrieben am: 10.10.2003 07:24:27
Der Unterschied zwischen Name und CodeName ist mehr bewußt und ich brauche den CodeNamen, um dem neu hinzugefügten Arbeitsblatt auch ein paar Ereignisprozeduren spendieren zu können.
Das soll dann über

ThisWorkbook.VBProject.VBComponents(cn).CodeModule.AddFromString text

passieren, aber solange der Codename leer ist kriege ich das nicht hin...
Bild

Betrifft: AW: CodeName von neu angelegten Worksheets
von: Willie
Geschrieben am: 10.10.2003 07:30:21
Aber der ist doch nicht mehr leer!
oder ist das nur ein Zeitmanagement Problem?
dann würde ich einfach diese Zeile nach dem Add ein fügen!
Application.Wait (Now + TimeValue("0:00:3")) ' Das Marko wartet dann 3 Sekunden!

Mehr fällt mir dazu leider nicht ein
Gruß
Willie
Bild

Betrifft: AW: CodeName von neu angelegten Worksheets
von: Heinrich Schewe
Geschrieben am: 10.10.2003 07:47:34
Das bringt leider auch nichts....

Wie gesagt: solange das VBE-Fenster offen ist funktioniert es und ich bekomme den richtigen CodeName, wenn es geschlossen ist ist der String leer. :-(
Bild

Betrifft: AW: CodeName von neu angelegten Worksheets
von: Willie
Geschrieben am: 10.10.2003 07:55:32
Heinrich da fällt mir noch was ein
Hast du deine Variable cn als public declariert? Wenn nein
dann versuche es mal damit!
Willie
Bild

Betrifft: AW: CodeName von neu angelegten Worksheets
von: Heinrich Schewe
Geschrieben am: 10.10.2003 08:04:13
bringt leider auch nichts. Vielen Dank für deine Bemühungen
Heinrich
Bild

Betrifft: Echt Schade
von: Willie
Geschrieben am: 10.10.2003 08:15:44
Echt Schade Sorry! Trotzdem noch einen schönen TAG
Gruß
Willie
Bild

Betrifft: AW: CodeName von neu angelegten Worksheets
von: Harald Kapp
Geschrieben am: 10.10.2003 06:35:56
Hallo Heinrich,
ich kann Dir zwar leider nicht genau sagen, was es moit dem CodeNamen auf sich hat, aber der einfache "Name" genügt auch:



Sub test()
Dim cn As String
Dim wks As Worksheet
Set wks = ThisWorkbook.Worksheets.Add
cn = wks.Name
MsgBox "Name = " & cn
End Sub



Hier wird der Name der neuen Tabelle angezeigt, auch wenn der VBA Editor nicht geöffnet ist.

Gruß Harald

P.S.: Hab Mal in der Hilfe nachgeguckt. Ist wenig informativ, aber interessant ist, dass der Codename und der angezeigte Blattname einer Tabelle durchaus unterschiedlich sein können. Hast Du deshalb den Codenamen verwendet? Oder willst Du gar den angezeigten >Namen verwenden? Dann ist der obige Code ohnehin besser geeignet.
Bild

Betrifft: AW: CodeName von neu angelegten Worksheets
von: K.Rola
Geschrieben am: 10.10.2003 10:51:36
Hallo,

Option Explicit


Sub test()
Dim ws As Worksheet
Set ws = Worksheets.Add
MsgBox ws.CodeName
End Sub



Gruß K.Rola
Bild

Betrifft: AW: CodeName von neu angelegten Worksheets
von: Heinrich Schewe
Geschrieben am: 10.10.2003 11:22:47
Das tuts bei mir leider auch nicht.
Soblad der Visual Basic Editor geschlossen ist und ich das Makro über Extras->Makros->Makro ausführen starte kommt ein leerer String...

Ich kann's mir nicht erklären
Heinrich
Bild

Betrifft: Vorschlag:CodeName was sagt z.B K.Rola?
von: Jörg Gradert
Geschrieben am: 10.10.2003 18:32:55
Hallo Heinrich,
Ich kann den Fehler so wie Du ihn beschreibst nachvollziehen.
Ich blutiger VBA-Anfänger weiss aber nicht was ich hier tue, darum freue ich mich über Rückmeldungen der Fortgeschrittenen Anwender.
Ich habe mir überlegt, dass man dem Makro irgendwie mitteilen sollte, dass man den Codenamen der Tabelle aus dem VBA-Projekt meint.
Darum habe ich folgendes gemacht, was bei mir auch nach Schliessen des VBA-Editors einen Namen in der Messagebox anzeigt.
Ist das eine Möglichkeit?



Sub test()
Dim ws As Worksheet
Set ws = Worksheets.Add
With Application.VBE
MsgBox ws.CodeName
End With
End Sub



Gruss Jörg
Bild

Betrifft: AW: Vorschlag:CodeName was sagt z.B K.Rola?
von: Heinrich Schewe
Geschrieben am: 11.10.2003 18:18:52
Das scheint des Rätsels Lösung zu sein.

Kann jemand dieses Verhalten erklären, damit wir Stümper nachvollziehen können, was in Excel bzw. VBA passiert?

Gruß,
Heinrich
 Bild