Tabellen ansprechen

… die Tabellennamen mit unterschiedlicher Ansprache …

Die Tabellenblattnamen lassen sich in der Blattansicht und über das Eigenschaftenfenster ändern.

  • Codename: Tabelle3

  • Normaler Name: tbl_Daten (hier: Objekt Worksheets nutzen)

Empfehlung (bzw. Best Practise): Codename

Gründe:

  • wegen besserer Code/Syntaxcompletion

  • sicherer

  • weniger Pflegeaufwand

Varianten zum Ansprechen eines Tabellenblatts:

Quellcode 13 Varianten für Tabellennamen
' Codename:
Tabelle3.Range("A1").Value = 100
' Vollqualifiziert mit Worksheets
Worksheets("tbl_Daten").Range("A4").Value = 10
' Vollqualifiziert mit Worksheets und Index
Worksheets(3).Range("A2").Value = 10
' teilweise qualifiziert - Sheets arbeitet auch mit Diagrammblättern
Sheets("tbl_Daten").Range("A5").Value = 10
' völlig ungenau/gefährlich
Range("A6").Value = 10

Conclusio/Empfehlung: Tabellenblätter genau planen und strukturieren!

Zum Abschluss noch ein kleines Beispiel für das Handling und Erstellen von Tabellenblättern.

Quellcode 14 Tabellenblätter zählen und hinzufügen
Sub TabellenblaetterZaehlen()
   Dim Anzahl
   Anzahl = ActiveWorkbook.Worksheets.Count
   ActiveWorkbook.Worksheets.Add
   MsgBox "Die Anzahl der Tabellenblätter hat sich von " & Anzahl & " auf " _
      & ActiveWorkbook.Worksheets.Count & " erhöht.", , "1. Meldung"
   Anzahl = ActiveWorkbook.Worksheets.Count
   ActiveWorkbook.Worksheets.Add
   MsgBox "Die Anzahl der Tabellenblätter hat sich von " & Anzahl & " auf " _
      & ActiveWorkbook.Worksheets.Count & " erhöht.", , "2. Meldung"
End Sub

Am Besten würden die neuen Tabelleblätter auch noch gleich mit gewünschten Tabellenblattnamen ausgestattet und sollte an einer spezifischen Stelle in unserer Arbeitsmappe auftauchen.

Quellcode 15 Beispiele für neue Tabellenblätter einfügen
' Aktives Tabellenblatt benennen:
ActiveSheet.Name = "NewSheet"
' Name beim Erstellen definieren
Sheets.Add.Name = "NewSheet"
' Name für Tabellenblatt aus einer Zelle beziehen
Sheets.Add.Name = range("a3").value
' neues Tabellenblatt NACH Blatt Test mit Name TestNEU
Sheets.Add(After:=Sheets("Test")).Name = "TestNEU"
' oder auch VORHER
Sheets.Add(Before:=Sheets("Test")).Name = "TestNEU"
' am Ende neu einfügen
Sheets.Add After:=Sheets(Sheets.Count)
' am Anfang neu einfügen
Sheets.Add(Before:=Sheets(1)).Name = "FirstSheet

Weiter Beispiel im Netz z.B. unter Automateexcel - Add and name worksheets. Und das ist natürlich nur ein Beispiel von vielen - einfach mal mit unserem aufgebauten Wissen um die Techniken selber recherchieren.

Und wie immer: bitte nicht von den teils altbackenen Websites der VBA-Profis abschrecken lassen. In deren Community scheinen wohlgeformte oder gar moderne Webdesigns nicht zu interessieren ;-).