06.11.2018, 17:27
(Dieser Beitrag wurde zuletzt bearbeitet: 06.11.2018, 18:00 von WillWissen.
Bearbeitungsgrund: Formatierung & Codetags
)
Grüezi,
Leider scheitere ich wieder an meinen mangelhaften Makro Kenntnissen und hoffe das vielleicht einer von euch mir die Augen öffnen könnte.
Ich möchte per VBA ganze Zeilen aus mehrehren Dateien in eine Datei Kopieren.
Beispiel:
Aus - Mappe1 / D5 – W5 - > in – Mappe Test / E8 – X8
Aus - Mappe2 / B3 – U3 - > in – Mappe Test / E9 – X9
Aus - Mappe2 / A8 – T8 - > in – Mappe Test / E10 – X10
Ich habe auch Formeln gefunden und anpassen können, nur nicht soweit, dass der Code alles so wie erwartet umsetzt.
Diese Formel funktioniert soweit, dass in eine andere Zelle Kopiert wird als ausgelesen.
Allerdings nicht Zeilen weise. Und um jede einzelne Zelle im Code zu beschreiben wären
es einfach zu viele Daten.
Und mit dieser Formel werden die Zellen Zeilen weise (D5:L5) kopiert.
Allerdings gelinkt es mir nicht, die Werte in eine Anderen Zeilen Reihe zu kopieren (D5:L5 > C8:K8)
und auch nicht das mehre Dateien angesprochen werden.
Hat jemand vielleicht einen Tipp?
Ich habe irgendwie ein Brett vorm Kopf :20:
Danke
Tyler
Leider scheitere ich wieder an meinen mangelhaften Makro Kenntnissen und hoffe das vielleicht einer von euch mir die Augen öffnen könnte.
Ich möchte per VBA ganze Zeilen aus mehrehren Dateien in eine Datei Kopieren.
Beispiel:
Aus - Mappe1 / D5 – W5 - > in – Mappe Test / E8 – X8
Aus - Mappe2 / B3 – U3 - > in – Mappe Test / E9 – X9
Aus - Mappe2 / A8 – T8 - > in – Mappe Test / E10 – X10
Ich habe auch Formeln gefunden und anpassen können, nur nicht soweit, dass der Code alles so wie erwartet umsetzt.
Code:
Public Sub Worksheet_Activate()
Dim strPath As String, strFile As String
strPath = " C:\Ordner\Dateien "
strFile = "Mappe1.xlsx"
Worksheets(1).Range("A10").Value = GetValue(strPath, strFile, "Tabelle1", "A1")
Worksheets(1).Range("E2").Value = GetValue(strPath, strFile, "Tabelle3", "D5")
strPath = "C:\Ordner\Dateien"
strFile = "Mappe2.xlsx"
Worksheets(1).Range("C18").Value = GetValue(strPath, strFile, "Tabelle3", "D5")
End Sub
Private Function GetValue(ByVal path As String, ByVal file As String, ByVal sheet As String, ByVal ref As String) As String
Dim arg As String
arg = "'" & path & "\[" & file & "]" & sheet & "'!" & Range(ref).Address(, , xlR1C1)
GetValue = ExecuteExcel4Macro(arg)
End Function
Diese Formel funktioniert soweit, dass in eine andere Zelle Kopiert wird als ausgelesen.
Allerdings nicht Zeilen weise. Und um jede einzelne Zelle im Code zu beschreiben wären
es einfach zu viele Daten.
Code:
Public Sub CommandButton1_Click()
Dim Dateiname As String
Dim sPfad As String
Dim rngZelle As Range
Dateiname = "Mappe2.xlsx"
sPfad = " C:\Ordner\Dateien \"
For Each rngZelle In Range("D5:L5")
rngZelle = GetValue(sPfad, Dateiname, "Tabelle3", rngZelle.Address)
Next rngZelle
End Sub
Public Function GetValue(path$, file$, sheet$, range_ref$)
Dim arg As String
If Right(path, 1) <> "\" Then path = path & "\"
If Dir(path & file) <> "" Then
arg = "'" & path & "[" & file & "]" & sheet & "'!" & _
Range(range_ref).Range("A1").Address(, , xlR1C1)
GetValue = ExecuteExcel4Macro(arg)
End If
End Function
Und mit dieser Formel werden die Zellen Zeilen weise (D5:L5) kopiert.
Allerdings gelinkt es mir nicht, die Werte in eine Anderen Zeilen Reihe zu kopieren (D5:L5 > C8:K8)
und auch nicht das mehre Dateien angesprochen werden.
Hat jemand vielleicht einen Tipp?
Ich habe irgendwie ein Brett vorm Kopf :20:
Danke
Tyler