Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Suchen von Werten in ausgeblendeten Zellen

Forumthread: Suchen von Werten in ausgeblendeten Zellen

Suchen von Werten in ausgeblendeten Zellen
22.11.2015 20:44:35
Werten
Werte Herren & Damen
Als absoluter VBA Novize ersuche ich hier eurer Hilfe.
Ich habe in der Spalte A ab Zeile 3 - 2000 unterschiedliche eindeutige Werte, die
jedoch ausgeblendet sind.
Über einen Button mit Textfeld suche ich nach einem bestimmten Wert in der Spalte A von Zeile 3-2000. Da mann aber mit .Find keine Werte in ausgeblendeten Zellen finden kann, such ich nach einer andere Lösung.
Im Moment löse ich es wie folgt:
Application.ScreenUpdating = False
Range("3:2000").EntireRow.Hidden = False
Dim rng As Range
Set rng = Sheets("Liste").Range("A:A").Find(What:=TextBox1.Value, Lookat:=xlWhole, LookIn:=xlValues)
If Not rng Is Nothing Then
rng.Select
Dim rngGesamtbereich As Range
ActiveCell.EntireRow.Select
Unload Me
Application.ScreenUpdating = True
Exit Sub
Else
MsgBox "Nich gelistet"
Unload Me
Application.ScreenUpdating = True
End If
End Sub
Da so aber immer alle Zeilen gezeigt werden, kann der User natürlich auch sämtliche Zeilen bearbeiten. Dies möchte ich gerne verhindern.
So sollte das Makro funktionieren:
Nach Eingabe des Textfeldes und Betätigen des Buttons sollte die Zeile mit dem
Wert eingeblendet werden und die Zeile markieren.
Die restlichen Zeilen von 3:2000 in der Spalte A sollten verborgen bleiben.
Fragen:
Gibt es einen anderen Attribut als .Find um Werte auch in einer ausgeblendeten Zelle zu finden?
Gibt es eine Möglichkeit, "siehe Makro" wo dann die nicht gebrauchten Zeilen einfach wieder ausgeblendet werden?
Besten Dank für eure Hilfe.
Patrick

Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Suchen von Werten in ausgeblendeten Zellen
22.11.2015 22:34:12
Werten
Hallo Patrick,
blende nach der Suche erst alle Zeilen wieder aus und dann die gefundene Zeile ein.
Schaut dann etwa wie folgt aus.
Gruß
Franz
Private Sub CommandButton1_Click()
Dim wksListe As Worksheet
Dim rng As Range
Dim rngGesamtbereich As Range
If Me.TextBox1 = "" Then
MsgBox "Bitte vor Suche Wert in Textbox eingeben"
Exit Sub
End If
Set wksListe = Sheets("Liste")
Application.ScreenUpdating = False
With wksListe
.Rows.Hidden = False
Set rngGesamtbereich = .Range(.Rows(3), .Rows(.Cells(.Rows.Count, 1).End(xlUp).Row))
'       Set rngGesamtbereich = Range("3:2000").EntireRow
Set rng = .Range("A:A").Find(What:=TextBox1.Value, Lookat:=xlWhole, LookIn:=xlValues)
rngGesamtbereich.Hidden = True
If Not rng Is Nothing Then
rng.EntireRow.Hidden = False
rng.EntireRow.Select
Else
MsgBox "Nicht gelistet"
End If
End With
Unload Me
Application.ScreenUpdating = True
End Sub

Anzeige
AW: Suchen von Werten in ausgeblendeten Zellen
23.11.2015 18:23:40
Werten
Hey Super! Vielen Dank, hat bestens geklappt.
;
Anzeige
Anzeige

Infobox / Tutorial

Werte in ausgeblendeten Zellen suchen und verwalten


