Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Daten mit Makro übertragen

Forumthread: Daten mit Makro übertragen

Daten mit Makro übertragen
27.06.2007 00:04:53
Hans-Joachim
Kompliziert.
Ich habe mir ein Makro erstellt, mit dem ich Daten aus einer aktuellen Tabelle in eine Archivtabelle übertrage.
So werden z.B. Daten aus der Tabelle "Eingabe18.xls" in die Tabelle "Archiv.xls" übertragen. Funktioniert gut.
Dabei habe ich das Problem, dass ich jedoch für die nächste Tabelle im Makro z.B. "Eingabe18.xls" von Hand in "Eingabe19.xls" ändern muss.
Problem ist der Rücksprung auf die jeweils aktive Tabelle.

Sub Daten_uebertragen()
Application.ScreenUpdating = False
Range("B3:J11").Select
Selection.Copy
Windows("Archiv.xls").Activate
Sheets("Archiv (7)").Select
Range("D4").Select
For Each Cell In Range("D4:D2081")
If ActiveCell  [F1] Then
ActiveCell(Selection.Rows.Count + 1, 1).Select
End If
Next
For Each Cell In Range("D4:D2081")
If ActiveCell  "" Then
ActiveCell(Selection.Count, 1 + 1).Select
End If
Next
ActiveSheet.Paste
Application.CutCopyMode = False
Selection.FormatConditions.Delete
Windows("Eingabe18.xls").Activate '-Dies ändere ich immer von Hand in diesem Makro
Next
Application.ScreenUpdating = True
End Sub


Geht das nicht einfacher, ohne dass ich im Makro von Hand ("Eingabe18.xls") in ("Eingabe19.xls") ändern muss?
Wäre toll, wenn jemand einen Lösungsvorschlag hätte. Vielen Dank.
Viele Grüße
Hans

Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
meinst Du so ...
27.06.2007 00:19:44
Matthias
Hallo Hans
... meinst Du in dieser Art
Mal nur als Msgbox zum Veranschaulichen. Das Nachbauen ist mir zu kompliziert.

Sub Daten_uebertragen()
Dim X
For X = 18 To 22
'Windows("Eingabe" & X & ".xls").Activate
MsgBox "Eingabe" & X & ".xls"
Next
End Sub


Anzeige
AW: meinst Du so ...
27.06.2007 00:45:00
Hans-Joachim
Nicht so ganz.
Das Makro befindet sich in "Archiv.xls".
Wenn "Eingabe18.xls" erledigt ist, kommt "Eingabe19.xls" dran.
Wäre mit "Input-Box" anstelle von "MSG-Box" nicht besser? Oder habe ich da jetzt etwas falsch verstanden?
Eine kurze Erklärung wäre schon mal eine große Hilfe.
(VBA und ich, zwei Welten prallen ...)
Danke
Gruß Hans

Anzeige
bitte mit Sicherungskopie testen !!
27.06.2007 01:11:00
Matthias
Hallo Hans
mit der Msgbox hatte ich doch geschrieben "nur zum veranschaulichen!"
Damit wollte ich Dir zeigen das die Variable X immer um einen Zähler erhöht wird während des Schleifendurchlaufes.
also ... Eingabe18.xls - Eingabe19.xls - Eingabe20.xls u.s.w das muß doch funktioniert haben.
setz das mal so um: (Ich konnte es aber nicht testen!)
Deshalb unbedingt mit einer mit Sicherungskopie probieren !!

Sub Daten_uebertragen()
Dim X
For X = 18 To 22 'anpassen! Windows("Eingabe18.xls") bis Windows("Eingabe22.xls")
Application.ScreenUpdating = False
Range("B3:J11").Select
Selection.Copy
Windows("Archiv.xls").Activate
Sheets("Archiv (7)").Select
Range("D4").Select
For Each Cell In Range("D4:D2081")
If ActiveCell  [F1] Then
ActiveCell(Selection.Rows.Count + 1, 1).Select
End If
Next
For Each Cell In Range("D4:D2081")
If ActiveCell  "" Then
ActiveCell(Selection.Count, 1 + 1).Select
End If
Next
ActiveSheet.Paste
Application.CutCopyMode = False
Selection.FormatConditions.Delete
Windows("Eingabe" & X & ".xls").Activate
Application.ScreenUpdating = True
Next X
End Sub


Anzeige
AW: bitte mit Sicherungskopie testen !!
27.06.2007 01:51:38
Hans-Joachim
Hallo Matthias, danke für deine Hilfe.
Es sind nicht unbedingt immer aufeinander folgende Zahlen wie 18, 19 und 20. Es kann auch schon mal "Eingabe13.xls" oder "Eingabe29.xls" dazwischen hängen. Diese Datei wäre aber vor der Übertragung auf jeden Fall geöffnet.
Ich werde deinen Vorschlag mit einer Sicherungskopie testen und dir dann Rückmeldung geben. Okay?
Gruß Hans
Anzeige
;

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige