Spalten ausblenden abhängig vom Zellwert
#1
Guten Abend!

Mittels eines VBA Codes möchte ich in zwei unterschiedlichen Sheets Spalten, abhängig vom Zellwert im Bereich i (Spalte 48 -83, jeweils in Zeile 23) und n (Spalte  44 -79, jeweils in Zeile 8) ausblenden.
Ist der jeweilige Zellwert = 0, dann soll die jeweilige Spalte ausgeblendet werden.
Code:
Private Sub CommandButton1_Click()
Dim i As Integer
Dim n As Integer

For i = 48 To 83
   If Cells(23, i).Value = 0 Then
   Columns(i).EntireColumn.Hidden = True
End If
Next i
     

'Das selbe im nächsten Sheet
Sheets("Tabelle 2").Activate

For n = 44 To 79
If Cells(8, n).Value = 0 Then
Columns(n).EntireColumn.Hidden = True
End If
Next n
     
Sheets("Tabelle 1").Activate

End Sub

Das funktioniert auch soweit gut, solange ich das nur für ein Sheet mache, sobald ich ins zweite wechseln möchte ("Tabelle 2) werden diese dort nicht ausgeblendet.

Habe ich einen Fehler im Code gemacht? Bzw. könnte ich das besser darstellen?


Danke und noch einen schönen Abend.
Top
#2
Hallo,

Zitat:solange ich das nur für ein Sheet mache, sobald ich ins zweite wechseln möchte ("Tabelle 2) werden diese dort nicht ausgeblendet.

mal eine Frage vorweg: 
gibt es denn auf dem zweiten Blatt auch einen zweiten Button?

Das geht nämlich nicht zweifelsfrei aus Deinem Post hervor und in dem uns vorgestellten Code
ist kein Blattwechsel vorgesehen. Folglich passiert bei einem Blattwechsel auch nichts.
[-] Folgende(r) 1 Nutzer sagt Danke an Käpt'n Blaubär für diesen Beitrag:
  • diving_excel
Top
#3
Hallo,
Private Sub CommandButton1_Click()
Dim i As Integer
With Sheets("Tabelle 1")
For i = 48 To 83
.Columns(i).EntireColumn.Hidden = .Cells(23, i).Value = 0
Next i
End With
'Das selbe im nächsten Sheet
With Sheets("Tabelle 2")
For i = 44 To 79
.Columns(i).EntireColumn.Hidden = .Cells(8, i).Value = 0
Next i
End With
End Sub
Gruß Uwe
[-] Folgende(r) 1 Nutzer sagt Danke an Kuwer für diesen Beitrag:
  • diving_excel
Top
#4
Hallo

Ohne das Blatt wechseln. Ohne Activate.

Code:
Private Sub CommandButton1_Click()
Dim i As Integer
Application.ScreenUpdating = False
'Tabelle1
    For i = 48 To 83
        If Cells(23, i).Value = 0 Then
            Tabelle1.Columns(i).EntireColumn.Hidden = True
        End If
    Next
'Tabelle2
    For i = 44 To 79
        If Cells(8, i).Value = 0 Then
            Tabelle2.Columns(i).EntireColumn.Hidden = True
        End If
    Next
Application.ScreenUpdating = True
End Sub
Gruss Guschti
Der Künstler lebt auch vom Applaus
Excel Optimaler Zuschnitt von Stangen/Balken - YouTube
[-] Folgende(r) 1 Nutzer sagt Danke an Guschti für diesen Beitrag:
  • diving_excel
Top
#5
Vielen Dank funktioniert super! Habe den Code von Guschti verwendet, sehr geschickt nicht das Blatt wechseln zu müssen!

Gruß
Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste