Registriert seit: 13.02.2017
Version(en): 2010
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ß
Registriert seit: 13.02.2017
Version(en): 2010
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ß
Registriert seit: 14.04.2014
Version(en): 2003, 2007
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
Registriert seit: 13.02.2017
Version(en): 2010
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ß
Registriert seit: 12.10.2014
Version(en): 365 Insider (32 Bit)
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:1 Nutzer sagt Danke an RPP63 für diesen Beitrag 28
• tw3aker
Registriert seit: 13.02.2017
Version(en): 2010
14.02.2017, 09:16
(Dieser Beitrag wurde zuletzt bearbeitet: 14.02.2017, 09:16 von tw3aker.)
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ß
Registriert seit: 10.04.2014
Version(en): 97-2019 (32) + 365 (64)
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
. \\\|/// Hoffe, geholfen zu haben.
( ô ô ) Grüße, André aus G in T
ooO-(_)-Ooo (Excel 97-2019+365)