Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Makro: Zeilen ausblenden
#1
Hallo,

ich hätte gerne ein Makro, welches eine Zeile ausblendet, in der ein Wert in einer bestimmten Spalte 0 ist.
Das Makro soll dann über eine Tabelle mit mehreren Zeilen laufen.
Habe zwar den Befehl "Rows().Hidden" gefunden, aber es noch nicht hinbekommen.
Jemand ne Idee?
Antworten Top
#2
Hallo,

wie wäre es, wenn Du Deinen Code mal veröffentlichst.
Wenn programmiert werden soll, reicht es nämlich nicht aus,
wenn man programmiert ... mache mit irgendeiner Zelle was.
Dann pfeift Excel sich einen und macht Urlaub.
________________________________________________________________________
wer aufgibt, ohne es versucht zu haben, gibt einfach nur auf!

Grüße aus Norderstedt, Peter
Antworten Top
#3
Hallo,

hier ein Ansatz:

  
    I = 15
    Rows(I).Select
    Selection.EntireRow.Hidden = True


Gruß Günter
Antworten Top
#4
Habe jetzt das hier:

Sub S()
  Dim i As Integer
   For i = 1 To 500
      Range("Ai").EntireRow.Hidden = IIf(Range("Di") = "0", True, False)
   Next i
End Sub

wie kann ich jetzt bei der Zelle "Ai" das i hochzählen lassen?
Antworten Top
#5
Moin!
Es gibt nix langsameres als Zeilen einzeln zu löschen!

Filtere die "bestimmte Spalte" nach 0 und lösche die sichtbaren Zeilen ab der Überschrift.
Selbstverständlich geht dies auch exakt so mittels VBA.

Falls das immer noch nicht schnell genug sein sollte, dann sortiere zunächst die "bestimmte Spalte".
Wenn der zu löschende Bereich nicht fragmentiert ist, wird nochmals der Turbo zugeschaltet.

Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Antworten Top
#6
Ach ja, Du willst ja "nur" ausblenden.
Exakt dies macht der Autofilter <>0
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Antworten Top
#7
Hallo,

Zitat:Option Explicit

Sub Zeilen_AUSblenden()
    Rows("7:16").EntireRow.Hidden = True
End Sub

Sub Zeilen_EINblenden()
    Rows("6:17").EntireRow.Hidden = False
End Sub

auch von mir noch ein Versuch
________________________________________________________________________
wer aufgibt, ohne es versucht zu haben, gibt einfach nur auf!

Grüße aus Norderstedt, Peter
Antworten Top
#8
Hallo,

z.B.: so:


Code:
Private Sub CommandButton1_Click()
Dim loLetzte As Long
Dim raBereich As Range, raZelle As Range

Application.ScreenUpdating = False

With Worksheets("Tabelle1") 'Blattname anpassen
   loLetzte = .Cells(.Rows.Count, 4).End(xlUp).Row
   Set raBereich = .Range(.Cells(1, 4), .Cells(loLetzte, 4))
   If .CommandButton1.Caption = "Ausblenden" Then
       For Each raZelle In raBereich
           If raZelle.Value = 0 Then
               raZelle.EntireRow.Hidden = True
           End If
       Next raZelle
       .CommandButton1.Caption = "Einblenden"
   ElseIf .CommandButton1.Caption = "Einblenden" Then
       raBereich.EntireRow.Hidden = False
       .CommandButton1.Caption = "Ausblenden"
   End If
End With

Set raBereich = Nothing
Application.ScreenUpdating = True
End Sub

CommandButton (ActiveX Steuerelement) auf das Tabellenblatt, in den Eigenschaften des CommandButton die Caption auf "Ausblenden" ändern. Code ins Codefenster des Tabellenblattes kopieren, auf dem der CommandButton ist.

Wobei sich die Frage stellt: Warum nicht mit dem Autofilter, wie mein Vorredner schon angemerkt hat.

Gruß Werner
Antworten Top
#9
Ich hätte das gerne als Makro, da eventuell noch weitere Funktionen mit rein sollen.

Habe noch hier nochmal kurz das Problem dargestellt:

      Range("A1").EntireRow.Hidden = IIf(Range("D1") = "0", True, False)
      Range("A2").EntireRow.Hidden = IIf(Range("D2") = "0", True, False)
      Range("A3").EntireRow.Hidden = IIf(Range("D3") = "0", True, False)
      Range("A4").EntireRow.Hidden = IIf(Range("D4") = "0", True, False)
      Range("A5").EntireRow.Hidden = IIf(Range("D5") = "0", True, False)
      Range("A6").EntireRow.Hidden = IIf(Range("D6") = "0", True, False)
      Range("A7").EntireRow.Hidden = IIf(Range("D7") = "0", True, False)
      Range("A8").EntireRow.Hidden = IIf(Range("D8") = "0", True, False)
      Range("A9").EntireRow.Hidden = IIf(Range("D9") = "0", True, False)

Ich hätte jetzt einfach gerne ne Schleife die die As und Ds hochzählt
Antworten Top
#10
Hallo,

    For I = 1 To 500
        If Cells(I, 4) = 0 Then Rows(I).EntireRow.Hidden = True
    Next I


Gruß Günter
Antworten Top


Gehe zu:


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