Supportnet / Forum / Tabellenkalkulation
Mehrere Zeilen in Excel per Makro ausblenden
Frage
Hallo, Ihr tollen Helfer!
Ich habe noch ein Problem mit einem Makro in Excel.
Ich blende Zeilen auf Knopfdruck aus, wenn der Wert einer Zelle = 0 ist.Ist der Wert gößer als 0, werden die Zeilen eingeblendet.
Ich habe folgendes geschrieben:
If Cells(40, 12).Value = "0" Then
Rows(40).EntireRow.Hidden = True
End If
If Cells(40, 12).Value > 0 Then
Rows(40).EntireRow.Hidden = False
End If
Das funktioniert auch gut.
Jetzt möchte ich aber nicht nur die Zeile 40 zum Ausblenden bringen, sondern die Zeilen 40 bis 80, immer auf die jeweilige Zelle L in jeder Zeile, also im Makro 12 geschrieben,bezogen.
Wie muß ich die Eintragungen im Makro ändern?
In der Hoffnung auf Hilfe
verbleibe ich
Gruß HaJo
Antwort 1 von Guenter
Hallo HaJo,
Du kannst ganz einfach eine For-next-Schleife einbauen:
Gruß
Günter
Du kannst ganz einfach eine For-next-Schleife einbauen:
Option Explicit
Sub test()
Dim n As Integer
If Cells(40, 12).Value = "0" Then
For n = 40 To 80
Rows(n).EntireRow.Hidden = True
Next
End If
If Cells(40, 12).Value > 0 Then
For n = 40 To 80
Rows(n).EntireRow.Hidden = False
Next
End If
End Sub
Gruß
Günter
Antwort 2 von HaJoMue
Hallo Günther!
Vielen Dank für Deine Hilfe!
Wenn ich den Text genau so in mein Makro kopiere, und ich drücke den Button, dann sieht es so aus, als würde das Excel-Blatt in diesem Bereich ( 40-80 ), die Zeilen ein paar mal mischen,blendet allerdings nichts aus oder ein ( ohne Fehlermeldung! )
Was mache ich da falsch?
Vielen Dank nochmal im Voraus
Gruß HaJo
Vielen Dank für Deine Hilfe!
Wenn ich den Text genau so in mein Makro kopiere, und ich drücke den Button, dann sieht es so aus, als würde das Excel-Blatt in diesem Bereich ( 40-80 ), die Zeilen ein paar mal mischen,blendet allerdings nichts aus oder ein ( ohne Fehlermeldung! )
Was mache ich da falsch?
Vielen Dank nochmal im Voraus
Gruß HaJo
Antwort 3 von Guenter
Hallo,
ich hatte das Makro so geschrieben, dass immer nur die Zelle L40 geprüft wird und dann der ganzen Bereich von 40 bis 80 ausgeblendet wird.
Wenn dagegen immer in Spalte L die Zeilen 40, 41, 42 bis 80 geprüft werden sollen, so muss die For next-Schleife ein wenig geändert werden:
Versuchs mal mit diesem Makro.
Gruß
Günter
ich hatte das Makro so geschrieben, dass immer nur die Zelle L40 geprüft wird und dann der ganzen Bereich von 40 bis 80 ausgeblendet wird.
Wenn dagegen immer in Spalte L die Zeilen 40, 41, 42 bis 80 geprüft werden sollen, so muss die For next-Schleife ein wenig geändert werden:
Option Explicit
Sub test()
Dim n As Integer
For n = 40 To 80
If Cells(n, 12).Value = "0" Then
Rows(n).EntireRow.Hidden = True
End If
Next
For n = 40 To 80
If Cells(n, 12).Value > 0 Then
Rows(n).EntireRow.Hidden = False
End If
Next
End Sub
Versuchs mal mit diesem Makro.
Gruß
Günter
Antwort 4 von HaJoMue
Super Günther, das klappt!
Vielen Dank für Deine Mühe!
Gruß
HaJo
Vielen Dank für Deine Mühe!
Gruß
HaJo