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

Daten aus geschlossener Datei übertragen

Daten aus geschlossener Datei übertragen
15.11.2021 13:21:34
Furash
Moin ich bräuchte mal eure Hilfe.
Ich selbst kenne mich jetzt nicht so gut mit VBA und Excel aus und habe gedacht ich könne mir ein bisschen was aus anderen Funktionen und Beispielen zusammenklauben. Leider funktioniert das ganze nicht so ganz.
Es soll im Prinzip die Daten aus einer geschlossen Datei von A1-N1000 übernehmen und in die Geöffnete Datei in das Arbeitsblatt Daten einfügen.
Nachdem das Makro 4 Minuten ausgeführt wurde (was auch viel zu Lange ist) kam zwar ein Eintrag in alle Zeilen, allerdings steht überall nur #Bezug drin.

Private Function GetValue(pfad, datei, blatt, zelle)
'** Daten aus geschlossener Arbeitsmappe auslesen
'*** Dimensionierung der Variablen
Dim arg As String
'Sicherstellen, dass das datei vorhanden ist
If Right(pfad, 1)  "\" Then pfad = pfad & "\"
If Dir(pfad & datei) = "" Then
GetValue = "datei Not Found"
Exit Function
End If
'** Das Argument erstellen
arg = "'" & pfad & "[" & datei & "]" & blatt & "'!" & Range(zelle).Range("A1").Address(, , xlR1C1)
'** Auslesen über Excel4Macro
GetValue = ExecuteExcel4Macro(arg)
End Function
Sub Bereich_auslesen()
'** Dimensionierung der Variablen
Dim pfad As String
Dim datei As String
Dim blatt As String
Dim bereich As Range
Dim zelle As Range
'** Angaben zur auszulesenden Zelle
pfad = "O:\HOTEL\02. REZEPTION\Kreditkartenkontrolle\"
datei = "Kreditkarten des Tages.xls"
blatt = "Sheet1"
Set bereich = Range("A1:N1000")
'** Bereich auslesen
For Each zelle In bereich
'** Zellen umwandeln
zelle = zelle.Address(False, False)
'** Eintragen in Bereich
Sheets("Daten").Cells(zelle.Row, zelle.Column).Value = GetValue(pfad, datei, blatt, zelle)
Next zelle
End Sub
Ich hoffe es ist verständlich erklärt und mir kann weitergeholfen werden.
Vielen Dank für eure Hilfe.

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

Betreff
Datum
Anwender
Anzeige
AW: Daten aus geschlossener Datei übertragen
15.11.2021 13:50:35
Nepumuk
Hallo Furash,
mit der Methode öffnest du 14.000 DDE-Kanäle. Das kann dauern. Mach es so, dauert nur ein par Sekunden:

Public Sub Bereich_auslesen()
Dim objWorkbook As Workbook
Set objWorkbook = GetObject(PathName:="O:\HOTEL\02. REZEPTION\Kreditkartenkontrolle\Kreditkarten des Tages.xls")
Call objWorkbook.Worksheets("Sheet1").Range("A1:N1000").Copy(Destinamtion:=Worksheets("Daten").Cells(1, 1))
Call objWorkbook.Close(SaveChanges:=False)
Set objWorkbook = Nothing
End Sub
Gruß
Nepumuk
AW: Daten aus geschlossener Datei übertragen
15.11.2021 14:05:09
Furash
Super vielen Dank. Damit hat es einwandfrei funktioniert..... nachdem ich aus dem "Destinmation" das "m" rausgenommen habe. :)
Anzeige
AW: Daten aus geschlossener Datei übertragen
15.11.2021 14:03:26
Rudi
Hallo,
warum schreibst du nicht einfach die Formel in Zellen und wandelst sie in Werte um?

Sub aaa()
Dim pfad As String, blatt As String, datei As String
Dim bereich As Range
pfad = "c:\test\"
blatt = "tabelle1"
datei = "mappe2.xlsx"
Set bereich = Sheets("Daten").Range("A1:N1000")
With bereich
.FormulaR1C1 = "='" & pfad & "[" & datei & "]" & blatt & "'!RC"
.Value = .Value
End With
End Sub
Gruß
Rudi
AW: Daten aus geschlossener Datei übertragen
15.11.2021 14:05:41
Furash
Nepumuk hat mir schon super weitergeholfen und es funktioniert einwandfrei. Danke trotzdem.
@Rudi: die Idee find ich gut. Danke. owT
16.11.2021 08:34:12
Yal

302 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige