Supportnet Computer
Planet of Tech

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:


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


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:


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