Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1472to1476
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Tabellenname ermitteln

Tabellenname ermitteln
06.02.2016 17:23:30
Holger
Hallo zusammen,
ich scheitere gerade den Namen einer Tabelle in VBA zu ermitteln.
Normal würde "Tabellenname = Tabelle1.Name" schon funktionieren.
Ich möchte aber über einen selbst erstellten String die Namensabfrage variabel gestalten, ich dachte dabei an folgenden Code, leider funktioniert das aber nicht.
Tabellenname = Worksheets("variabler String").Name
Kann mir hier Bitte jemand helfen?
SG Holger

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Tabellenname ermitteln
06.02.2016 17:25:01
Hajo_Zi
Hallo Holger,
warum so kompliziert?
Tabellenname = "variabler String"

AW: Tabellenname ermitteln
06.02.2016 17:33:30
Holger
Ich habe das anders gemeint.
Es gibt im Excel Arbeitsblatt einen Namen im Register,
dann gibt es für dieses Arbeitblatt einen eigenständign Namen im VBA.
Somit kann man über den VBA-Namen den Registerblattnamen auslesen.
z.B. Tabelle1.Name gibt den Registerblatnamen zurück.
Meine Datei hat über 30 Tabellenblätter mit VBA-Namen, diese könnte ich als String für eine Schleife erzeugen und dann den Registerblattnamen auslesen. z.B. heißt mein String dann Tabelle1 oder Tabelle14.

Anzeige
meinst du das?
06.02.2016 18:22:58
Michael
Hi zusammen,
steck das mal in ein Modul:
Option Explicit
Sub namenAuslesen()
Dim sh As Worksheet
For Each sh In Worksheets
MsgBox "VBA: " & sh.CodeName & " -normal-: " & sh.Name
Next
End Sub
' und / oder:
Sub namenInArray()
Dim shA() As String
Dim sh As Worksheet
Dim i As Long
ReDim shA(Sheets.Count - 1)
i = 0
For Each sh In Worksheets
shA(i) = sh.CodeName
i = i + 1
Next
For i = LBound(shA) To UBound(shA)
MsgBox "i: " & i & " Name: " & shA(i)
Next
End Sub
Schöne Grüße,
Michael

AW: meinst du das?
06.02.2016 18:46:50
Holger
Kommt meinem Problem schon näher,
das Ergenis des ersten Programmabschnitts schaut dann so aus:
VBA: Tabelle7E -normal-: Eccos_7
Ich möchte also über den in einer Schleife selbst generierten Namen Tabelle7E od. Tabelle8E usw.
den normalen Namen ermitteln.
Versucht habe ich das über: Debug.Print sh("Tabelle7E").Name (klappt so aber nicht)
(Tabelle7E wird aber über eine String Variable eingesetzt)
SG Holger

Anzeige
AW: meinst du das?
06.02.2016 18:53:16
Daniel
Hi
dann probiers mal mit dieser Funktion:
Function RegisterName_Wenn_CodeName_Bekannt(CodeName_als_String As String, Optional Datei As  _
Workbook) As String
Dim i As Long
If Datei Is Nothing Then Set Datei = ActiveWorkbook
For i = 1 To Datei.Sheets.Count
If Datei.Sheets(i).CodeName = CodeName_als_String Then
RegisterName_Wenn_CodeName_Bekannt = Datei.Sheets(i).Name
Exit Function
End If
Next
End Function
erster Parameter ist der Codename des gesuchten Blattes als Textstring.
zweiter Parameter die Datei die durchsucht werden soll als Workbook.
wenn du die Datei nicht angibst, verwendet die Funktion die aktive Datei.
aufruf wäre im Prinzip:
Debug.Print  RegisterName_Wenn_CodeName_Bekannt("Tabelle7E", Thisworkbook)
Gruß Daniel

Anzeige
genau, Daniel,
06.02.2016 19:00:10
Michael
so ähnlich hätte ich es auch formuliert...
Der Punkt scheint zu sein, daß kein Zugriff auf das Blatt via Codename möglich ist.
Der Codename ist ja eigentlich auch kein String im Sinne eines Namens, sondern ein Objekt.
siehe auch http://www.cpearson.com/excel/RenameProblems.aspx
CP schreibt: " there is no such proprety that will give you a Worksheet object from a CodeName property."
Schöne Grüße,
Michael

AW: meinst du das?
06.02.2016 19:03:39
Holger
Ja das klappt so! Ich werds mal in Ruhe in mein Projekt integrieren und testen!
Auf jeden Fall schon mal vielen herzlich Dank für die schnelle Hilfe!
Sollte ich noch Fragen habe melde ich mich später nochmal...
Bis dann und SG Holger
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige