Hallo, Danke für die Antwort.
Sie hat mir zumindest geholfen die Worksheetfunktion.Match richtig zu schreiben und damit keine undokumentierten Funktionen nutzen.
Ich habe jetzt auch den Kode umgeschrieben und bekomme bei gefundenen Werten einen Relativen Zeilenwert zurück.
Nur wenn er nichts findet bekomme ich einen Wert 1 zurück und keine 0 oder #NV oder so etwas.
Das brauche ich aber auch, weil er dann etwas anderes machen soll.
Bei 1 schreibt er mir immer alles in die oberste (3.) Zeile und überschreibt mir meinen dortigen Wert.
1 ist genau 1x OK. nicht mehrmals. Außerdem wenn er nichts findet, sollte er keine 1 zurückgeben.
Wisst ihr Rat?
'Meldungsnummern im Datenexport
With Workbooks(QName.Name).Worksheets(QSheet.Name) ' Mit der Quelldatei, Quellsheet
Set rngDatenexport = .Range("A3", .Cells(.Rows.Count, "A").End(xlUp)) 'Die Range "A2" bis letzte Zeile in Spalte "A"
End With
'Meldungsnummern in der Dokumentation
With Workbooks(ZName).Worksheets(ZSheet) ' mit der Zieldatei, Zielsheet
Set rngDokumentation = .Range("C3", .Cells(.Rows.Count, "C").End(xlUp)) 'Die Range "C3" bis letzte Zeile in Spalte "C"
End With
'xxxxxxxxxxxxxxxxxxxxxxxx Und die Suche beginnt xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Dim rngDatenexportNr As Excel.Range
Dim rngDokumentationNr As Excel.Range
Dim Suchwert As Range
Dim Gefunden As Variant
Dim ZZeile As Long
Dim QZeile As Long
Dim QletzteZeile As Long
For Each Suchwert In rngDatenexport.Cells ' Das weiss ich nicht was es tut. Ich glaube du setzt die Range in einzelne Zellen um
Gefunden = WorksheetFunction.Match(Suchwert, rngDokumentation, 0)
QZeile = Suchwert.Row 'Ermitteln der Quellzeile
ZZeile = Gefunden + 2 'Ermitteln der Zielzeile +2 weil Start ab C3
|