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

Forumthread: Wert in Inputbox eingeben und suchen

Wert in Inputbox eingeben und suchen
Ivek
Hallo Leute ich hoffe Ihr könnt mir weiterhelfen!
Bin relativ neu in dem Gebiet und weiss nicht wie ich mein problem umsetzen kann!
Ich habe mir eine Inputbox erstellt, diese wird über eine Schaltfläche Suchen aufgerufen! Die Funktion der Inputbox sollte sein, dass ich einen Wert eingebe und dass dieser Wert dann in der Mappe gesucht wird und irgendwie hervorgehoben, gekennzeichnet oder markiert wird.
Darüber hinaus sollte es auch möglich sein nur ein Teil des Strings einzugeben und dass dann alle Werte die ähnlich sind angezeigt werden. Ich habe keine Ahnung wie ich das hinbekommen soll. Könnt Ihr mir weiterhelfen?
Das mit der Inputbox habe ich hinbekommen, wie kriege ich es aber nun hin dass die Mappe nach dem Wert durchsucht wird?
Danke schon mal.
Grüße
Ivek

Anzeige
AW: Wert in Inputbox eingeben und suchen
11.09.2012 09:21:12
Jack
So würde ich es machen
x= inputbox
Worksheets("Tabelle1").Columns(1).Find(what:=x, lookat:=xlPart).Select
und anschliessend nach deinem Gustus formatieren
grüße

AW: Wert in Inputbox eingeben und suchen
11.09.2012 09:42:21
Ivek
Hey Jack,
danke für die schnelle Antwort, aber irgendwie funktioniert es nicht. Es erscheint die Fehlermeldung "Laufzeitfehler '91', Objektvariable oder With-Blockvariable nicht festgelegt". Wie gesagt bin halt nicht so fit in VB:
Also der Code sieht jetzt so aus:
Private Sub cmbSuchenSNR_Click()
Dim strSuchen As String
strSuchen = InputBox("Bitte geben Sie die gesuchte Sachnummer ein!", "Sachnummer suchen")
If strSuchen = "" Then Exit Sub
Worksheets("ET").Columns(1).Find(what:=strSuchen, lookat:=xlPart).Select
End Sub
Grüße
Ivek

Anzeige
AW: Wert in Inputbox eingeben und suchen
11.09.2012 09:48:07
Ivek
Hallo Jack,
habe den Fehler selber herausgefunden, danke nochmals!
Kannst du mir jetzt nur noch kurz erklären wie ich die gefundene Zelle dann irgendwie kennzeichnen kann zB den Inhalt markieren oder den inhalt hervorheben irgendwie?
Danke im Voraus.
Grüße
Ivek

AW: Wert in Inputbox eingeben und suchen
11.09.2012 09:45:29
Ivek
Hey Jack,
danke für die schnelle Antwort, aber irgendwie funktioniert es nicht. Es erscheint die Fehlermeldung "Laufzeitfehler '91', Objektvariable oder With-Blockvariable nicht festgelegt". Wie gesagt bin halt nicht so fit in VB:
Also der Code sieht jetzt so aus:
Private Sub cmbSuchenSNR_Click()
Dim strSuchen As String
strSuchen = InputBox("Bitte geben Sie die gesuchte Sachnummer ein!", "Sachnummer suchen")
If strSuchen = "" Then Exit Sub
Worksheets("ET").Columns(1).Find(what:=strSuchen, lookat:=xlPart).Select
End Sub
Grüße
Ivek

Anzeige
AW: Wert in Inputbox eingeben und suchen
11.09.2012 10:16:51
Jack
HAllo Ivek ja kein Problem
'Hintergrund Gelb
With Selection.Interior
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
.Color = 65535 'oder hier ne andere Farbe
.TintAndShade = 0
.PatternTintAndShade = 0
End With
'Rahmen drum rum
Selection.Borders(xlDiagonalDown).LineStyle = xlNone
Selection.Borders(xlDiagonalUp).LineStyle = xlNone
With Selection.Borders(xlEdgeLeft)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
With Selection.Borders(xlEdgeTop)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
With Selection.Borders(xlEdgeBottom)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
With Selection.Borders(xlEdgeRight)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
Selection.Borders(xlInsideVertical).LineStyle = xlNone
Selection.Borders(xlInsideHorizontal).LineStyle = xlNone
'Fett
Selection.Font.Bold = True
Grüße

