Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1868to1872
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Nur bestimmte Blattnamen auflisten

Nur bestimmte Blattnamen auflisten
08.02.2022 12:55:33
DarkerWolf
Hallo zusammen! Nachdem ich hier im Forum schon viel Hilfe gefunden hab, hab ich doch noch ein Problem gefunden bei dem kein suchen weiterhilft.
Ich habe in meiner Excel-Mappe ganz viele Blätter die alle gleich aufgebaut sind. Nun möchte ich auf einem weiteren Blatt mit VBA eine Liste mit allen Blattnamen erstellen lassen. Diese Liste soll jedoch nur bestimmte Blätter enthalten, nämlich alle die z.B. in Zelle J4 eine 1 als Wert haben. (Es gibt nur Einsen oder Leer, daher könnte man vlt. auch einfach schauen ob das Feld gefüllt ist oder nicht, wenn es das einfacher machen würde).
Außerdem: Wäre es evtl auch möglich die Voraussetzung zu erweitern, sodass z.B. nur Blätter aufgelistet werden die in J4 UND in I5 eine 1 haben?
Es muss leider VBA sein da die Zelle wegen anderer Berechnungen am Anfang komplett leer sein muss, daher auch keine Formel enthalten darf.
Ich hoffe jemand kann mir weiter helfen, vielen Dank schonmal! :)

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Nur bestimmte Blattnamen auflisten
08.02.2022 13:13:19
Daniel
Hi
im Prinzip so

dim wsh as worksheet
dim Zeile as long
Zeile = 1 'Startzeile der Ausgabe
Thisworkbook.Sheets("weiteres Blatt").Columns(1).ClearContents
for each wsh in thisworkbook.Worksheets
if wsh.Range("J4") = 1 then
thisworkbook.Sheets("weiteres Blatt").Cells(Zeile, 1).Value = wsh.Name
Zeile = Zeile + 1
end if
next
die Weiter Bedingung machst du dann mit

IF wsh.Range("J4") = 1 AND wsh.Range("I5") = 1 Then
Gruß Daniel
AW: Nur bestimmte Blattnamen auflisten
08.02.2022 13:28:37
DarkerWolf
Oha, das ging ja schnell. Danke euch beiden, die Lösung von Pierre finde ich für meinen Fall besser geeignet da es wirklich sehr viele Blätter sind.
Einziges Problem: So wie in dem Link beschrieben wird immer ein neues zusätzliches Blatt erstellt, wie müsste man den Code verändern damit er die Liste ins aktuelle Blatt packt?
Momentan sieht es so aus:

Private Sub Worksheet_Activate()
Dim Zeile As Long
Dim Blatt As Worksheet
Dim Neublatt As Worksheet
Set Neublatt = ActiveWorkbook.Worksheets.Add
Zeile = 1
For Each Blatt In ActiveWorkbook.Worksheets
If Blatt.Name  Neublatt.Name And Blatt.Range("J4").Value = 1 And Blatt.Range("I5").Value = 1 Then
Neublatt.Cells(Zeile, 1) = Blatt.Name
Zeile = Zeile + 1
End If
Next Blatt
End Sub

Anzeige
AW: Nur bestimmte Blattnamen auflisten
08.02.2022 13:43:13
Pierre
Einfach deinen Code umgebaut:

Private Sub Worksheet_Activate()
Dim Zeile As Long
Dim Blatt As Worksheet
'Dim Neublatt As Worksheet
'Set Neublatt = ActiveWorkbook.Worksheets.Add
Zeile = 1
For Each Blatt In ActiveWorkbook.Worksheets
If Blatt.Name  ActiveSheet.Name And Blatt.Range("J4").Value = 1 And Blatt.Range("I5").Value = 1 Then
ActiveSheet.Cells(Zeile, 1) = Blatt.Name
'Neublatt.Cells(Zeile, 1) = Blatt.Name
Zeile = Zeile + 1
End If
Next Blatt
End Sub
Die Zeilen mit Hochkomma kannst du löschen.
Gruß Pierre
kanns du mir bitte erklären, was an dem Code
08.02.2022 14:14:19
Daniel
von Pierre jetzt anders ist, als an meinem, so dass er für dich besser geeignet ist?
ich sehe keinen Unterschied, aber so wie du schreibst, muss ja einer da sein.
Bitte zeige ihn mir.
Danke Daniel
Anzeige
AW: kanns du mir bitte erklären, was an dem Code
08.02.2022 19:17:39
DarkerWolf
Also ich bin das jetzt nochmal in ruhe zuhause durchgegangen und ja, du hast recht die sind eigentlich gleich.
Beim schnellen überfliegen vorhin hat mich das "weiteres Blatt" etwas verwirrt, ich hab gedacht ich müsste da alle Blattnamen erst eintragen.
Entschuldige bitte die Verwirrung, heute läufts wohl irgendwie nicht so bei mir :)

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige