Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1768to1772
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 Mappe abrufen

Daten aus geschlossener Mappe abrufen
08.07.2020 09:27:24
Eisi
https://www.herber.de/bbs/user/138846.xlsm
Hallo zusammen;
Ich möchte aus der geschlossenen Mappe "Daten.xlsx" die Daten aus dem Bereich A1:B bis zur letzten gefüllten Zelle in die Arbeitsmappe "1_Arbeitsmappe mit ..." einlesen. Der Code steht in der Arbeitsmappe als Modul1.
Bei diesem Code liest er aber nur den Inhalt von Zelle A1:B1, mehr nicht.
Ich hatte mir schon mal einen Code zusammen gestrickt, der den Bereich geliefert hat, aber 3 Zeilen darunter hat der Code die Zellen mit Nullen gefüllt.
Wo liegt der Fehler?
Herzlichen Dank für die Unterstützung.
LG Eisi :-)

12
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Daten aus geschlossener Mappe abrufen
08.07.2020 09:37:55
Oberschlumpf
Hi,
diese Zeile...
Set bereich = Range("A1:B" & Cells(Rows.Count, "A").End(xlUp).Row)

...bedeutet "übersetzt"...
Set bereich = Range("A1:B" & letzte, benutze Zeile in Spalte A)

...bedeutet auf deine Bsp-Datei bezogen...
Set bereich = Range("A1:B1").Row)

...da die letzte, benutzte Zeile in Spalte A = 1 ist.
Hilfts?
Ciao
Thorsten
AW: Daten aus geschlossener Mappe abrufen
08.07.2020 11:37:24
Eisi
Hallo Thorsten,
danke für Deine Info, Code läuft.
GLG Eisi :-)
AW: Daten aus geschlossener Mappe abrufen
08.07.2020 09:43:03
Martin
Hallo Eisi,
die folgende Zeile
Set bereich = Range("A1:B" & Cells(Rows.Count, "A").End(xlUp).Row)
bezieht sich auf deine aktive geöffnete Arbeitsmappe. Da ab der zweiten Zeile in Spalte A keine Daten enthalten sind, wird Zeile 1 als letzte Zeile mit enthaltenenen Daten ermittelt.
Schreibe einen Wert in Zelle A20 und schon wird der Bereich A1:B20 ermitteln.
Viele Grüße
Martin
Anzeige
AW: Daten aus geschlossener Mappe abrufen
08.07.2020 10:18:26
Eisi
Hallo Martin,
vielen Dank, habe ich verstanden.
Mein Ziel ist es natürlich die Daten aus der Mappe "Daten" die geschlossen ist auszulesen und in die Arbeitsmappe zu übertragen.
In der Mappe "Daten" soll der Code aus der Arbeitsmappe die Daten von A1 bis zur letzten Zelle mit Inhalt in meine Arbeitsmappe übertragen.
Wie muss der Code lauten, wenn er in der geschlossenen Mappe "Daten.xlsx" suchen soll?
An der Stelle hänge ich ;-)
AW: Daten aus geschlossener Mappe abrufen
08.07.2020 10:30:48
Daniel
Hi
VBA selbst kann nicht auf geschlossene Mappen zugreifen.
das können nur Formeln innerhalb einer Tabelle.
dh du müsstest, um die Anzahl der benutzen Zeilen zu ermitteln, in eine Zelle die Formel schreiben:
=Anzahl2('U:\04_Excel\_Beispieldateien\Geschlossene Mappe\Testordner ET\[Daten.xlsx]Tabelle1'!A:A)
(vorausgesetzt, die Liste hat in Spalte A keine Leerzellen zwischen drin, sonst wird's komplizierter)
man kann das allerings auch in VBA direkt über einen kleinen Umweg machen.
hierzu erstellt man die Formel in englischer Schreibweise (CountA anstelle von Anzahl2) und lässt sie dann über den Befehl ExecuteExcel4Macro(Formel) oder den Befehl Evaluate(Formel) berechnen.
Wie das genau geht, kannst du ja in der Funktion GetValue nachlesen, die holt sich die Daten aus der geschlossenen Datei auf genau diesem Weg
Gruß Daniel
Anzeige
AW: Daten aus geschlossener Mappe abrufen
08.07.2020 10:12:49
Daniel
Hi
naja, die Anzahl der zu übertragenden Zeilen musst du doch in der Quelldatei ermitteln und nicht in der Zieldatei, in der du sie eintragen willst.
Dazu müsstest du die Datei aber erst öffnen....
am einfachsten geht das Datenübertragen, wenn man die Quelldatei öffnet.
wenn man das Schreibgeschützt macht, gibt's auch keine Probleme.
Sub Test()
Dim wb As Workbook
Dim pfad As String, datei As String, blatt As String
pfad = "U:\04_Excel\_Beispieldateien\Geschlossene Mappe\Testordner ET"
datei = "Daten.xlsx"
blatt = "Tabelle1"
Application.ScreenUpdating = False
Set wb = Workbooks.Open(pfad & "\" & datei, ReadOnly:=True, Updatelinks:=false)
wb.Sheets(blatt).Cells(1, 1).UsedRange.Resize(, 2).Copy
ThisWorkbook.Sheets(1).Cells(1, 1).PasteSpecial xlPasteValues
wb.Close False
End Sub
Gruß Daniel
Anzeige
AW: Daten aus geschlossener Mappe abrufen
08.07.2020 10:26:32
Eisi
Hallo Daniel,
vielen Dank für die Hilfe.
An dieser Stelle kommt aber eine Fehlermeldung "Laufzeitfehler 438: Objekt unterstützt diese Eigenschaft oder Methode nicht": wb.Sheets(blatt).Cells(1, 1).UsedRange.Resize(, 2).Copy
AW: Daten aus geschlossener Mappe abrufen
08.07.2020 10:30:39
Werner
Hallo,
hier noch meine Version, ohne UsedRange und Resize. Der Code ist so für dich wohl auch leichter zu verstehen.
Option Explicit
Sub Bereich_auslesen()
Dim pfad As String, datei As String
Dim wb As Workbook, ws As Worksheet
Application.ScreenUpdating = False
pfad = "U:\04_Excel\_Beispieldateien\Geschlossene Mappe\Testordner ET\"
datei = "Daten.xlsx"
Set wb = Workbooks.Open(pfad & datei)
Set ws = wb.Worksheets("Tabelle1")
With ws
.Range("A1:B" & .Cells(.Rows.Count, "A").End(xlUp).Row).Copy _
ThisWorkbook.Worksheets("Tabelle1").Range("A1")
End With
wb.Close False
Set wb = Nothing: Set ws = Nothing
End Sub
Gruß Werner
Anzeige
AW: Daten aus geschlossener Mappe abrufen
08.07.2020 11:01:27
Eisi
Hallo Werner,
herzlichen Dank, mit Deinem Code komme ich am besten zurecht.
GLG Eisi :-)
Hallo Daniel,
herzlichen Dank, auch Dein Code funktioniert jetzt einwandfrei.
GLG Eisi :-)
Gerne u. Danke für die Rückmeldung. o.w.T.
08.07.2020 11:13:45
Werner
AW: Daten aus geschlossener Mappe abrufen
08.07.2020 10:34:18
Daniel
Hi
sorry, hatte den Bereich erst mit CurrentRegion ermittelt und dann auf Usedrange umgestellt, weil du ja vielleicht Leerzeilen zwischen drin hättest haben können.
mit Usedrange so:
wb.Sheets(blatt).UsedRange.Resize(, 2).Copy
mit CurrentRegion so:
wb.Sheets(blatt).Cells(1, 1).CurrentRegion.Resize(, 2).Copy
wie gesagt, CurrentRegion liest dir die Daten nur bis zu ersten durchgehenden Leerzeile aus, bei UsedRange bekommst du immer alle Zeilen mit Inhalt, auch wenn Leerzeilen dazwischen sind.
Gruß Daniel
Anzeige
AW: Daten aus geschlossener Mappe abrufen
08.07.2020 11:05:30
Eisi
Hallo Daniel,
herzlichen Dank, danke für Deine Erklärungen, hilft mir sehr, der Code funktioniert.
GLG Eisi :-)

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige