ich benötige eure Hilfe. Und zwar habe ich eine bestehende Kundenübersicht.
Im wöchentlichen Turnus ziehe ich ein Update aus SAP und aktualisiere die Daten aus diesem Update in meiner Kundenübersicht.
Allerdings hat die SAP Datei nicht immer die gleiche Spaltenanordnung, sodass ich mit dem bisher erstellten Makro nicht unbedingt arbeiten kann.
Ich habe eine Beispieldatei angefügt, mit drei Tabellenblätter. Das erste Tabellenblatt ist meine bestehende Übersicht, das zweite das erste Update, bei dem der angefügte Code noch funktioniert und das dritte Tabellenblatt stellt das zweite Update da, bei dem der Code schon nicht mehr richtig arbeiten würde, da neue Spaltenordnung.
Folgende Ergänzungen brauch ich in meinem Makro:
In Zukunft wird nicht für jedes Update ein neues Tabellenblatt angelegt, sondern es gibt in der Excel eine Tabellenblatt "Bestand" und ein zweites Tabellenblatt "Update" in der ich die SAP Datei rüber kopiere.
Vielen Dank vorab für Eure Hilfe!
Sub Daten_uebertragen()
Debug.Print Now
Dim i As Long, Zeile As Long, letzteZeile As Long
Dim Arbeitsmappe As Workbook
Dim Datenbasis As Worksheet, Ziel As Worksheet
Dim ZelleKD_NR As Range, Bereich As Range
Set Arbeitsmappe = ThisWorkbook
Set Datenbasis = Arbeitsmappe.Worksheets("1. Update aus SAP")
Set Ziel = Arbeitsmappe.Worksheets("Bestandstabelle")
letzteZeile = Datenbasis.Range("C" & Rows.Count).End(xlUp).Row
Set Bereich = Datenbasis.Range("C2:C" & letzteZeile)
For i = 2 To Ziel.Range("C" & Rows.Count).End(xlUp).Row
With Datenbasis
Set ZelleKD_NR = Bereich.Find(Ziel.Range("C" & i).Value, LookIn:=xlValues, lookat:=xlWhole)
If Not ZelleKD_NR Is Nothing Then
Ziel.Range("A" & i).Value = .Range("A" & ZelleKD_NR.Row).Value
Ziel.Range("B" & i).Value = .Range("B" & ZelleKD_NR.Row).Value
Ziel.Range("D" & i).Value = .Range("D" & ZelleKD_NR.Row).Value
Ziel.Range("E" & i).Value = .Range("E" & ZelleKD_NR.Row).Value
Ziel.Range("F" & i).Value = .Range("F" & ZelleKD_NR.Row).Value
Ziel.Range("G" & i).Value = .Range("G" & ZelleKD_NR.Row).Value
Set ZelleKD_NR = Nothing
End If
End With
Next i
Debug.Print Now
End Sub
https://www.herber.de/bbs/user/157610.xlsm