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

Forumthread: VBA - Alle Sheets auswählen

VBA - Alle Sheets auswählen
Udo
Hallo,
ich habe ein dringendes Problem, habe gestern auch schon viele Foren durchsucht aber leider nichts gefunden.
Gibt es im Excel-Vba einen Befehl mit dem ich alle Sheets eines Workbooks auswählen kann ?
Das Problem besteht darin, dass das Workbook immer eine verschiedene Anzahl an Sheets hat und diese Sheets auch immer verschiedene Namen haben.
Ich habe keine Ahnung wie ich alle Sheets des Workbooks auswählen kann.
Vielen Dank für die Hilfe
Udo
Anzeige
ThisWorkbook.Sheets.Select o.T
17.12.2009 12:21:31
ransi
ransi
AW: ThisWorkbook.Sheets.Select o.T
17.12.2009 12:25:55
Udo
Vielen Dank !
Super, es funktioniert !
Danke
Udo

AW: ThisWorkbook.Sheets.Select o.T
17.12.2009 12:36:24
Udo
Hallo,
meine Freude ware etwas zu früh.
In einem neuen Workbook hat der Befehl zwar funktioniert, aber in dem eigentlichen Sheet habe ich folgenden Fehler erhalten:
Lautzeitfehler 1004
Die MEthode "Select" für das Objekt "Sheets" ist fehlgeschlagen
Warum nur...
Danke
Anzeige
..Warum nur...VBA-gut..
17.12.2009 13:01:58
robert
hi,
schau dir Tino's Lösung an, bzgl.ausgeblendeter Blätter
gruß
robert
AW: ..Warum nur...VBA-gut..
17.12.2009 13:03:52
Udo
Gleiches Problem,
sobald select ins Spiel kommt ist es in der Datei vorbei.
Die Befehle funktionieren in jeder anderen Datei.
In der Datei sind leider schon sehr viele andere makros enthalten (leider nicht von mir), ich denke es hängt irgendwie damit zusammen, kann das sein ?
Vielen Dank
udo
Anzeige
AW: ..Warum nur...VBA-gut..
17.12.2009 13:09:19
Tino
Hallo,
versuche es mal und stelle den Code zwischen
 Application.EnableEvents = False
Application.EnableEvents = True
also so.
Dim meAr() As String
Dim i%, ii%
Application.EnableEvents = False
With ThisWorkbook
ReDim Preserve meAr(.Sheets.Count)
For i = 1 To .Sheets.Count
If .Sheets(i).Visible = xlSheetVisible Then
meAr(ii) = .Sheets(i).Name
ii = ii + 1
End If
Next i
ReDim Preserve meAr(ii - 1)
.Sheets(meAr).Select
End With
Application.EnableEvents = True
Sonst hilft nur ein Beispiel.
Gruß Tino
Anzeige
AW: VBA - Alle Sheets auswählen
17.12.2009 12:23:24
Hajo_Zi
Hallo Udo,
Alle Blätter per VBA markieren, alle Tabellen markieren
Sub AlleBlätterMarkieren()
Dim z As Long
Dim Letztes As Long
Dim lArray() As Long
Letztes = ThisWorkbook.Worksheets.Count
ReDim lArray(1 To Letztes)
For z = 1 To Letztes
lArray(z) = z
Next z
ThisWorkbook.Worksheets(lArray).Select
End Sub

von Bernd Held
Sheets().Select
Von André
Gruß Hajo
Anzeige
wenn ausgeblendete Tabellen dabei sind...
17.12.2009 12:30:18
Tino
Hallo,
versuche es mal hiermit.
Dim meAr() As String
Dim i%, ii%
With ThisWorkbook
ReDim Preserve meAr(.Sheets.Count)
For i = 1 To .Sheets.Count
If .Sheets(i).Visible = xlSheetVisible Then
meAr(ii) = .Sheets(i).Name
ii = ii + 1
End If
Next i
ReDim Preserve meAr(ii - 1)
.Sheets(meAr).Select
End With
Gruß Tino
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

Alle Tabellenblätter in Excel VBA auswählen


Schritt-für-Schritt-Anleitung

Um in Excel VBA mehrere Tabellenblätter auszuwählen, kannst Du den folgenden Code verwenden. Dieser Code wählt alle sichtbaren Sheets in Deinem Workbook aus:

