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.

VBA Suche
#1
Hallo,
 
ich weiß, das Thema wurde schon mehr als 1000-mal behandelt. Doch nun versuche ich schon den ganzen Tag etwas zu basteln (viel Kenntnis von VBA habe ich echt wenig) um quasi eine suche in mein Excel zu bauen.
 
Folgende Problematik:
 
Ich will in Tabellenblatt "Suche" in Zelle "A1" eine Zahl eingeben können
 
Diese Zahl soll gesucht werden
 
Aktuell in Tabellenblatt "Auswertung"
 
Zukünftig in einer anderen Datei.
 
Jetzt Kann es sein, dass es den Wert öfter gibt den ich suche.
ich benötige als genaue Ausgabe die komplette Zeile, in dem der Wert vorhanden ist.
 
Die Krönung des Ganzen: der wert den ich suche kann wie folgt aussehen: "65.12" ; "77065" ; "J11092"
 
Die Tabelle in der ich suche hat den Suchbereich von "A:J"
 
Ich hoffe, dass mir hier jemand helfen kann.
 
Danke schon mal vorab und Gruß
Antworten Top
#2
Mein aktueller Stand, funktioniert soweit schon, nur müsste das jetzt auch Buchstaben und in der Suche berücksichtigen.

Code:
Sub prcX()
Dim laZell As Long
Dim loDeinWert As Long
Dim sFirstAdress As String

loDeinWert = Worksheets("Suche").Range("A1").Value 'gesuchter Wert

'alten Lieferschein löschen
Worksheets("Suche").Range("B3:K999").Clear

Set rng = Worksheets("Auswertung").Range("A:J").Find(loDeinWert)

If rng Is Nothing Then
MsgBox "Wert " & loDeinWert & " nicht gefunden!"
Else
sfirstaddress = rng.Address
Do
 laZell = Worksheets("Suche").Cells(Rows.Count, 3).End(xlUp).Row + 1
 If laZell < 3 Then laZell = 3   '1. Zeile minimum auf B3 setzen
 Worksheets("Auswertung").Cells(rng.Row, 1).Resize(1, 10).Copy
 Worksheets("Suche").Range("B" & laZell).PasteSpecial Paste:=xlPasteAll
 Application.CutCopyMode = False  'Kopie Modus löschen !!
 Set rng = Worksheets("Auswertung").Range("A:J").FindNext(rng)
Loop While Not rng Is Nothing And rng.Address <> sfirstaddress
End If
End Sub

Wie kann ich das jetzt erweitern auf meine noch offenen Fragen???

Gruß
Antworten Top
#3
Hallo,

wenn Du diesen Teil:
Code:
Set rng = Worksheets("Auswertung").Range("A:J").Find(loDeinWert)


so änderst,

Code:
Set rng = Worksheets("Auswertung").Range("A:J").Find(1, lookat:=xlPart)



dann wird auch in Teilen eines Zellwertes gesucht.
Gruß Atilla
Antworten Top
#4
Hallo Atilla,
 
danke für den Tipp. Leider kann ich diesen in dem Umfang nicht einsetzten.
Die suche muss den genauen Wert suchen und ausgeben.
Gibt es da keine Möglichkeit??

Gruß
Antworten Top
#5
Moin!
Code:
Dim loDeinWert As Long
sucht nur nach Ganzzahlen.
Mach mal so:
Code:
Dim varDeinWert As Variant

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)
[-] Folgende(r) 1 Nutzer sagt Danke an RPP63 für diesen Beitrag:
  • tw3aker
Antworten Top
#6
Hallo Ralf,

perfekt, das war es schon. Geht jetzt richtig gut. Wie kann ich jetzt in diese Skript einbauen, dass er mir die Möglichkeit gibt, das ganze aus einer externen Datei auszulesen??

BZW., ggf. kann ich das auch umdrehen. wie kann ich den Inhalt aus einem Tabellenblatt kopieren und in einer anderen Datei in ein Tabellen Blatt einfügen, rein über Marco und ohne dass man viel davon sieht? Quasi Botton drücken, er öffnet die andere Datei, überschreibt die Daten, speichert und schließt.

Gruß
Antworten Top
#7
Hallöchen,

so als erste Variante könntest Du den Code per Makrorekorder aufzeichnen. Starte den Rekorder, führe jede einzelne Aktion durch, und beende dann die Aufzeichnung. Dann kannst Du einen Button oder irgendein Objekt einfügen und dem ein Makro zuweisen.
Zuweilen ist es bei der Aufzeichnung von Vorteil, wenn Du das Blatt und die Zelle für eine Aktion erst auswählen musst und nicht schon dort bist. Der Recorder nimmst sonst nur ActiveSheet oder Selection und wenn Du das nächste mal woanders bist, kommt das Ergebnis auch nach woanders Sad
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top


Gehe zu:


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