Anzeige
AW: Wert in Inputbox eingeben und suchen
11.09.2012 10:28:10
Ivek
Hey Jack,
alle Achtung, hilfst mir richtig weiter. Hab wenig Plan von dem Ganzen und kenne mich in der MAterie kaum aus.
Ich habe nun bemerkt dass mir dein Code die ganze Zelle markiert und dann auch markiert lässt. Ist es mögöich nur den text zu markieren anstatt der ganzen Zelle.
Meine Vorstellung war, dass die Markierung nur bis zur nächsten Suchaktion aktiv ist. Also wie wenn ich im Internet über strg+f etwas suche.
Danke nochmal.
Grüße
Ivek

Anzeige
AW: Wert in Inputbox eingeben und suchen
11.09.2012 10:34:12
Jack
Hallo Ivek
Ich bin auch nicht so super...
allerdings kann man solche dinge ganz gut mit dem Makrorekorder herausfinden ;-)
so zu deinem Anliegen
Also wenn du nur die Schrift formatiert haben willst, kannst du den ersten Teil weglassen und dann
halt nur
Selection.Font.Bold = true ' Für Fett
With Selection.Font
.Color = -16776961
.TintAndShade = 0
End With ' Für Rote Schrift
Im weiteren hast du dann zwei Optionen diese hervorhebung zu ändern
1. Über eine gesonderte Schaltfläche
2. Indem du am Anfang deines Suchcodes alles wieder "normal" machst
Grüße

Anzeige
AW: Wert in Inputbox eingeben und suchen
11.09.2012 10:54:20
Ivek
Hallo Jack,
also nochmals vielen Dank. Ich werde es jetzt mal mit dem Makro-Recorder versuchen. Von dieser Funktion habe ich auch noch nichts gewusst.
Auf jeden Fall warst du mir eine super Hilfe.
Ich probier des jetzt mal und falls ich nicht weiterkomme schrieb ich wieder.
Vielen Dank.
Gruß
Ivek

Anzeige
AW: Wert in Inputbox eingeben und suchen
11.09.2012 11:06:20
Jack
Klingt nach einem Super Plan
Probier dich bisschen aus und versuch dein Glück
Und im Zweifel helfen sie hier ganz gut weiter.
Und der Recorder ist halt eine super möglichkeit sich mit dem Thema VBA zu beschäftigen und nach und nach kommt dann die Syntax dazu.
Mit sauber programmieren hat das zwar nicht viel gemein, aber das ist glaub auch kein Anspruch den man am Anfang hegt =)
in diesem Sinne
viel erfolg =)

Anzeige
AW: Wert in Inputbox eingeben und suchen
11.09.2012 11:16:27
Ivek
Ich hoffe das ich den Plan auch umgesetzt bekomme und ob ich je ein guter und sauberer Programmierer werde, bezweifel ich, aber das wirds sich zeigen.
Vielen Dank nochmal!!!

AW: Wert in Inputbox eingeben und suchen
11.09.2012 11:16:27
Ivek
Ich hoffe das ich den Plan auch umgesetzt bekomme und ob ich je ein guter und sauberer Programmierer werde, bezweifel ich, aber das wirds sich zeigen.
Vielen Dank nochmal!!!
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Wert in Inputbox eingeben und suchen