Schritt-für-Schritt-Anleitung

  1. Öffne Excel und gehe zum Visual Basic for Applications (VBA) Editor (Alt + F11).

  2. Füge ein neues Modul hinzu, indem du mit der rechten Maustaste auf "VBAProject" klickst und "Einfügen" > "Modul" wählst.

  3. Kopiere den folgenden VBA-Code und füge ihn in das Modul ein:

    Private Sub CommandButton1_Click()
       Dim wksListe As Worksheet
       Dim rng As Range
       Dim rngGesamtbereich As Range
    
       If Me.TextBox1 = "" Then
           MsgBox "Bitte vor Suche Wert in Textbox eingeben"
           Exit Sub
       End If
    
       Set wksListe = Sheets("Liste")
       Application.ScreenUpdating = False
    
       With wksListe
           .Rows.Hidden = False
           Set rngGesamtbereich = .Range(.Rows(3), .Rows(.Cells(.Rows.Count, 1).End(xlUp).Row))
           Set rng = .Range("A:A").Find(What:=TextBox1.Value, Lookat:=xlWhole, LookIn:=xlValues)
           rngGesamtbereich.Hidden = True
           If Not rng Is Nothing Then
               rng.EntireRow.Hidden = False
               rng.EntireRow.Select
           Else
               MsgBox "Nicht gelistet"
           End If
       End With
    
       Unload Me
       Application.ScreenUpdating = True
    End Sub
  4. Erstelle ein Textfeld und einen Button in deinem Excel-Blatt. Verknüpfe den Button mit dem obenstehenden Makro.

  5. Teste das Makro, indem du einen Wert in das Textfeld eingibst und auf den Button klickst. Die entsprechende Zeile wird eingeblendet und markiert, während alle anderen Zeilen ausgeblendet bleiben.


Häufige Fehler und Lösungen

  • Fehler: "Nicht gelistet" erscheint, obwohl der Wert vorhanden ist.

    • Überprüfe, ob der Wert genau dem gesuchten Wert entspricht. Achte auf Groß- und Kleinschreibung sowie auf Leerzeichen.
  • Der Button funktioniert nicht.

    • Stelle sicher, dass der Button korrekt mit dem Makro verknüpft ist und dass der VBA-Code fehlerfrei ist.
  • Alle Zeilen bleiben sichtbar.

    • Achte darauf, dass der Abschnitt .Rows.Hidden = False vor der Suche steht, um sicherzustellen, dass vorher alle Zeilen sichtbar sind.

Alternative Methoden

Wenn du nicht mit VBA arbeiten möchtest, kannst du auch die Funktion "Suchen" in Excel verwenden. Beachte jedoch, dass diese Methode nicht in ausgeblendeten Zellen sucht. Eine alternative Lösung wäre, die Daten in ein neues Arbeitsblatt zu kopieren, um die Sichtbarkeit der Daten zu erhalten.


Praktische Beispiele

  • Beispiel 1: Du hast in Spalte A von Zeile 3 bis 2000 ausgeblendete Werte. Du möchtest nach "Produkt123" suchen. Gib diesen Wert in das Textfeld ein und klicke auf den Button. Die Zeile mit "Produkt123" wird eingeblendet, alle anderen bleiben verborgen.

  • Beispiel 2: Wenn du nach einem Wert suchst, der nicht vorhanden ist, wird die Meldung "Nicht gelistet" angezeigt.


Tipps für Profis

  • Verwende die Trim-Funktion, um sicherzustellen, dass keine Leerzeichen vor oder nach dem Wert in der Textbox vorhanden sind. Füge dies in die If-Bedingung ein:

    If Trim(Me.TextBox1) = "" Then
  • Du kannst auch eine Fehlerbehandlung hinzufügen, um unerwartete Fehler abzufangen, indem du On Error Resume Next und On Error GoTo 0 verwendest.


FAQ: Häufige Fragen

1. Frage
Wie kann ich sicherstellen, dass das Makro nur in bestimmten Zellen sucht?
Antwort: Du kannst den Suchbereich im VBA-Code anpassen, indem du .Range("A3:A2000") anstelle von .Range("A:A") verwendest.

2. Frage
Kann ich das Makro so anpassen, dass es mehrere Werte gleichzeitig sucht?
Antwort: Ja, du müsstest eine Schleife einfügen, die durch ein Array von Suchwerten iteriert.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige