ich habe folgendes Problem. Zwei Excel-Sheets ("User" und "Daten") in einer Datei.
Das Sheet "User" enthält ca. 26.500 Datensätze in ca. 14 Spalten.
Eine Spalte (C) enthält eine Kennung (okemon), welche in im anderen Blatt "Daten" in Spalte "D" suche und
wenn ich sie dort gefunden habe, kopiere ich aus dessen Zeile ein paar andere Daten in das
Blatt "User" zurück.
Einzige Unwägbarkeit ist, dass die zu suchende Kennung in dem Blatt "Daten" zwar in Spalte D steht
aber dort mit einigen anderen Daten kommasepariert hinterlegt ist - z.B steht in einer Zeile "user123, user456, user789".
Gesucht wird aber nur eines davon. Daher kommt ein simpler Sverweis nicht in Frage.
Per Makro suche ich nun in der Spalte D nach dem entsprechenden Wert (=okemon) und übernehme dann, wenn er
gefunden wird, die benötigten Daten.
Leider/komischerweise läuft dieses Makro (eigentlich sind es zwei) unendlich lang. hat jemand ene Idee, was ich da
performancemäßig optimieren kann?
Vielen Dank im Voraus,
Hier die beiden Makros:
Public okemon, ESSID, andere, Mail, KID, revoked As String
Sub all_names_User()
Application.ScreenUpdating = False
Sheets("User").Select
LZ1 = [C65536].End(xlUp).Row
For i = 2 To LZ1
Sheets("User").Select
okemon = Cells(i, 3).Value
Call Suche_okemon
Sheets("User").Select
Cells(i, 4).Value = revoked
Cells(i, 5).Value = ESSID
Cells(i, 6).Value = andere
Cells(i, 7).Value = Mail
Cells(i, 8).Value = KID
Next i
Application.ScreenUpdating = True
MsgBox "Fertig!"
End Sub
'***********************************************Sub Suche_okemon()
Sheets("Daten").Select
Columns("D:D").Select
On Error GoTo nächste1
Selection.Find(What:=okemon, After:=ActiveCell, LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False).Activate
ESSID = Cells(ActiveCell.Row, 2).Value
andere = Cells(ActiveCell.Row, 4).Value
Mail = Cells(ActiveCell.Row, 10).Value
KID = Cells(ActiveCell.Row, 11).Value
revoked = Cells(ActiveCell.Row, 16).Value
GoTo schluss1
nächste1:
ESSID = ""
andere = ""
Mail = ""
KID = ""
revoked = ""
schluss1:
End Sub