Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1724to1728
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

Werte aus geschlossener Datei kopieren

Werte aus geschlossener Datei kopieren
03.12.2019 17:47:14
Falko
Hallo zusammen,
ich würde gerne Werte aus einer nicht-geöffneten Exceldatei kopieren und in eine geöffnete Datei einfügen. Darüber hinaus würde ich die Datei, aus der ich die Werte kopiere, definieren.
Folgendes habe ich mir ausgedacht:

Sub MergeData()
Set wbAc = Workbooks("Y:\x").Activate
Set wbFL = Workbooks("Y:\x").Activate
wbAc.Sheets("CF QTR").Select
wbAcRange("O2:TY2").Select
wbAc.Selection.Copy
wbFL.Sheets("Data Collection").Select
wbFL.Range("C2:TM2").Select
wbFL.Selection.Copy
End Sub

Leider funktioniert es jedoch nicht. Vielleicht könnt ihr mir sagen, wo mein Fehler liegt.
Tausend Dank und beste Grüße
Falko

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Werte aus geschlossener Datei kopieren
03.12.2019 17:53:55
Hajo_Zi
Hallo Falko,
aus geschlossener Datei auslesen.
Option Explicit
Public Function GetDataClosedWB(SourcePath As String, _
SourceFile As String, sourceSheet As String, _
SourceRange As String, TargetRange As Range) As Boolean
'Holt einen Bereich aus einer _geschlossenen_ Arbeitsmappe
'Nur in VBA zu verwenden; nicht aus einer Tabellenzelle heraus
'© t.ramel@mvps.org
' wird durch die HoleDaten aufgerufen
Dim strQuelle       As String
Dim Zeilen          As Long
Dim Spalten         As Byte
On Error GoTo InvalidInput
strQuelle = "'" & SourcePath & "[" & SourceFile & "]" & sourceSheet & "'!" & Range( _
SourceRange).Cells(1, 1).Address(0, 0)
Zeilen = Range(SourceRange).Rows.Count
Spalten = Range(SourceRange).Columns.Count
With TargetRange.Cells(1, 1).Resize(Zeilen, Spalten)
.Formula = "=IF(" & strQuelle & "="""",""""," & strQuelle & ")"
.Value = .Value
End With
GetDataClosedWB = True
Exit Function
InvalidInput:
MsgBox "Die Quelldatei oder der Quellbereich ist ungültig!", vbExclamation, "Get data from  _
closed Workbook"
GetDataClosedWB = False
End Function
Public Sub HoleDaten()
' Die Funktion arbeitet mit der obrigen GetDataClosedWB zusammen
Dim Pfad            As String
Dim Dateiname       As String
Dim Blatt           As String
Dim Bereich         As String
Dim Ziel            As Range
Pfad = "L:\Eigene Dateien\Hajo\Internet\Test\2009\"
Dateiname = "Beispiel Forum 30.xlsm" ' aus welcher Datei soll er holen?
Blatt = "Tabelle1"  ' von welcher Tabelle soll er holen?
Bereich = "A1:B9"   ' aus welchem Bereich soll er holen?
Set Ziel = ActiveSheet.Range("A1")  ' in welchen Bereich soll er kopieren? Genauer gesagt:  _
Bei welcher Zelle soll er anfangen, Datein reinzukopieren? Bsp: ActiveCell geht auch
If GetDataClosedWB(Pfad, Dateiname, Blatt, Bereich, Ziel) Then
MsgBox "Daten importiert"
End If
End Sub
'Public Sub HoleDaten()
'    ' Die Funktion arbeitet mit der obrigen GetDataClosedWB zusammen
'    Dim Pfad            As String
'    Dim Dateiname       As String
'    Dim Blatt           As String
'    Dim Bereich         As String
'    Dim Ziel            As Range
'    Dim Razelle As Range
'    Dim LoI As Long
'    Dim Loletzte As Long
'    Dim Loletzte2 As Long
'    Set Ziel = ActiveSheet.Cells(1, ActiveSheet.UsedRange.SpecialCells(xlCellTypeLastCell).Row  _
+ 1)
'    ' in welchen Bereich soll er kopieren? Genauer gesagt: _
'    Bei welcher Zelle soll er anfangen, Datein reinzukopieren? Bsp: ActiveCell geht auch
'    If Range("G1")  "" Then
'        Loletzte = IIf(IsEmpty(Cells(Rows.Count, 7)), Cells(Rows.Count, 7).End(xlUp).Row, Rows. _
Count)
'        For LoI = 1 To Loletzte
'            Pfad = Cells(LoI, 7)
'            Dateiname = "hayo.xlsm" ' aus welcher Datei soll er holen?
'            Blatt = Cells(LoI, 8)  ' von welcher Tabelle soll er holen?
'            Bereich = Cells(LoI, 9)  ' aus welchem Bereich soll er holen?
'            Set Ziel = ActiveSheet.Range("A1")  ' in welchen Bereich soll er kopieren? Genauer  _
gesagt: _
'            Bei welcher Zelle soll er anfangen, Datein reinzukopieren? Bsp: ActiveCell geht  _
auch
'            If GetDataClosedWB(Pfad, Dateiname, Blatt, Bereich, Ziel) Then
'                MsgBox "Daten importiert"
'            End If
'        Next LoI
'    End If
'End Sub

Anzeige
AW: Werte aus geschlossener Datei kopieren
04.12.2019 11:45:02
Falko
Hallo Hajo,
vielen Dank, das sieht nach viel Arbeit aus!
Folgendes habe ich nun versucht, leider funktioniert es nicht. Kannst Du mir vielleicht nochmal weiterhelfen?
Option Explicit
Public Function GetDataClosedWB(SourcePath As String, SourceFile As String, sourceSheet As  _
String, SourceRange As String, TargetRange As Range) As Boolean
Dim strQuelle       As String
Dim Zeilen          As Long
Dim Spalten         As Byte
On Error GoTo InvalidInput
strQuelle = "'" & SourcePath & "[" & SourceFile & "]" & sourceSheet & "'!" & Range( _
SourceRange).Cells(1, 1).Address(0, 0)
Zeilen = Range(SourceRange).Rows.Count
Spalten = Range(SourceRange).Columns.Count
With TargetRange.Cells(1, 1).Resize(Zeilen, Spalten)
.Formula = "=IF(" & strQuelle & "="""",""""," & strQuelle & ")"
.Value = .Value
End With
GetDataClosedWB = True
Exit Function
InvalidInput:
MsgBox "Die Quelldatei oder der Quellbereich ist ungültig!", vbExclamation, "Get data from  _
closed Workbook"
GetDataClosedWB = False
End Function
Public Sub MergeData()
Dim Pfad            As String
Dim Dateiname       As String
Dim Blatt           As String
Dim Bereich         As String
Dim Ziel            As Range
Pfad = "Y:\x\x\x\x\x\x\"
Dateiname = "x.xlsm"
Blatt = "CF QTR"
Bereich = "Range(O2:TY2)"
Set Ziel = ActiveSheet.Range("C2:TM2")
If GetDataClosedWB(Pfad, Dateiname, Blatt, Bereich, Ziel) Then
MsgBox "Daten importiert"
End If
End Sub
Beide Codes habe ich in ein Model gepackt. Ist das richtig?
Vielen Dank!!!
Falko
Anzeige
AW: Werte aus geschlossener Datei kopieren
04.12.2019 12:21:45
Falko
Hi,
ok, jetzt klappt es - vielen, vielen Dank.
Ich würde jedoch gerne zwei Bereiche aus der Zieldatei kopieren. Das habe ich versucht wie folgt zu lösen, es klappt nur leider nicht:
Public Sub HoleDaten()
Dim Pfad            As String
Dim Dateiname       As String
Dim Blatt           As String
Dim Bereich         As String
Dim Ziel            As Range
Dim Bereich2        As String
Dim Ziel2           As Range
Pfad = "Y:\x\x\\"
Dateiname = "x.xlsm"
Blatt = "CF QTR"
Bereich = "O2:GJ2"
Set Ziel = ActiveSheet.Range("C6:FX6")
Bereich2 = "O384:GJ384"
Set Ziel2 = ActiveSheet.Range("C7:FX7")
If GetDataClosedWB(Pfad, Dateiname, Blatt, Bereich, Ziel) Then
MsgBox "Daten importiert"
End If
End Sub
Woran könnte es liegen?
Tausend Dank
Falko
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige