Forumbeitrag
Excel-Version des Fragestellers:
365 Business
Erfahrungslevel des Fragestellers:
Excel gut - VBA bescheiden
Hallo Carsten
ich habe dir mal einen Simpelcode geschrieben der passen sollte.
Ich schaue aber nicht ob Zellen gefiltert sind, sondern vergleiche die SAP Nr. und den EU Betrag.
Aus deinem Recorder Code konnte ich nicht ersehen ob Export oder Sheet0 (3) die Quelldatei ist?
Unten findest du zwei Codes, aber nur einer ist der Richtige. Je nachdem welches Sheet die Quelle ist.
Du weisst ja in welchem Sheet die Rechnungs Nummern stehen.
mfg Piet
Option Explicit
Dim AC As Range, lzEx As Long
Dim AJ As Range, lzS3 As Long
'Export ist die Quelldatei mit Rechnungs Nr.
Sub RechnungsNr_einfügen_Exp()
Dim Exp As Worksheet, Sht3 As Worksheet
Set Exp = Worksheets("Export")
Set Sht3 = Worksheets("Sheet0 (3)")
lzEx = Exp.Cells(Rows.Count, 3).End(xlUp).Row
lzS3 = Sht3.Cells(Rows.Count, 3).End(xlUp).Row
'Export ist die Quelldatei mit Rechnungs Nr.
For Each AC In Exp.Range("B2:B" & lzEx)
If AC.Value <> Empty Then
For Each AJ In Sht3.Range("B2:B" & lzS3)
If AC.Cells(1, 2) = AJ.Cells(1, 2) And _
AC.Cells(1, 3) = AJ.Cells(1, 3) Then
AJ.Value = AC.Value: Exit For
End If
Next AJ
End If
Next AC
End Sub
'Sheet0 (3) ist die Quelldatei mit Rechnungs Nr.
Sub RechnungsNr_einfügen_Sht3()
Dim Exp As Worksheet, Sht3 As Worksheet
Set Exp = Worksheets("Export")
Set Sht3 = Worksheets("Sheet0 (3)")
lzS3 = Sht3.Cells(Rows.Count, 3).End(xlUp).Row
lzEx = Exp.Cells(Rows.Count, 3).End(xlUp).Row
'Sheet0 (3) ist die Quelldatei mit Rechnungs Nr.
For Each AC In Sht3.Range("B2:B" & lzS3)
If AC.Value <> Empty Then
For Each AJ In Exp.Range("B2:B" & lzEx)
If AC.Cells(1, 2) = AJ.Cells(1, 2) And _
AC.Cells(1, 3) = AJ.Cells(1, 3) Then
AJ.Value = AC.Value: Exit For
End If
Next AJ
End If
Next AC
End Sub