Daten übertragen

Bild

Betrifft: Daten übertragen
von: Udo
Geschrieben am: 20.05.2015 08:58:52

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

Bild

Betrifft: AW: Daten übertragen
von: Michael
Geschrieben am: 20.05.2015 14:38:00
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

Bild

Betrifft: AW: Daten übertragen
von: Udo
Geschrieben am: 20.05.2015 15:43:48
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

Bild

Betrifft: AW: Daten übertragen
von: Michael
Geschrieben am: 20.05.2015 18:34:38
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

Bild

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

Bild

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


 Bild

Beiträge aus den Excel-Beispielen zum Thema "Daten übertragen"