Microsoft Excel

Herbers Excel/VBA-Archiv

Makro auf mehrere Tabellenblätter anwenden


Betrifft: Makro auf mehrere Tabellenblätter anwenden
von: Mike
Geschrieben am: 29.11.2018 12:10:14

Hallo,

ich habe ein ein Makro, welches ich auf meheren Tabellen durchlaufen lassen möchte, leider habe ich hier für mein Problem noch nicht die passende Lösung gefunden. Vielleicht kann mir jemand helfen. Das Makro soll in Tabellenblatt 1 und 2 laufen.

Code:

Sub SpaltenEinAusblenden()
Dim rngC As Range
Application.ScreenUpdating = False
For Each rngC In Range("B9:nl9")
rngC.EntireColumn.Hidden = (Len(rngC.Value) And rngC.Value = "x")
Next rngC
Application.ScreenUpdating = True
End Sub
Vielen Dank schon mal im Voraus für evtl. Hilfe.

Grüße Mike

  

Betrifft: AW: Makro auf mehrere Tabellenblätter anwenden
von: Werner
Geschrieben am: 29.11.2018 12:19:16

Hallo Mike,

so:

Sub SpaltenEinAusblenden()
Dim rngC As Range, ws As Worksheet

Application.ScreenUpdating = False

For Each ws In ThisWorkbook.Worksheets
    Select Case ws.Name
        Case "Tabelle1", "Tabelle2"
            With ws
                For Each rngC In .Range("B9:nl9")
                    rngC.EntireColumn.Hidden = (Len(rngC.Value) And rngC.Value = "x")
                Next rngC
            End With
        Case Else
            'nix machen
    End Select
Next ws

Application.ScreenUpdating = True
End Sub
Gruß Werner


  

Betrifft: AW: Makro auf mehrere Tabellenblätter anwenden
von: Mike
Geschrieben am: 29.11.2018 12:57:29

Hallo Werner,

vielen Dank. Aber leider passiert nichts beim Ausführen des Makros. Es kommt aber auch keine Fehlermeldung. Was bedeutet das "nix machen" machen. Entschuldige, ich leider nicht so der VBA Experte.
Danke Die schon mal im Voraus.

Viele Grüße Mike


  

Betrifft: AW: Makro auf mehrere Tabellenblätter anwenden
von: Mike
Geschrieben am: 29.11.2018 13:06:38

Hallo Werner,

es hat doch geklappt. Ich hatte vergessen zu erwähnen, dass ich die Tabellen umbenannt habe. Ich habe es im Code geändert und siehe da es hat geklappt.

Das gleiche Problem habe ich mit meinen Zeilen, welche ich ausblenden möchte. Könntest Du mir auch noch einmal helfen.

Sub ZellenEinAusblenden()
  Application.ScreenUpdating = False
  Set CellRange = Range("A5:A35")
  For Each Cell In CellRange
    Cell.EntireRow.Hidden = (Cell.Value = ("x"))
  Next
  Application.ScreenUpdating = True
End Sub
VielenDank und viele Grüße Mike


  

Betrifft: AW: Makro auf mehrere Tabellenblätter anwenden
von: Werner
Geschrieben am: 29.11.2018 13:33:57

Hallo Mike,

ist das jetzt so schwer, das auf den zweiten Code zu übertragen?

Sub ZellenEinAusblenden()
Dim CellRange As Range, ws As Worksheet

Application.ScreenUpdating = False

For Each ws In ThisWorkbook.Worksheets
    Select Case ws.Name
        Case "Tabelle1", "Tabelle2"
            With ws
                For Each CellRange In .Range("A5:A35")
                    CellRange.EntireRow.Hidden = (CellRange.Value = ("x"))
                Next CellRange
            End With
        Case Else
            'nix machen
    End Select
Next ws

Application.ScreenUpdating = True
End Sub
Gruß Werner


  

Betrifft: AW: Makro auf mehrere Tabellenblätter anwenden
von: Mike
Geschrieben am: 29.11.2018 13:45:04

Hallo Werner,

ich glaube jetzt hab ich es geschnallt. Ich danke Dir vielmals und wünsche noch einen schönen Tag.

Vielen Grüße Mike


  

Betrifft: Gerne u. Danke für die Rückmeldung. o.w.T.
von: Werner
Geschrieben am: 29.11.2018 13:45:32




  

Betrifft: super mal wieder....
von: Werner
Geschrieben am: 29.11.2018 20:01:58

Hallo Mike,

...Crossposting, ohne im jeweiligen Forum eine Hinweis darauf zu geben.

Im MS Forum hat Beverly jetzt noch darauf geantwortet, obwohl das Thema schon lange durch ist.

Super Sache, da kommt Freude auf.

Gruß Werner