Schritt-für-Schritt-Anleitung

  1. Inputbox erstellen: Um eine Inputbox zu erstellen, kannst du den folgenden Code verwenden. Dieser Code wird in ein VBA-Modul eingefügt und kann durch eine Schaltfläche ausgelöst werden.

    Private Sub cmbSuchenSNR_Click()
       Dim strSuchen As String
       strSuchen = InputBox("Bitte geben Sie die gesuchte Sachnummer ein!", "Sachnummer suchen")
       If strSuchen = "" Then Exit Sub
       Worksheets("ET").Columns(1).Find(what:=strSuchen, lookat:=xlPart).Select
    End Sub
  2. Wert suchen: Der Code verwendet die Find-Methode, um den eingegebenen Wert in der ersten Spalte der Tabelle "ET" zu suchen.

  3. Zelle hervorheben: Um die gefundene Zelle hervorzuheben, kannst du den folgenden Code hinzufügen:

    With Selection.Interior
       .Color = 65535  ' Hintergrundfarbe Gelb
    End With
  4. Text formatieren: Wenn du nur den Text der Zelle formatieren möchtest, kannst du den folgenden Code verwenden:

    Selection.Font.Bold = True  ' Text fett formatieren

Häufige Fehler und Lösungen

  • Laufzeitfehler '91': Dieser Fehler tritt auf, wenn das gesuchte Objekt nicht gefunden wird. Stelle sicher, dass der eingegebene Wert tatsächlich in der Tabelle vorhanden ist. Es könnte auch hilfreich sein, den Code so zu erweitern, dass er prüft, ob Find ein Ergebnis zurückgibt, bevor du versuchst, es auszuwählen.

    Dim gefunden As Range
    Set gefunden = Worksheets("ET").Columns(1).Find(what:=strSuchen, lookat:=xlPart)
    If Not gefunden Is Nothing Then
       gefunden.Select
    Else
       MsgBox "Wert nicht gefunden!"
    End If

Alternative Methoden

  • Makrorekorder verwenden: Eine gute Möglichkeit, um den Umgang mit VBA zu lernen, ist die Nutzung des Makrorekorders. Damit kannst du Aktionen in Excel aufzeichnen und sie in VBA-Code umwandeln. Dies hilft dir, ein besseres Verständnis für die Syntax zu entwickeln.

  • Filtern anstatt Suchen: Du könntest auch die Filterfunktion in Excel nutzen, um schnell die gewünschten Daten anzuzeigen, ohne VBA verwenden zu müssen.


Praktische Beispiele

  • Beispiel 1: Suche nach einem Teilstring und hebe die Zelle hervor.

    Dim strSuchen As String
    strSuchen = InputBox("Bitte geben Sie den Suchbegriff ein:")
    Dim gefunden As Range
    Set gefunden = Worksheets("ET").Columns(1).Find(what:=strSuchen, lookat:=xlPart)
    If Not gefunden Is Nothing Then
       gefunden.Select
       With Selection.Interior
           .Color = 65535  ' Hintergrundfarbe Gelb
       End With
    End If
  • Beispiel 2: Markiere nur den Text in der Zelle.

    Selection.Font.Bold = True  ' Text fett
    With Selection.Font
       .Color = -16776961  ' Textfarbe Rot
    End With

Tipps für Profis

  • Code optimieren: Versuche, deinen Code so zu strukturieren, dass er auch im Fehlerfall robust bleibt. Überprüfe Eingaben und stelle sicher, dass Ausnahmen angemessen behandelt werden.

  • Funktionen erstellen: Du kannst häufig verwendete Codeabschnitte in Funktionen auslagern, um die Lesbarkeit und Wiederverwendbarkeit zu erhöhen.


FAQ: Häufige Fragen

1. Wie kann ich die Suche auf mehrere Spalten erweitern?
Du kannst die Find-Methode in einer Schleife anwenden, um durch mehrere Spalten zu iterieren.

2. Ist es möglich, die Suche auf Groß- und Kleinschreibung zu ignorieren?
Ja, du kannst die MatchCase-Eigenschaft der Find-Methode auf False setzen, um die Groß- und Kleinschreibung zu ignorieren.

3. Wie kann ich den Suchbereich anpassen?
Du kannst die Find-Methode auf einen bestimmten Bereich anwenden, anstatt auf die ganze Spalte, indem du den Bereich anstelle von Columns(1) angibst, z.B. Range("A1:A100").

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige