Werte kopieren in neue Datei

Liebe Excelianer,

ich möchte noch mal eine Frage aufwerfen, die ich ich vor einiger Zeit schon mal gestellt habe. Carsten Mehnert hat mir einen Lösungsansatz angeboten, der aber nicht so ganz hinhaut, weil immer Leerzeilen auftauchen, die ich „händisch“ bearbeiten muss.

Ich habe eine Quelldatei, die mit der Zieldatei „Datei1“ verküpft ist.
In dieser Zieldatei „Datei1“ steht in A1 „Heute()“ als Verknüpfung, in A3 und in A4 stehen Werte, die sich ständig verändern, wenn ich „aktualisiere“.

Ich wünsche mir jetzt ein Makro, dass in „Datei2“ die Werte aus „Datei1“ (A1, A3 und A4) als Werte in A1, A3 und A4 kopiert und einfügt , das nächste Mal in B1, B3 ud B4, dann in C1, C3 und C4 usw.

Ich möchte so eine Datenreihe erstellen, die ich als Diagramm abbilden kann.

A1, A3 und A4 sind nur Beispiele. Es gibt noch etliche andere Zellen, die ich so behandeln will. Ich hoffe, dass euer Makro so aufgebaut ist, dass ich es auf die anderen Zellen erweitern kann.

Ich hoffe, ich habe mich verständlich machen können.

Freundliche Grüße

Jorge

Moin Jorge,

Ich habe eine Quelldatei, die mit der Zieldatei „Datei1“
verküpft ist.
In dieser Zieldatei „Datei1“ steht in A1 „Heute()“ als
Verknüpfung, in A3 und in A4 stehen Werte, die sich ständig
verändern, wenn ich „aktualisiere“.
Ich wünsche mir jetzt ein Makro, dass in „Datei2“ die Werte
aus „Datei1“ (A1, A3 und A4) als Werte in A1, A3 und A4
kopiert und einfügt , das nächste Mal in B1, B3 ud B4, dann in
C1, C3 und C4 usw.

also ist Datei1 die Quelldatei und Datei2 die Zieldatei.

Der Makrocode steht nachstehend, er gehört in ein Standardmodul. Codezeilen die du ggfs. anpassen mußt sind gekennzeichnet.

Ich möchte so eine Datenreihe erstellen, die ich als Diagramm
abbilden kann.

Schau mal im aktuellen Brett nach der Beitragsfolge mit meinem Unterbetreff „dynamische Datenquelle für Diagramm“

Gruß
Reinhard

Option Explicit
'
Sub Kopier()
On Error GoTo Ende
Application.ScreenUpdating = False
Dim wkb1 As Workbook, wkb2 As Workbook, wks1 As Worksheet, wks2 As Worksheet
Dim Spa2 As Long, wkb As Workbook, Vorh As Boolean, Z As Integer, Zellen
Dim Pfad2 As String, Datei2 As String, Blatt1 As String, Blatt2 As String
Zellen = Array("A1", "A3", "A4") ' Anpassen
Blatt1 = "Tabelle1" ' Anpassen
Pfad2 = CurDir & "\" ' Anpassen
Datei2 = "kwDatei2.xls" ' Anpassen
Blatt2 = "Tabelle1" ' Anpassen
Set wkb1 = ThisWorkbook
For Each wkb In Workbooks
 If wkb.Name = Datei2 Then
 Vorh = True
 Exit For
 End If
Next wkb
If Vorh = False Then Workbooks.Open Filename:=Pfad2 & Datei2
Set wkb2 = Workbooks(Datei2)
Set wks2 = wkb2.Worksheets(Blatt2)
With wkb1.Worksheets(Blatt1)
 Spa2 = wks2.Cells(1, Columns.Count).End(xlToLeft).Column + 1
 If Spa2 \> wks2.Columns.Count Or wks2.Cells(1, Columns.Count) "" Then
 MsgBox "Die Wanne ist voll"
 GoTo Ende:
 ElseIf Spa2 = 2 And wks2.Range("A1") = "" Then Spa2 = 1
 End If
 For Z = 0 To UBound(Zellen)
 .Range(Zellen(Z)).Copy Destination:=wks2.Range(Zellen(Z)).Offset(0, Spa2 - 1)
 Next Z
End With
Ende:
Application.ScreenUpdating = True
If Err.Number 0 Then MsgBox Err.Number & " " & Err.Description
End Sub

Salü Reinhard,

bei mir zu Hause klappt dein Ding einwandfrei, in den nächsten Tagen versuche ich, es auf der Arbeit anzupassen. Bei Fragen würde ich mich noch mal melden.

Gib zu, dass nur Aliens so seltsame Makros schreiben können…:smile:)

Danke mit Sternchen!!!

Gruß

Jorge