Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Codenamen eines Blattes über Variable ansprechen

Forumthread: Codenamen eines Blattes über Variable ansprechen

Codenamen eines Blattes über Variable ansprechen
11.02.2005 20:46:57
{Boris}
Hi Leute,
kann ich den Codenamen eines Tabellenblattes variabel ansprechen - z.B. über eine Schleife? (so á la: "Tabelle" & iCount)
Wenn ja: Wie?
Grüße Boris
Anzeige
AW: Codenamen eines Blattes über Variable ansprech
Ramses
Salam aleikum Boris

Sub Change_Codename()
'Neuaufbau aller Tabellennamen und VBA Tabellennamen
Dim i As Integer
For i = 1 To Worksheets.count
With ThisWorkbook.VBProject.VBComponents(Worksheets(i).CodeName)
.Properties("_CodeName").Value = "Tabelle" & i
.Properties("Name").Value = "Tabelle" & i
End With
Next i
End Sub

Gruss Rainer
Anzeige
Sauber!
Boris
Hi Rainer,
auf diese Verschachtelung bin ich nicht gekommen. Bin irgendwo bei den VBComponents hängen geblieben...;-)
Funktioniert tadellos! Danke!
Grüße Boris
AW: Codenamen eines Blattes über Variable ansprech
Boris
Hi Rainer,
ein paar Threads weiter unten seht ne interessante Anfrage ("DisplayGridlines").
Wenn du Lust hast, schau´s dir mal an - würd mich auch interessieren.
Grüße Boris
Anzeige
AW: Codenamen eines Blattes über Variable ansprechen
K.Rola
Hallo Liebes,
worum gehts die konkret? Du kannst ein Blatt als VBComponent ansprechen.
Gruß K.Rola
Mist, nicht aktualisiert oT
K.Rola
ot
Dabei hatte ich doch auf dich gezählt...
Boris
Hallo meine Liebe,
...aber auch in der Zentralschweiz wird gekonnt programmiert :p
Aber du hast doch sicherlich eine Antwort auf die Frage zu den "DisplayGridlines" (ein paar Threads weiter unten). Interessiert mich auch.
Grüße Boris
Anzeige
AW: Dabei hatte ich doch auf dich gezählt...
K.Rola
Hi,
hab keine Lust das alles zu lesen. M.W. ist das nur im aktiven Fenster festzustellen.
Gruß K.Rola
AW: Dabei hatte ich doch auf dich gezählt...
Boris
Hi K.Rola,
aber das einfachste Beispiel ist doch in der Tat die selektierte Zelle in einem Blatt:
Wo wird denn intern wie gespeichert, welche Zelle auf dem jeweiligen Blatt zuletzt selektiert war? Hat man da irgenwie Zugriff drauf (ohne das Blatt zu aktivieren) oder sagt selbst die Meisterin aller Codezeilen, dass es anders nicht geht?
Grüße Boris
Anzeige
AW: Dabei hatte ich doch auf dich gezählt...
Ramses
Hallo Boris
gerade deine Frage noch gelesen.
Ich glaube auch, dass dies nur über das aktive Fenster der jeweiligen Arbeitsmappe abzurufen ist. Das Fenster muss dazu zwar nicht sichtbar aktiv sein, aber die aktive Tabelle der Mappe kann damit angesprochen/abgefragt werden.
WO Excel das allerdings abspeichert, weiss ich allerdings auch nicht.
Gruss Rainer
Anzeige
AW: Dabei hatte ich doch auf dich gezählt...
Boris
Hi Rainer,
WO Excel das allerdings abspeichert, weiss ich allerdings auch nicht.
Das ist ja hier das hüpfende Komma. Aber es wird wohl auch weiterhin ein Geheimnis bleiben, wenn selbst du und K.Rola überfragt sind.
Danke und
Grüße Boris
AW: Dabei hatte ich doch auf dich gezählt...
K.Rola
Hi,
bin noch nie in die Verlegenheit gekommen feststellen zu müssen, welche Zelle in
einem anderen Blatt zuletzt aktiv war. Ich würde das mit Objektvariablen lösen und
das setten in Selection_Change erledigen.
Sheets("Tabelle1").Activecell.address geht jedenfalls nicht.
Gruß K.Rola
Anzeige
AW: Dabei hatte ich doch auf dich gezählt...
Boris
Hi K.Rola,
in der Anfrage ging es ja auch um die Gitternetzlinien - und ich denk schon, dass das vergleichbar mit der aktiven Zelle ist.
Allerdings bleibt es wohl ein Geheimnis, WO Excel diese Informationen speichert.
Ist ja auch alles nicht so wichtig - nur hat es mich halt interessiert. Und wie bei Rainer schon geantwortet: Wenn selbst DU keine Antwort drauf hast, dann ist das einfach nicht machbar.
Grüße Boris
Anzeige
AW: Dabei hatte ich doch auf dich gezählt...
K.Rola
Hi,
"Wenn selbst DU keine Antwort drauf hast, dann ist das einfach nicht machbar."
Das würde ich so nicht behaupten, nur weiß ich es nicht besser.
Mir ist das auch nicht wichtig genug, um mich damit näher zu beschäftigen und
jedes Problem sozusagen auf Vorrat zu lösen, in der vagen Hoffnung, dass man
das irgendwann mal brauchen könnte, bringt mir keinen Lustgewinn.
Gruß K.Rola
Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

Codenamen eines Blattes über Variable ansprechen


Schritt-für-Schritt-Anleitung

Um den Codename eines Tabellenblattes in Excel VBA variabel anzusprechen, kannst du die folgende Schritt-für-Schritt-Anleitung befolgen:

  1. Öffne dein Excel-Dokument und drücke ALT + F11, um den VBA-Editor zu öffnen.

  2. Füge ein neues Modul hinzu, indem du mit der rechten Maustaste auf "VBAProject (deinDateiname)" klickst und dann "Einfügen" > "Modul" auswählst.

  3. Kopiere den folgenden VBA-Code in das Modul:

    Sub Change_Codename()
       Dim i As Integer
       For i = 1 To Worksheets.count
           With ThisWorkbook.VBProject.VBComponents(Worksheets(i).CodeName)
               .Properties("_CodeName").Value = "Tabelle" & i
               .Properties("Name").Value = "Tabelle" & i
           End With
       Next i
    End Sub
  4. Schließe den VBA-Editor und führe das Makro Change_Codename aus, um die Codenamen der Tabellenblätter zu ändern.


Häufige Fehler und Lösungen

  • Fehler: "Das Makro kann nicht ausgeführt werden."

    • Lösung: Stelle sicher, dass du die Makros in den Excel-Einstellungen aktiviert hast. Du kannst dies unter "Datei" > "Optionen" > "Trust Center" > "Einstellungen für das Trust Center" > "Makroeinstellungen" überprüfen.
  • Fehler: "VBA-Projekt ist schreibgeschützt."

    • Lösung: Du musst die Arbeitsmappe im Entwurfsmodus speichern oder die Schutz-Einstellungen anpassen, um Änderungen am VBA-Projekt vorzunehmen.

Alternative Methoden

Eine alternative Methode, um auf ein Excel VBA Tabellenblatt über eine Variable zuzugreifen, ist die Verwendung von Worksheets anstelle der VBComponents. Hier ist ein Beispiel:

Sub Access_Sheet_By_Name()
    Dim sheetName As String
    Dim ws As Worksheet

    sheetName = "Tabelle1" ' Name des Tabellenblatts
    Set ws = ThisWorkbook.Worksheets(sheetName)

    MsgBox "Der Codename ist: " & ws.CodeName
End Sub

Diese Methode ermöglicht es dir, auf das Blatt basierend auf dem Namen zuzugreifen.


Praktische Beispiele

Hier sind einige praktische Beispiele, wie du den Excel VBA Codename in deinen Projekten nutzen kannst:

  1. Zugriff auf eine Zelle:

    Sub Access_Cell()
       Dim ws As Worksheet
       Set ws = ThisWorkbook.Worksheets(1) ' Zugriff auf das erste Tabellenblatt
       ws.Range("A1").Value = "Hallo Welt!"
    End Sub
  2. Ändern des Codenamens und der Eigenschaften:

    Sub Rename_Sheet()
       With ThisWorkbook.VBProject.VBComponents("Tabelle1")
           .Properties("_CodeName").Value = "NeuerCodename"
           .Properties("Name").Value = "NeuerName"
       End With
    End Sub

Tipps für Profis

  • Verwende die Debug.Print-Anweisung, um den Wert von Variablen oder Eigenschaften in der Immediate-Fenster anzuzeigen, während du mit Codenamen arbeitest.
  • Halte die VBA-Projekte gut organisiert, indem du relevante Kommentare hinzufügst, um den Code leichter zu verstehen.
  • Nutze Option Explicit am Anfang deines Moduls, um sicherzustellen, dass alle Variablen deklariert sind, was hilft, Fehler zu vermeiden.

FAQ: Häufige Fragen

1. Was ist der Unterschied zwischen Codename und Name eines Tabellenblatts?
Der Codename ist der interne Name des Blattes, der im VBA-Code verwendet wird, während der Name das ist, was im Excel-Fenster angezeigt wird.

2. Kann ich den Codename eines Blattes auch manuell ändern?
Ja, du kannst den Codename eines Blattes im VBA-Editor unter "Eigenschaften" ändern, wenn du das Blatt auswählst.

3. Wie kann ich auf ein Blatt zugreifen, ohne seinen Namen zu wissen?
Du kannst die Indizes der Arbeitsblätter verwenden, um darauf zuzugreifen, z.B. Worksheets(1) für das erste Blatt.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige