Registriert seit: 09.05.2017
Version(en): 2013
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?
Registriert seit: 11.04.2014
Version(en): '97 bis 2016; 365
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.
Registriert seit: 27.06.2016
Version(en): 7
Hallo,
hier ein Ansatz:
I = 15
Rows(I).Select
Selection.EntireRow.Hidden = True
Gruß Günter
Registriert seit: 09.05.2017
Version(en): 2013
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?
Registriert seit: 12.10.2014
Version(en): 365 Insider (64 Bit)
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)
Registriert seit: 12.10.2014
Version(en): 365 Insider (64 Bit)
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)
Registriert seit: 11.04.2014
Version(en): '97 bis 2016; 365
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
Registriert seit: 05.09.2017
Version(en): 2013
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
Registriert seit: 09.05.2017
Version(en): 2013
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
Registriert seit: 27.06.2016
Version(en): 7
Hallo,
For I = 1 To 500
If Cells(I, 4) = 0 Then Rows(I).EntireRow.Hidden = True
Next I
Gruß Günter