5.4k Aufrufe
Gefragt in Tabellenkalkulation von
Hi
ich bin neu und VBA ist für mich absolutes Neuland

Ich habe habe zwei Excel-Dateien
In Datei A Blatt 1 habe ich in Spalte A, F und G Werte Stehen


In Datei B sollen diese Werte in B1,B2 und B3 eingefügt werden
--> Daten werden abgefragt --> Daten kommen in Datei B
--> in Zelle C4 (Datei B) errechnet sich ein Wert (wie es mir schon gelungen ist)

Dieser Wert soll in Datei A Spalte N überführt werden und dort bleiben

Dies soll für jede Zeile funktionieren aber ich finde keinen weg und habe wohl zu wenige Kenntnisse in VBA um eine funktionierende Schleife zum laufen zu bringen die nach möglichkeit von alleine beginnt

ich hoffe es kann gehofen werden

21 Antworten

0 Punkte
Beantwortet von
Hallo vielen vielen Dank damit ist mein Problem schon so gut wie gelöst


aber es kommt immer beim kopieren der Dateien zu der Fehlermeldung :

Laufzeitfehler 9
Index außerhalb des gültigen bereichs


Sub daten_kopieren()
Dim Zieldatei As String
Dim lzeile, zeile As Long

'Bildschirmaktualisierung ausschalten:
Application.ScreenUpdating = False

'Name der anderen Datei festlegen
Zieldatei = "Batchverbrauchrev1_test06.09.2012.xls"

'letzte Zeile in der aktiven Tabelle ermitteln
lzeile = ActiveSheet.UsedRange.SpecialCells(xlCellTypeLastCell).Row

For zeile = 3 To lzeile
'A wird kopiert
Workbooks(Zieldatei).Sheets("Tabelle1").Cells(1, 2) = ThisWorkbook.ActiveSheet.Cells(zeile, 1).Value
'F wird kopiert
Workbooks(Zieldatei).Sheets("Tabelle1").Cells(2, 2) = ThisWorkbook.ActiveSheet.Cells(zeile, 6).Value
'G wird kopiert
Workbooks(Zieldatei).Sheets("Tabelle1").Cells(3, 2) = ThisWorkbook.ActiveSheet.Cells(zeile, 7).Value
'Wert in N schreiben
ThisWorkbook.ActiveSheet.Cells(zeile, 1500) = Workbooks(Zieldatei).Sheets("Tabelle1").Cells(4, 2).Value
Next zeile

'Bildschirmaktualisierung einschalten:
Application.ScreenUpdating = True

End Sub






ich weiss ich tue mich schwer

vermutlich muss das datum speziell deklariert werden???
0 Punkte
Beantwortet von m-o Profi (22.8k Punkte)
Hallo,

prüfe mal ob der Dateiname richtig geschrieben ist und ob auch der Name der Tabelle ("Tabelle1") richtig ist.

Gruß

M.O.
0 Punkte
Beantwortet von m-o Profi (22.8k Punkte)
Hallo,

außerdem sehe ich gerade:

ThisWorkbook.ActiveSheet.Cells(zeile, 1500) = Workbooks(Zieldatei).Sheets("Tabelle1").Cells(4, 2).Value


Die 1500 ist falsch! Das muss 14 = Spalte N heißen.

Gruß

M.O.
0 Punkte
Beantwortet von m-o Profi (22.8k Punkte)
Hallo,

wollte die 1500 fett machen, ging aber nicht :-(.

Gruß

M.O.
0 Punkte
Beantwortet von
Alles klar vielen Dank das werde ich gleich umsetzen ich glaube jetzt blicke ich so langsam ein bisschen hinter die Denkweise der VBA Programmierung :D

und das sollte dann wohl auch mein Problem lösen :D


Thx
0 Punkte
Beantwortet von
es scheint zu funktionieren :D

allerdings rechet der PC gerade noch ich hoffe er ist mit den ca 1200 zeilen bis jetzt nicht überfordert

bei mir funktioniert das fett schreiben ;D
0 Punkte
Beantwortet von
mhh ich weiss nicht so ganz warum aber er schreibt die werte nicht in die Zelle N

der code scheint richtig zu sein und er arbeitet jedoch kopiert er entweder die werte nicht in N oder diese verschwinden wieder ?
0 Punkte
Beantwortet von m-o Profi (22.8k Punkte)
Hallo,

ich kann leider keine Ferndiagnose stellen.
Prüfe noch einmal den Code, insbesondere die Zeile
'Wert in N schreiben
ThisWorkbook.ActiveSheet.Cells(zeile, 14) = Workbooks(Zieldatei).Sheets("Tabelle1").Cells(4, 2).Value

Ansonste poste deinen Code noch einmal hier im Forum.

Gruß

M.O.
0 Punkte
Beantwortet von
ok aber danke schonmal ^^
0 Punkte
Beantwortet von m-o Profi (22.8k Punkte)
Hallo,

außerdem habe ich die Bildschirmaktualisierung während der Codeausführung abgeschaltet, d.h. du siehst das Ergebnis erst, wenn der Code durchgelaufen ist!

Gruß

M.O.
...