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.

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
Antworten 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
Antworten 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)
Antworten 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
Antworten 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
Antworten 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
Antworten Top
#7
Hallo Peter,

könntest Du die Datei hier hochladen?
Gruß Stefan
Win 10 / Office 2016
Antworten 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)
Antworten 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
Antworten Top
#10
Hallo Stefan

Vielen Dank so funktioniert es super!!!!!

Gruß Peter
Antworten Top


Gehe zu:


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