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

Forumthread: Tabelle über VBA-Namen ansprechen

Tabelle über VBA-Namen ansprechen
Jochen
Hallo!
Ich habe eine Tabelle in den VBA-Eigenschaften benannt, d.h. unter Worksheet-Properties steht: (Name) Consolidation
Solange ich ein Makro in dieser Datei starte kann ich das Blatt prima ansprechen mit:
Consolidation.Activate
Sobald ich aber aus einer anderen Datei ein Makro starte, liefert
Consolidation.Activate den Fehler: Variable not defined.
Kann ich Excel irgendwie beibringen, die Namen im VBA der anderen Datei zu benutzen?
Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Tabelle über VBA-Namen ansprechen
Gerd
Du musst den Namen der Mappe angeben.
Gerd
AW: Tabelle über VBA-Namen ansprechen
Jochen
Hallo Gerd,
danke für die schnelle AW, sorry ich kapiers nicht
habe "Workbooks(WBload)." davorgesetzt
WBload ist die datei, die von einem makro geöffnet wird und in der ich ein blatt ansprechen möchte
Code:
WBload = ActiveWorkbook.Name '-setze ich nach dem Öffnen
...
Workbooks(WBload).Sheets("Zusammenfassung").Activate '-funktioniert prima
Workbooks(WBload).consolidation.Activate '-funktioniert nicht
consolidation.activate '-funktioniert nur aus der Mappe WBload heraus
In welcher Form braucht Excel den Mappennamen?
Anzeige
offen
Gerd
Sorry, verstehe auch nicht wieso.
Gerd
AW: Tabelle über VBA-Namen ansprechen
K.Rola
Hallo,
du musst das Teil als Komponente des VB-Projekts ansprechen, so in
der Art:
Option Explicit

Sub Blatt_ueber_Codenamen_ansprechen()
Const WND As String = "TestCodeName.xls"
Workbooks(WND).Activate
Workbooks(WND).VBProject.VBComponents("Das_ist_der_Codename_der_Tabelle").Activate
End Sub

Gruß K.Rola
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Tabelle über VBA-Namen ansprechen


Schritt-für-Schritt-Anleitung

Um in Excel eine Tabelle über ihren VBA-Namen anzusprechen, kannst du folgende Schritte befolgen:

  1. VBA-Editor öffnen: Drücke ALT + F11, um den VBA-Editor zu starten.

  2. Makro erstellen: Füge ein neues Modul hinzu und beginne mit deinem Makro.

  3. Workbook-Name abrufen: Nutze ActiveWorkbook.Name, um den Namen der aktiven Arbeitsmappe zu speichern.

  4. Tabellenblatt aktivieren: Verwende folgenden Code, um das Tabellenblatt anzusprechen:

    Sub TabelleAnsprechen()
       Dim WBload As String
       WBload = ActiveWorkbook.Name
       Workbooks(WBload).Sheets("DeinBlattName").Activate
    End Sub
  5. VBA-Namen verwenden: Wenn du ein Tabellenblatt mit einem VBA-Namen hast, kannst du es so ansprechen:

    Workbooks(WBload).Consolidation.Activate

    Ersetze "Consolidation" mit dem tatsächlichen VBA-Namen deines Tabellenblatts.


Häufige Fehler und Lösungen

  1. Fehler: "Variable not defined"

    • Lösung: Stelle sicher, dass der Workbook-Name korrekt angegeben ist. Nutze Workbooks(WBload) immer in Verbindung mit dem korrekten Blattnamen.
  2. Fehler: "Method 'Activate' of object 'Worksheet' failed"

    • Lösung: Überprüfe, ob das angegebene Blatt auch existiert und der Name korrekt ist.
  3. Fehler bei der Verwendung von Codename

    • Lösung: Wenn du mit Codenamen arbeitest, achte darauf, die genaue Schreibweise zu verwenden. Beispiel:
    Workbooks(WBload).VBProject.VBComponents("DeinCodename").Activate

Alternative Methoden

Wenn du ein Excel-Tabellenblatt ansprechen möchtest, gibt es verschiedene Ansätze:

  • Direktes Ansprechen mit Codenamen: Du kannst direkt auf ein Tabellenblatt zugreifen, ohne den Namen anzugeben:

    Worksheets("Codename").Activate
  • Objektvariablen verwenden: Speichere dein Tabellenblatt in einer Objektvariablen:

    Dim ws As Worksheet
    Set ws = Workbooks(WBload).Worksheets("DeinBlattName")
    ws.Activate

Praktische Beispiele

Hier sind einige nützliche VBA-Beispiele, um ein Tabellenblatt anzusprechen:

  1. Aktives Tabellenblatt ansprechen:

    ActiveSheet.Activate
  2. Mit Codenamen arbeiten:

    Sub BeispielMitCodename()
       Worksheets("Consolidation").Activate
    End Sub
  3. Fehlerbehandlung:

    On Error Resume Next
    Workbooks(WBload).Consolidation.Activate
    If Err.Number <> 0 Then
       MsgBox "Blatt konnte nicht aktiviert werden."
    End If
    On Error GoTo 0

Tipps für Profis

  • Verwende Codenamen: Es ist oft sicherer, mit Codenamen zu arbeiten, da diese sich nicht ändern, selbst wenn der Name des Tabellenblatts geändert wird.
  • Debugging: Setze Haltepunkte im VBA-Editor, um den Status der Variablen zu überwachen und Fehler zu identifizieren.
  • Dokumentation: Kommentiere deinen Code, um die Absicht hinter komplexen Anweisungen klar zu machen.

FAQ: Häufige Fragen

1. Wie kann ich ein aktives Tabellenblatt ansprechen?
Du kannst das aktive Tabellenblatt einfach mit ActiveSheet ansprechen.

2. Was mache ich, wenn der VBA-Name des Tabellenblatts nicht funktioniert?
Stelle sicher, dass der Name korrekt eingegeben wurde und dass es sich um den richtigen VBA-Namen handelt. Überprüfe auch, ob das Blatt tatsächlich existiert.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige