Excel VBA Daten abfragen und übertragen?
Hallo,
ich habe eine Arbeitsmappe, welche einen Kalender und darunter 3 Zeilen mit jeweiligen Fahrzeugen beinhaltet. Für diese müssen wir täglich einen Km-Stand eintragen.
In diese Mappe möchte ich gerne Daten aus einer anderen Mappe übertragen.
Die Aufgabe an der ganzen Sache ist, dass das Datum abgeglichen wird und das Fahrzeug (auf dem Screenshot ist nur eins zusehen welches aber gewechselt werden kann (Dropdown-Liste)). Der Kilometerstand soll dann in die Mappe zu dem entsprechendem Datum und Fahrzeug zugewiesen werden. Ich hätte schon an eine if-Anfrage gedacht, aber so wirklich finde ich keinen Weg. meine Excelkenntnisse sind nicht so Fortschrittlich.
PS: Freund Google habe ich auch schon durchsucht, bin aber auf keine guten Ergebnisse gekommen.
Mappe 1
Mappe 2
1 Antwort
Zunächst muss du über den Monat die Zeile finden ab wo die Tfz Nummer gesucht werden soll.
Anstatt Januar, etc besser die Monats Ziffer verwenden, dann wird es einfacher.
Das Makro muss zunächst die ZielMappe öffnen. Findest du im Web _oder_
befindet sich das Makro in der ZielDatei, dann zunächst die QuellDatei öffnen.
Dim Quelle as Object
Dim Ziel as Object
Set Quelle = Workbooks("QuellMappenName")
Set Ziel = Workbooks("ZielMappenName")
TfzNummer = Quelle.Worksheets("BlaBla").Range("B5").Value 'Bild ohne Koordinaten
aktMonat = DateTime.Month(DateTime.Date)
aktMonatZeile = Worksheetfunction.Match(aktMonat, Ziel.Worksheets("BlaBla").Range("A1:A20000"),False)
aktTfzZeile = Worksheetfunction.Match(TfzNummer, Ziel.Worksheets("BlaBla").Range("A" & aktMonatZeile +1 & ":A20000"),False) + aktMonatZeile
aktTageSpalte = Worksheetfunction.Match(DateTime.Day(DateTime.Date),Ziel.Worksheets("BlaBla").Range(Cells(aktMonatZeile + 1,1),Cells(aktMonatZeile + 1,1000 )),False)
Nun sind die Zielkoordinaten bekannt
Ziel.Cells(aktTfzZeile, aktTageSpalte).Value = Quelle.Range(KoordinateDes KilometerStand).Value
Generell:
Es geht alles auch mit Formeln.
Also ggf erst einmal per Formel erreichen die Richtige Zeile und Spalte zu finden.
Ist dies einmal erreicht, dann diese Formel nach VBA übertragen.
Sowohl Mappe 2 wie auch 1 haben eine "schlechte" Rohdaten Struktur.
Dies sollte am besten PIVOT tauglich aufgebaut werden, dann hat man den Ärger auch mit dem was du machen sollst gar nicht mehr.
Danke für deine Antwort.
Ich habe es jetzt einmal übertragen und die Daten angepasst. Jetzt kommt, das es einen Laufzeitfehler gibt und ich komme einfach nicht dahinter, wo er her kommt. Es wird auch nichts gelb markiert.
Ich hatte es einmal übertragen, da kam es schon mal bis zur Zeile "aktMonatZeile", aber jetzt geht es irgendwie gar nicht mehr obwohl alles gleich ist wie vorher.