Sub AlleBlätterMarkieren()
    Dim z As Long
    Dim Letztes As Long
    Dim lArray() As Long
    Letztes = ThisWorkbook.Worksheets.Count
    ReDim lArray(1 To Letztes)
    For z = 1 To Letztes
        lArray(z) = z
    Next z
    ThisWorkbook.Worksheets(lArray).Select
End Sub

Falls Du nur die sichtbaren Blätter auswählen möchtest, kannst Du diesen Code verwenden:

Dim meAr() As String
Dim i%, ii%
With ThisWorkbook
    ReDim Preserve meAr(.Sheets.Count)
    For i = 1 To .Sheets.Count
        If .Sheets(i).Visible = xlSheetVisible Then
            meAr(ii) = .Sheets(i).Name
            ii = ii + 1
        End If
    Next i
    ReDim Preserve meAr(ii - 1)
    .Sheets(meAr).Select
End With

Häufige Fehler und Lösungen

Ein häufiger Fehler beim Auswählen von Tabellenblättern ist der Laufzeitfehler 1004, der besagt, dass die Methode "Select" für das Objekt "Sheets" fehlgeschlagen ist. Dies kann verschiedene Ursachen haben:

  1. Ausgeblendete Blätter: Wenn einige Blätter im Workbook ausgeblendet sind, kann das zu Problemen führen. Stelle sicher, dass Du nur sichtbare Blätter auswählst.
  2. Konflikte mit anderen Makros: Wenn in Deinem Workbook bereits andere Makros vorhanden sind, könnte es zu Konflikten kommen. Deaktiviere diese Makros temporär, um den Fehler zu identifizieren.
  3. Anwendungseinstellungen: Schalte die Ereignisse vorübergehend aus, um sicherzustellen, dass keine unerwarteten Ereignisse den Selektionsprozess stören:
Application.EnableEvents = False
Application.EnableEvents = True

Alternative Methoden

Statt die .Select Methode zu verwenden, könntest Du auch direkt mit den Blättern arbeiten, ohne sie auszuwählen. Zum Beispiel:

Dim ws As Worksheet
For Each ws In ThisWorkbook.Worksheets
    If ws.Visible = xlSheetVisible Then
        ' Hier etwas mit dem Arbeitsblatt machen
    End If
Next ws

Diese Methode ist oft effizienter und vermeidet Probleme mit der Auswahl.


Praktische Beispiele

Hier sind einige praktische Beispiele, wie Du die VBA-Befehle verwenden kannst:

  1. Alle sichtbaren Blätter drucken:

    Dim ws As Worksheet
    For Each ws In ThisWorkbook.Worksheets
        If ws.Visible = xlSheetVisible Then
            ws.PrintOut
        End If
    Next ws
  2. Daten in einem neuen Arbeitsblatt konsolidieren:

    Dim ws As Worksheet
    Dim Zielblatt As Worksheet
    Set Zielblatt = ThisWorkbook.Worksheets.Add
    Dim Zeile As Long
    Zeile = 1
    
    For Each ws In ThisWorkbook.Worksheets
        If ws.Visible = xlSheetVisible Then
            ws.Cells.Copy Zielblatt.Cells(Zeile, 1)
            Zeile = Zeile + ws.Cells.Rows.Count
        End If
    Next ws

Tipps für Profis

  • Verwende With ThisWorkbook.Sheets: Dies reduziert die Anzahl der Schreibvorgänge und kann den Code lesbarer machen.
  • Vermeide die Verwendung von .Select: Arbeiten mit Objekten, ohne sie auszuwählen, führt oft zu weniger Fehlern und schnellerem Code.
  • Nutze Option Explicit: Dies hilft, Fehler durch unklare Variablen zu vermeiden und macht Deinen Code robuster.

FAQ: Häufige Fragen

1. Wie kann ich alle Blätter in einem geschützten Workbook auswählen?
Du musst zuerst den Schutz aufheben, bevor Du die Blätter auswählen kannst. Verwende dazu ThisWorkbook.Unprotect "DeinPasswort".

2. Was passiert, wenn ich ein Blatt nicht auswählen kann?
Das könnte daran liegen, dass das Blatt ausgeblendet oder geschützt ist. Überprüfe die Sichtbarkeit und den Schutzstatus.

3. Kann ich eine Auswahl von Blättern speichern?
Ja, Du kannst die Namen der Blätter in einem Array speichern, um sie später wieder zu verwenden oder darauf zuzugreifen.

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