Zeilen ausblenden
#1
Guten Morgen
Ich bitte um Eure Hilfe

Ich möchte in einem Tabellenblatt die Spalte C durchsuchen, wenn in einer der Zellen ein bestimmter Text oder Buchstabe vorkommt sollte die Zeile ausgeblendet werden.
Dieser bestimmte Text oder Buchstabe steht in eine anderen Tabelle B39:B53 dieser Bereich hat einen Bereichsnamen "abzüglich".

Mein Versuch blendet nur den ersten Fund aus?
[
Bild bitte so als Datei hochladen: Klick mich!
]

Vielleicht kann mir jemand helfen
Ich danke schon mal im Voraus

Gruß Peter
Top
#2
Hallo Peter,

vielleicht so (ungetestet)
Code:
Sub prcX()
   Dim d As Range
   Dim rngTreffer As Range
   Dim strTreffer As String
  
   For Each d In Range("abzüglich")
      With Workheets("aktuell").Range("C7:C120")
         Set rngTreffer = .Find(d.Value, LookIn:=xlValues, lookat:=xlWhole)
         If rngTreffer Is Nothing Then
            strTreffer = rngTreffer.Address
            Do
               .Rows(rngTreffer.Row).Hidden = True
               Set rngTreffer = .FindNext(rngTreffer)
            Loop While strTreffer <> rngTreffer.Address
         End If
      '   If WorksheetFunction.Count(.Cells, d.Value) Then
      '   .Cells(WorksheetFunction.Match(d.Value, .Cells, 1), 1).Offset.EntireRow.Hidden = True
      '   End If
      End With
   Next d
End Sub

Könntest Du zur Darstellung deines Codes den Code-Tag benutzen? (5. Symbol von rechts im Antwortfenster)
Gruß Stefan
Win 10 / Office 2016
Top
#3
Moin!
Ich schätze mal, dass sich dies problemlos mit dem erweiterten (Spezial-)Filter regeln lässt.
Also ohne VBA.
Dazu wäre aber die Datei hilfreich.

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)
Top
#4
Hallo Stefan
Danke für die schnelle Anwort.
Es erscheint volgende Fehlermeldung in der Zeile 

Code:
"strTreffer = rngTreffer.Address"
Laufzeitfehler ´91:
Objektvariable oder With-Blockvariable nivht festgelegt



Code:
Dim d As Range
  Dim rngTreffer As Range
  Dim strTreffer As String
 
  For Each d In Range("abzüglich")
     With Worksheets("Aktuell").Range("C7:C120")
        Set rngTreffer = .Find(d.Value, LookIn:=xlValues, lookat:=xlWhole)
        If rngTreffer Is Nothing Then
           strTreffer = rngTreffer.Address
           Do
              .Rows(rngTreffer.Row).Hidden = True
              Set rngTreffer = .FindNext(rngTreffer)
           Loop While strTreffer <> rngTreffer.Address
        End If
     '   If WorksheetFunction.Count(.Cells, d.Value) Then
     '   .Cells(WorksheetFunction.Match(d.Value, .Cells, 1), 1).Offset.EntireRow.Hidden = True
     '   End If
     End With
  Next d

Gruß Peter
Top
#5
Hallo,

sorry, da hatte ich noch einen Fehler drin. Ersetze diese Codezeile

Code:
If rngTreffer Is Nothing Then

durch die

Code:
If Not rngTreffer Is Nothing Then
Gruß Stefan
Win 10 / Office 2016
Top
#6
Hallo Stefan

Jetzt läuft das Skript fehlerfrei durch, es bearbeitet auch die Zeile ".Rows(rngTreffer.Row).Hidden = True" aber nicht so oft wie es eigentlich müsste.
Im endefekt bassiert nichts (er wird keine Zeile ausgeblendet).

Villeicht kannst Du nochmal checken.

Vielen Dank schon mal

Gruß Peter
Top
#7
Hallo Peter,

könntest Du die Datei hier hochladen?
Gruß Stefan
Win 10 / Office 2016
Top
#8
Hallo Stefan

Die Originaldatei ist zu groß, ich habe eine Beispieldatei erstellt, vieleicht genügt diese.

Gruß Peter


Angehängte Dateien
.xlsm   Ausblenden.xlsm (Größe: 19,5 KB / Downloads: 2)
Top
#9
Hallo,

die Beispieldatei hat genügt. Da hatte ich schon noch ein paar Fehler drin :@
Code:
Sub ausblenden()

   Dim d As Range
   Dim rngTreffer As Range
  
   For Each d In Range("abzüglich")
      With Worksheets("Aktuell").Range("C10:C30")
         Set rngTreffer = .Find(d.Value, LookIn:=xlValues, lookat:=xlWhole)
         If Not rngTreffer Is Nothing Then
            Do
               .Rows(rngTreffer.Row - .Row + 1).Hidden = True
               Set rngTreffer = .FindNext(rngTreffer)
            Loop While Not rngTreffer Is Nothing
         End If
      End With
   Next d
  
  
End Sub
Gruß Stefan
Win 10 / Office 2016
Top
#10
Hallo Stefan

Vielen Dank so funktioniert es super!!!!!

Gruß Peter
Top


Gehe zu:


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