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

Forumthread: Blattname als variable in VBA

Blattname als variable in VBA
28.10.2005 09:59:28
Reto
Hallo zusammen,
Wie kann ich eine Variable für ein Tabellenblatt vergeben.
Ich habe eine Haupttabelle die mit Daten gefüllt ist. Nun lasse ich diese per Makro filtern und in ein anderes Blatt kopieren. Ich habe das für 6 andere Blätter genau gleich, nur dass das Filterkriterium ändert. Jetzt habe ich 6 solche Makros, aber eigentlich könnte ich ja den Blattname als Variable definieren. Leider habe keine Ahnung wie ...
-------------------
Sub copy_arnet()
Sheets("arnet").Select
With ActiveSheet
.Cells.Select
Selection.EntireColumn.Hidden = False
.Range("AA3:AU30000").Select
Selection.ClearContents
End With
...
-------------------
Dieser Code (unvollständig) setzt mir den Filter. Wie kann ich jetzt den Blattnamen "arnet" substituieren?
-------------------
Private Sub cd_admcopy_Click()
Sheets("gesamt").Select
ActiveSheet.Range("AR2") = "Arnet"
Modul1.copy_arnet
-------------------
Dieser Code setzt zuerst das neue Filterkriterium. Hier müsste ich dann vor dem Modul1.copy_arnet ja die Variable für den Blattnamen definieren.
Sollte doch irgendwie möglich sein, oder?
Besten Dank im Voraus.
Reto E.
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Blattname als variable in VBA
28.10.2005 10:00:27
Dr.
Hi,
Blattname = ActiveSheet.Name
AW: Blattname als variable in VBA
28.10.2005 13:18:49
Reto
muss ich blattname irgendwie 'öffnen'?
public blattname as ?
wie kann ich dann den select machen?
blattname.select oder
sheets(blattname).select
bin da nicht so versiert.
Besten Dank.
AW: Blattname als variable in VBA
28.10.2005 13:20:29
Herbert
public blattname as String
sheets(blattname).select
mfg Herbert
Anzeige
AW: Blattname als variable in VBA
28.10.2005 14:12:12
Reto
Besten Dank für die Hilfe!
Leider funktioniert es noch nicht ganz. Bekomme immer den Laufzeitfehler 9 wenn ich die Prozedur 'wechsle'.
------------------Tabellenblatt 'gesamt'---------
Option Explicit
Public sheetname As String
Public

Sub cd_admcopy_Click()
Sheets("gesamt").Select
ActiveSheet.Range("AR2") = "Arnet"
sheetname = Sheets("arnet").Name
gesamt.copy_adm
End Sub

Public

Sub copy_adm()
Sheets(sheetname).Select     <-- hier kommt Laufzeitfehler 9: ausserhalb des Kontext
With ActiveSheet
.Cells.Select
Selection.EntireColumn.Hidden = False
.Range("AA3:AU30000").Select
Selection.ClearContents
End With
freundlich grüsst
Reto E.

Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Blattname als Variable in VBA nutzen


Schritt-für-Schritt-Anleitung

Um den Blattnamen als Variable in VBA zu verwenden, folge diesen Schritten:

  1. Definiere die Variable: Lege eine öffentliche Variable für den Blattnamen fest.

    Public sheetname As String
  2. Setze den Blattnamen: Weise der Variable den gewünschten Blattnamen zu, z.B. in einem Button-Klick-Ereignis.

    sheetname = Sheets("arnet").Name
  3. Verwende den Blattnamen: Nutze die Variable, um auf das Blatt zuzugreifen.

    Sheets(sheetname).Select
  4. Erstelle die Makros: In deinem Makro kannst du jetzt den Blattnamen variabel einsetzen, um z.B. Daten zu filtern oder zu kopieren.


Häufige Fehler und Lösungen

  • Laufzeitfehler 9: Dieser Fehler tritt auf, wenn auf ein Blatt zugegriffen wird, das nicht existiert. Stelle sicher, dass der Blattname korrekt ist und das Blatt existiert.

  • Falsche Datenzuweisung: Wenn du versuchst, den Blattnamen einer nicht existierenden Variable zuzuweisen, überprüfe die Schreibweise und den Kontext.

  • Zugriffsprobleme: Wenn du ein aktives Tabellenblatt als Variable verwenden möchtest, stelle sicher, dass du es richtig so definierst:

    sheetname = ActiveSheet.Name

Alternative Methoden

Eine alternative Methode, den Blattnamen als Variable zu nutzen, ist die Verwendung von Funktionen. Zum Beispiel kannst du eine Funktion erstellen, die den Namen des aktiven Tabellenblatts zurückgibt:

Function GetActiveSheetName() As String
    GetActiveSheetName = ActiveSheet.Name
End Function

Du kannst dann diese Funktion aufrufen, um den Blattnamen als Variable zu verwenden.


Praktische Beispiele

Hier ist ein Beispiel, wie du den Blattnamen in einem Makro verwenden kannst:

Sub Beispiel()
    Dim sheetname As String
    sheetname = "arnet" ' oder nutze: sheetname = ActiveSheet.Name

    Sheets(sheetname).Select
    With ActiveSheet
        .Cells.Select
        Selection.EntireColumn.Hidden = False
        .Range("AA3:AU30000").ClearContents
    End With
End Sub

In diesem Beispiel wird der Blattname „arnet“ genutzt, um das Blatt auszuwählen und bestimmte Zellen zu bearbeiten.


Tipps für Profis

  • Nutze Option Explicit am Anfang deiner Module, um sicherzustellen, dass alle Variablen deklariert werden. Dies hilft dir, Tippfehler zu vermeiden.

  • Halte deine Code-Module sauber und kommentiere, um den Überblick über Variablen und deren Verwendung zu behalten.

  • Verwende Debug.Print oder MsgBox, um den aktuellen Wert deiner Variablen während der Ausführung zu überprüfen, was besonders hilfreich bei Fehlerbehebungen ist.


FAQ: Häufige Fragen

1. Wie kann ich den Namen des aktiven Tabellenblatts als Variable speichern? Du kannst das mit folgendem Code tun:

Dim aktivesBlatt As String
aktivesBlatt = ActiveSheet.Name

2. Was mache ich, wenn der Blattname dynamisch ist? Wenn der Blattname dynamisch ist, kannst du den Namen zur Laufzeit zuweisen, z.B. durch Benutzereingabe oder aus einer Zelle:

Dim dynamischerBlattname As String
dynamischerBlattname = Sheets("Daten").Range("A1").Value

Durch die Nutzung dieser Ansätze kannst du effizient mit Blattnamen als Variablen in Excel VBA arbeiten.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige