Hallo zusammen,
ich bin ein VBA-Neuling und habe mir jetzt einen Code zusammengebastelt, der zumindest schon mal funktioniert :-)
Es geht darum, dass ich aus einer Datei ("Tapete1") Werte aus bestimmten nicht zusammenhängenden Zellen (A1, A4, A5, A7, A20, D1,D4,D5,D7,D20)auslesen möchte. Die Zeilen sind immer die gleichen also 1, 4, 5, 20 usw. Die Spalten sind nicht zusammenhängend aber auch vorgegeben (I, L, M) und ändern sich nicht. Es können nur eine bzw. mehrere Spalten hinzukommen.
Die so gefundenen Zelleninhalt (immer Zahlen) möchte ich kopieren und in eine weitere Datei ("Tapete2") in bestimmte Zellen (I10, I11, I13, etc) und durch 1000 teilen. Hier sind die Zeilen auch immer die gleichen. Die Spalten sind nicht zusammenhängend aber auch vorgegeben (I, L, M) und ändern sich nicht. Es können nur weitere Spalten hinzukommen.
Meine Frage dazu ist, ob das nicht auch über eine Schleife zu lösen wäre und mit Variablen, dass der manuelle Aufwand sich in Grenzen hält und sich der Code auch auf meine anderen 3 Dateien anwenden lässt (hier sind die Zeilen und Spalten andere, aber das Prinzip das gleiche) und ich nicht jedesmal für jede Zelle eine eigene Zeile schreiben muss.
Dazu muss ich sagen, dass sich meine VBA Kenntnisse bisher in Grenzen halten und die Makroaufzeichnung mir nicht weitergeholfen hat (im Gegenteil: hier waren es noch mehr Zeilen :-)).
Ich danke euch schon mal im Voraus sehr für eure Hilfe.
Andie
Den Code rufe ich über einen Button "aktualisieren" aus Tapete 2 auf.
Mein bisheriger Code schaut wie folgt aus:
Sub
Workbooks.Open Filename:="Tapete1"
x1= Worksheets("Blatt1").Range("J1").Value
x2= Worksheets("Blatt1").Range("J3").Value
x3 = Worksheets("Blatt1").Range("J20").Value
x4= Worksheets("Blatt1").Range("K1").Value
x5= Worksheets("Blatt1").Range("K3").Value
x6 = Worksheets("Blatt1").Range("K20").Value
x7= Worksheets("Blatt1").Range("m1").Value
x8= Worksheets("Blatt1").Range("m3").Value
x9 = Worksheets("Blatt1").Range("m20").Value
x10= Worksheets("Blatt1").Range("af1").Value
x11= Worksheets("Blatt1").Range("af3").Value
x12 = Worksheets("Blatt1").Range("af20").Value
Windows("Tapete2").Activate
Worksheets("Blatt2").Range("I10").Value = x1 / 1000
Worksheets("Blatt2").Range("I11").Value = x2 / 1000
Worksheets("Blatt2").Range("I13").Value = x3 / 1000
Worksheets("Blatt2").Range("L10").Value = x4 / 1000
Worksheets("Blatt2").Range("L11").Value = x5 / 1000
Worksheets("Blatt2").Range("L13").Value = x6 / 1000
Worksheets("Blatt2").Range("P10").Value = x7 / 1000
Worksheets("Blatt2").Range("P11").Value = x8 / 1000
Worksheets("Blatt2").Range("P13").Value = x9 / 1000
Worksheets("Blatt2").Range("T10").Value = x10 / 1000
Worksheets("Blatt2").Range("T11").Value = x11 / 1000
Worksheets("Blatt2").Range("T13").Value = x12 / 1000
Windows("Tapete1").Close
End Sub
|