Anzeige
Archiv - Navigation
1424to1428
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Daten übertragen

Daten übertragen
20.05.2015 08:58:52
Udo
Hallo zusammen,
ich habe folgendes Problem:
Ich möchte aus der Datei "Daten" die Zahlen in Spalte "A" in mehrere neue Dateien kopieren. Dabei soll der Wert der Spalte "A1" aus der Datei "Daten" in die Zellen "A3 - A7" in die neue Datei geschrieben werden. Das gleiche dann mit der Spalte"A2" usw. ...
Folgendes Macro habe ich erstellt:
Sub Macro1()
Dim inh(100)
Z = 1
Do While Cells(Z, 1)  ""
inh(Z) = Cells(Z, 1)
Workbooks.Add Template:= _
"\\Ulvmctmfil104\desktop104a\ubross\Documents\Briefe\Templates\Neu_Template.xltm"
Windows("Daten.xlsm").Activate
Z = Z + 1
Loop
Z = Z - 1
End Sub
Dieses Macro läuft so lange, bis in der Spalte "A" kein Wert mehr steht und übernimmt die Werte der Spalte "A" in die variable inh(z). Ferner werden genau soviele neue Dateien erstellt wie Werte in Spalte "A" vorhanden sind.
Meine Frage ist nun, wie bekomme ich die Werte von der Variablen inh(z) in die neuen Dateien ?
Danke schon mal für eure hilfe !
Udo

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Daten übertragen
20.05.2015 14:38:00
Michael
Hallo Udo,
wenn Du nur jeweils den (einen) Wert aus der betreffenden Zelle schreiben willst, benötigtst Du kein array inh(100), da das 100 Zahlen enthalten kann. Dim inh reicht.
Im Gegenteil: wenn Du ein array verwendest und 101 Daten in der Tabelle stehen, wirft excel ne Fehlermeldung aus.
Ohne es getestet zu haben (ich habe Deinen Pfad zu .xltm nicht), sollte es so gehen:
Sub Macro1()
' Dim inh(100)
Dim inh
Z = 1
Do While Cells(Z, 1)  ""
' inh(Z) = Cells(Z, 1)
inh = Cells(Z, 1)
Workbooks.Add Template:= _
"\\Ulvmctmfil104\desktop104a\ubross\Documents\Briefe\Templates\Neu_Template.xltm"
Windows("Daten.xlsm").Activate
range("A3:A7").value=inh           ' inh(Z)
Z = Z + 1
Loop
Z = Z - 1
End Sub
Die Arrray-Variante habe ich auskommentiert.
Schöne Grüße,
Michael

Anzeige
AW: Daten übertragen
20.05.2015 15:43:48
Udo
Hallo Michael,
erst mal Danke für deine Hilfe.
Ja, ich möchte jeweils nur einen Wert aus der Datei "Daten" in eine jeweils neue Datei in die Spalte "A3:A7" kopieren.
Nun, deine Version des Macros läuft zwer fehlerfrei durch, jedoch werden keine Werte in die neu erstelletn Dateien geschrieben.
Die Neu_Template.xlmt kannst du durch eine leere Templatedatei ersetzten um zu testen. Ich verwende eine Templatedatei um durch die Schleifenfunktion exact soviele Dateien zu generieren wie Daten in der Spalte "A" vorhanden sind. Kannst du bitte nochmals drüberschauen ?
Danke & Gruß
Udo

Anzeige
AW: Daten übertragen
20.05.2015 18:34:38
Michael
Hallo Udo,
war natürlich Quatsch, erst schreiben, dann wieder das aufrufende Fenster aktivieren.
Die Zeile gehört *vor* das Windows("Daten.xlsm").Activate
Der Schnipsel tut in etwa:
Sub Macro1()
Dim inh
Z = 1
Do While Cells(Z, 1)  ""
inh = Cells(Z, 1)
pfad = ThisWorkbook.Path
Workbooks.Add template:=pfad & "\Udo_Vorlage.xltm"
Range("A3:A7").Value = inh
' Application.DisplayAlerts = False
ActiveWorkbook.SaveAs Filename:=pfad & "\" & inh & ".xlsm", _
FileFormat:=xlOpenXMLWorkbookMacroEnabled
ActiveWorkbook.Close
' Application.DisplayAlerts = True
' Windows("Udo_Vorlage_Bearbeiten.xlsm").Activate
' ich denke, er aktiviert automatisch, wenn die andere geschlossen wird...
Z = Z + 1
Loop
Z = Z - 1
End Sub
Ich bin hier davon ausgegangen, daß auch unter dem Inhalt von inh gespeichert werden soll.
Muß abspülen.
Ciao,
Michael

Anzeige
AW: Daten übertragen
21.05.2015 09:46:06
Udo
Hallo Michael,
vielen Dank für deine Hilfe. Es hat so funktioniert wie ich es mir vorgestellt habe :-)
Beste Grüße
Udo

freut mich, danke für die Rückmeldung owT
21.05.2015 13:00:17
Michael

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige