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

VBA Daten aus geschlossener Datei

VBA Daten aus geschlossener Datei
09.07.2013 11:38:03
Raphael
Hallo zusammen,
ist es möglich mittels VBA einen ganzen Range aus einer geschlossenen Datei auszulesen (kopieren) und in die aktuell geöffnete einzulesen (einfügen)?
Die Dateien haben immer den selben Namen und sind auch immer am selben Ort gespeichert.
Momentan greife ich mittels Excelformel auf den Inhalt zu, ich denke aber das es mit VBA wesentlich schneller gehen sollte, da doch immer um die 15000 Zeilen mit 10-15 Spalten ausgelesen werden müssen.
Besten Dank für Eure Hilfe
Gruess
Raphael

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

Betreff
Datum
Anwender
Anzeige
AW: VBA Daten aus geschlossener Datei
09.07.2013 11:40:23
Hajo_Zi
Hallo Raphael,
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

Anzeige
WOW schnell
09.07.2013 11:47:34
Raphael
Danke Hajo,
werde das heute Abend direkt austesten, bin gespannt wie sich das auf die Performance meiner Dateien auswirkt.
Gruess
Raphael

AW: WOW schnell
11.07.2013 22:06:07
Raphael
Hallo Hajo,
falls du den Beitrag noch liest habe ich noch eine kleine Anmerkung welche du in den Code von Thomas Ramel einfügen kannst.
Wenn man als Text formatierte Zahlen mit dieser Funktion einfügt werden diese in eine normale Zahl umgewandelt, man muss bei Thomas Funktion die .value = .value weglassen, dann wird sozusagen 1 zu 1 importiert.
Gruess
Raphael

AW: WOW schnell
12.07.2013 10:05:07
Hajo_Zi
Hallo Raphael,
Danke für den Tipp. Ich setze die Funktion nicht ein.
Gruß Hajo

Anzeige
AW: WOW schnell
12.07.2013 19:15:08
Hajo_Zi
Hallo Raphael,
dann steht aber eine Formel in der Zelle.
Gruß Hajo

308 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige