Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1916to1920
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Zeilen ausblenden

Zeilen ausblenden
12.02.2023 21:27:42
Thomas
Hallo Excelfreunde,
mit diesem Macro:
'https://www.ms-office-forum.net/forum/showthread.php?t=255332
'Basiss CitizenX
Dim strFind$, myFind, firstAdd$, i&
Dim strTemp$
Dim zeil$
Dim wert() As String

strFind$ = InputBox("Bitte geben Sie die Suchbegriffe ein." & vbNewLine _
& "Trennen Sie die Suchbegriffe mit einem Schrägstrich / ", "Suche")

If strFind$ = vbNullString Then Exit Sub
For i = LBound(Split(strFind$, "/")) To UBound(Split(strFind$, "/"))
strTemp$ = Trim(Split(strFind$, "/")(i))
Set myFind = Cells.SpecialCells(xlCellTypeVisible).Find(strTemp$, LookIn:=xlValues, LookAt:=xlPart, MatchCase:=False)
If Not myFind Is Nothing Then
firstAdd$ = myFind.Address
'----------------------

'----------------------------------------------
Do
If i = 0 Then Range(myFind.Address).Interior.Color = vbRed 'ich
If i = 1 Then Range(myFind.Address).Interior.Color = vbBlue 'ich
If i = 2 Then Range(myFind.Address).Interior.Color = vbGreen 'ich
If i = 3 Then Range(myFind.Address).Interior.Color = vbMagenta 'ich
If i = 4 Then Range(myFind.Address).Interior.Color = vbYellow 'ich
If i = 5 Then Range(myFind.Address).Interior.Color = vbCyan 'ich



Set myFind = Cells.SpecialCells(xlCellTypeVisible).FindNext(myFind)



Loop While myFind.Address > firstAdd$

End If
Next i
End Sub
Kann ich variable Suchkriterien in einer Msgbox eingeben und in der kompletten Tabelle suchen lassen. Alle Treffer werden dann markiert.
Ist zwar ein wenig langsam aber es funktioniert.
Da meine Tabelle sehr viele Daten hat möchte ich gern alle Zeilen ohne Treffer ausblenden.
All meine versuche schlagen fehl.
Dies ist womöglich mein bester versuch:
-----------------
'---------------
wert = Split(myFind.Address, "$") 'ich
'MsgBox "Spalte: " & wert(1) & Chr(13) & "Zeile: " & wert(2)
If myFind.Address = firstAdd$ Then
Rows(wert(2)).Hidden = True
Else
Rows(wert(2)).Hidden = False ' ich
End If
'-----------------------------------------------------

kann mir dabei jemand helfen?

mfg thomas

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zeilen ausblenden
13.02.2023 11:38:52
Rudi
Hallo,
teste mal:
  Dim strFind$, myFind, firstAdd$, i&
  Dim strTemp$
  Dim zeil$
  Dim wert() As String
  Dim rngFind As Range
  
  
  strFind$ = InputBox("Bitte geben Sie die Suchbegriffe ein." & vbNewLine _
    & "Trennen Sie die Suchbegriffe mit einem Schrägstrich / ", "Suche")
  
  If strFind$ = vbNullString Then Exit Sub
  Rows.Hidden = False
  
  For i = LBound(Split(strFind$, "/")) To UBound(Split(strFind$, "/"))
    strTemp$ = Trim(Split(strFind$, "/")(i))
    Set myFind = Cells.SpecialCells(xlCellTypeVisible).Find(strTemp$, LookIn:=xlValues, LookAt:=xlPart, MatchCase:=False)
    
    If Not myFind Is Nothing Then
    
      If rngFind Is Nothing Then
        Set rngFind = myFind.EntireRow
      Else
        Set rngFind = Union(rngFind, myFind.EntireRow)
      End If
      
      firstAdd$ = myFind.Address
      '----------------------
      
      Do
        Select Case i
          Case 0: myFind.Interior.Color = vbRed 'ich
          Case 1: myFind.Address.Interior.Color = vbBlue 'ich
          Case 2: myFind.Interior.Color = vbGreen 'ich
          Case 3: myFind.Interior.Color = vbMagenta 'ich
          Case 4: myFind.Interior.Color = vbYellow 'ich
          Case 5: myFind.Interior.Color = vbCyan 'ich
        End Select
        
        Set myFind = Cells.SpecialCells(xlCellTypeVisible).FindNext(myFind)
        
      Loop While myFind.Address > firstAdd$
      
    End If
  Next i
  
  If Not rngFind Is Nothing Then
    Rows.Hidden = True
    rngFind.Hidden = False
  End If
Gruß
Rudi
Anzeige
AW: Zeilen ausblenden
13.02.2023 13:18:49
Thomas
Hallo Rudi,
besten dank das du dir dies angeschaut hast.
Leider kommt hier
Rows.Hidden = True
der Fehler:
" Anwendungs oder Objektdefinierter Fehler"""
If Not rngFind Is Nothing Then
Rows.Hidden = True >>> " Anwendungs oder Objektdefinierter Fehler"""
rngFind.Hidden = False
End If
Kannst du nochmal schauen?
mfg thomas
funktioniert bei mir. owT
13.02.2023 13:35:59
Rudi
Mist bei mir geht es leider nicht mit Beispiel
13.02.2023 14:08:22
Thomas
Hallo Rudi,
mist bei mir geht es irgendwie nicht.
https://www.herber.de/bbs/user/157803.xlsm
Was habe ich noch falsch?
mfg thomas
Anzeige
AW: Mist bei mir geht es leider nicht mit Beispiel
13.02.2023 14:15:38
GerdL
Hallo Thomas,
du hast Steuerelemente in der Tabelle. Ändere mal:
'..................
Next i
  
  If Not rngFind Is Nothing Then
    Range("3:" & Rows.Count).EntireRow.Hidden = True
    rngFind.EntireRow.Hidden = False
  End If
End Sub
Gruß Gerd
AW: Mist bei mir geht es leider nicht mit Beispiel
13.02.2023 14:20:16
Rudi
das liegt an den Buttons auf dem Blatt. Ohne geht's.
Es muss aber
  If Not rngFind Is Nothing Then
    Rows.Hidden = True
    rngFind.EntireRow.Hidden = False
  End If
heißen.
Gruß
Rudi
so geht's
13.02.2023 14:24:41
Rudi
  If Not rngFind Is Nothing Then
    Range(Rows(1), Rows(10000)).Hidden = True
    rngFind.EntireRow.Hidden = False
    Application.Goto Cells(1, 1), True
  End If

Anzeige
perfekt
13.02.2023 15:09:24
Thomas
Hallo Rudi Maintaire,
ja so klappt es.
Hab rechtvielen dank das du nicht aufgegeben hast. Damit hast du mir echt geholfen.
Besten Dank
mfg thomas

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige