Microsoft Excel

Herbers Excel/VBA-Archiv

Namensabhänige Sheetauswahl

Betrifft: Namensabhänige Sheetauswahl von: Merlin Memmhardt
Geschrieben am: 26.10.2020 10:55:20

Hallo zusammen,
ich möchte in einem Excelfile via Makro alle Blätter auswählen, deren Name mit einer Raute (#) beginnt und auf jeder dieser Seiten die Spalten F bis V sowie diverse Zeilen ausblenden.
Besonders der zweite Teil macht aktuell massive Probleme, da ich nach der Markierung mehrerer Blätter via Makro keine Zeilen oder Spalten ausgeblendet bekomme. Das Makro wird dann lediglich auf dem markierten Blatt ausgeführt. Ein manuelles Ausblenden funktioniert hingegen problemlos auf mehreren Blättern.
Ich habe mit Hilfe von Google mehrere Lösungen aus diversen Foren und dem Macrorecorder einen Flickenteppich erstellt mit dem ich nun definitiv nicht mehr weiterkomme.
Die einzelnen Makros werden in einer manuell festgelegten Reihenfolge ausgeführt, sobald eine bestimmte Zelle in einem der ersten Blätter ausgewählt wird.

Danke und Gruß,
Merlin.

Betrifft: AW: Namensabhänige Sheetauswahl
von: JoWE
Geschrieben am: 26.10.2020 11:04:51

Hallo Merlin,

so vllt.
Sub sp_ausblenden()
    Dim sh As Worksheet
    For Each sh In ThisWorkbook.Worksheets
        If Left(sh.Name, 1) = "#" Then
            sh.Columns("F:V").EntireColumn.Hidden = True
        End If
    Next
End Sub

Gruß
Jochen

Betrifft: AW: Namensabhänige Sheetauswahl
von: Merlin Memmhardt
Geschrieben am: 26.10.2020 11:37:12

Hallo Jochen,
vielen Dank das funktioniert super!

Nun möchte ich auch noch Zeilen ausblenden.
Meine Lösung funktioniert leider immer nur auf dem ausgewählten Blatt und sieht bisher so aus.
Sub Zeilen_ausblenden()
' Ausblenden aller Zeilen bei denen "a" in Spalte Z eingetragen ist. Die Spalte Z ist  _
ausgeblendet.
Application.ScreenUpdating = False
For i = 1 To 100
If Cells(i, 26).Value = "a" Then
    Rows(i).Hidden = True
End If
Next i
Application.ScreenUpdating = True
End Sub
Auf diese Weise kann ich die auszublendenden Zeilen bei Bedarf individuell anpassen.

Danke und Gruß,
Merlin.

Betrifft: AW: Namensabhänige Sheetauswahl
von: JoWE
Geschrieben am: 26.10.2020 11:53:00

mach es doch auf die gleiche Weise, z.B. so:
Sub Zeilen_ausblenden()
    ' Ausblenden aller Zeilen bei denen "a" in Spalte Z
    'eingetragen ist. Die Spalte Z ist ausgeblendet.
    Dim i As Long
    Dim sh As Worksheet
    Application.ScreenUpdating = False
    For Each sh In ThisWorkbook.Worksheets
        For i = 1 To 100
            If sh.Cells(i, 26).Value = "a" Then
                sh.Rows(i).Hidden = True
            End If
        Next i
    Next
    Application.ScreenUpdating = True
End Sub
Gruß
Jochen

Betrifft: AW: Namensabhänige Sheetauswahl
von: Merlin Memmhardt
Geschrieben am: 26.10.2020 12:50:23

Hallo Jochen,
danke auch hier nochmal für die schnelle Antwort.
Leider bekomme ich bei Ausführung dieses Makros einen Fehler.

Laufzeitfehler '13':

Typen unverträglich


Hinweis: Auf dem Blatt wo es zum "Crash" kommt befinden sich Diagramme (evtl. gibt es da einen Zusammenhang).

Kann hier auch zusätzlich nach der Raute vorgefiltert werden?

Danke und gruß,
Merlin.

Betrifft: AW: Namensabhänige Sheetauswahl
von: Nepumuk
Geschrieben am: 26.10.2020 12:53:45

Hallo Merlin,

ändere:

If sh.Cells(i, 26).Value = "a" Then

so:

If sh.Cells(i, 26).Text= "a" Then

Gruß
Nepumuk

Betrifft: AW: Namensabhänige Sheetauswahl
von: Merlin Memmhardt
Geschrieben am: 26.10.2020 13:00:06

Danke an euch zwei.
Das Problem ist gelöst! :)

Betrifft: AW: Danke für Deine Rückmeldung
von: JoWE
Geschrieben am: 26.10.2020 13:01:55