Live-Forum - Die aktuellen Beiträge
Datum
Titel
29.03.2024 13:14:12
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1368to1372
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 Informationen aus anderen Dateien abrufen,

VBA Informationen aus anderen Dateien abrufen,
23.07.2014 09:56:21
Frederik
Hallo VBA-Cracks,
ich bin gerade am Verzweifeln. Ich habe eine Master-Datei erstellt, die mit bestimmten Inhalten befüllt wird, insgesamt werden hierbei monatlich 30 Dateien erstellt. Diese Dateien werden von jemand anderen bewertet und jede Zeile wird entsprechend markiert. Auf einem weiteren Excelsheet wird h parallel die Bewertung für einen Management-Bericht zusammengefasst. Das funktioniert auch alles super!
Nun möchte das Management eine zeitliche Entwicklung der Kurve sehen ich dachte hier eigentlich an ein Verknüpfung, die mir die Daten aus den älteren Berichten rüber kopiert. Den Pfad habe ich dynamisch in einer Zelle neu aufgebaut und über eine Verkettung zusammengeführt.
( ActiveWorkbook.Path, ActiveWorkbook.Name, ActiveWorkbook.ActiveSheet.Name)
='C:\Pfad\[Dateiname.xlsm']Tabelle!A1
Sobald ich den Pfad anklicke fragt er nach einer Dateiaktualisierung, wenn ich diese umgehe bekomme ich immer nur Bezugsfehler!
Und jetzt komme ich zu meiner eigentlichen Frage:
Wie kann ich Informationen aus einer Datei auslesen, der Pfad zu der Datei steht hierbei in der Zelle, da dynamisch
Schon mal vielen Dank im Voraus

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA Informationen aus anderen Dateien abrufen,
23.07.2014 11:33:08
Oberschlumpf
Hi Frederik
am einfachsten, Datei per VBA öffnen, gewünschte Zellwerte auslesen, Datei per VBA schließen
z Bsp so:
Sub sbOpen()
WorkBooks.Open(Range("ZelleMitPfad+Dateiname").Value
ThisWorkbook.Sheets("ZielTabelle").Range("ZielZelle").Value = _
Range("ZelleDieAusgelesenWerdenSoll").Value
ActiveWorkbook.Close False
End Sub
Für die Einträge zwischen den "" musst du natürlich die richtigen! Zellen eintragen.
Ich konnte das nicht, weil du sie nicht genannt hast.
Hilfts?
Ciao
Thorsten

AW: VBA Informationen aus anderen Dateien abrufen,
23.07.2014 15:30:06
Frederik
Hallo Thorsten,
Dein Hinweis hat mich auf jeden Fall schon mal weiter gebracht. Vielen Dank dafür!
Ich habe jetzt folgenden Code daraus gebastelt
Sub Test()
‘Auswahl Tabellenblatt
Worksheets("Übersicht").Activate
‘Auswahl Zelle mit Link
Workbooks.Open (Range("a8"))
‘Auswahl Tabellenblatt   in Datei , Datenbereich markieren und Kopieren
Worksheets("Kennzahlen").Activate
Range("a1:z35").Copy
‘Datei Schließen
ActiveWorkbook.Close False
‚Auswahl Tabellenblatt zum Einfügen
Worksheets("V1").Activate
Range("A1").Select
ActiveSheet.PasteSpecial Format:="Text", Link:=False, DisplayAsIcon:= _
False
End Sub
Jetzt habe ich nur noch zwei kleine Probleme:
1. Ich habe Verlinkungen zu anderen Dateien am Anfang wird immer nach einer Aktualisierung gefragt
2. Wenn ich die Daten so kopieren und die Datei erst schließe bekomme ich von Excel immer wieder die Frage Es befindet sich eine große Menge von Informationen in der Zwischenablage… Klicke Ja um später weiterzubearbeiten, nein zum löschen
Wie bekomme ich 1. So eingestellt, dass ich immer nein auswähle und wie bekomme ich 2. So eingestellt, dass ich immer Ja auswähle?
Wenn ich das mit dem Makrorekorder aufzeichne sind leider keine Aufzeichnungen vorhanden, da es ja nur Infofelder sind…
Viele Grüße
Frederik

Anzeige
AW: VBA Informationen aus anderen Dateien abrufen,
23.07.2014 16:27:15
Oberschlumpf
Hi Frederik
a) ich würde den Code so einsetzen:
(hab mal die Kommentarzeilen weggelassen)
Sub Test()
Workbooks.Open(Worksheets("Übersicht").Range("a8"))
Worksheets("Kennzahlen").Range("a1:z35").Copy
ThisWorkbook.Worksheets("V1").Range("A1").PasteSpecial Format:="Text", _
Link:=False,DisplayAsIcon:= False
ActiveWorkbook.Close False
End Sub

Also erst Datei öffnen, dann die eigtl Aufgaben erledigen, und erst dann wieder Datei schließen.
So find ich es irgdwie logischer, als Datei öffnen, kopieren, Datei schließen, einfügen.
Musste aber feststellen, dass auch mit deiner Code-Variante die PasteSpecial-Zeile mit Fehler reagiert.
Bei dir funktioniert der Code?
b) kann man die Aktualisierungs-Frage generell irgdwie ein- oder ausschalten.
Ich selbst weiß jetzt nicht genau wo, aber du als Excel-Profi wirst das bestimmt auch finden.
c) Werte, die in die Zwischenablage kopiert werden, bleiben meines Wissens so lange darin, bis entweder etwas anderes kopiert wird, oder der kopierte Teil wieder gelöscht wird, z Bsp durch zu frühes Schließen der Datei.
Ob + wie man diese Meldung/Abfrage immer mit "Ja" beantworten kann, weiß ich leider nicht.
Hilft denn etwas hiervon?
Ciao
Thorsten

Anzeige
AW: VBA Informationen aus anderen Dateien abrufen,
24.07.2014 08:01:37
Frederik
Hallo Thorsten,
vielen Dank für die schnelle Antwort.
Mein Code läuft bei mir sehr gut durch,
dafür habe ich Probleme mit Deiner Zeile
ThisWorkbook.Worksheets("V1").Range("A1").PasteSpecial Format:="Text", _
Link:=False,DisplayAsIcon:= False
Selbst wenn ich den Code auf
ThisWorkbook.Worksheets("V1").Range("A1").Paste
reduziere will Excel den Befehl nicht ausführen.
Zu b)generelles ausschalten funktioniert, im Sicherheitscenter... das kann ich aber per Makro nicht ausschalten…
Zu c) wenn der Code so läuft wie ich es will, dann würde ich die Daten nicht mehr benötigen, dann hätte sich das Problem in Luft aufgelöst…
Der Code läuft so auf jeden Fall bei mir und unseren Kollegen „reibungslos“

Sub Test99()
Workbooks.Open (Worksheets("Übersicht").Range("a8"))
Worksheets("Kennzahlen").Activate
Range("a1:z35").Copy
ActiveWorkbook.Close False
Worksheets("V1").Range("A1").Select
ActiveSheet.PasteSpecial Format:="Text", Link:=False, DisplayAsIcon:= _
False
End Sub
Sobald ich jedoch
ActiveWorkbook.Close False
Ans Ende stelle und die andere Zeile
ThisWorkbook.Worksheets("V1").Range("A1").Select
Nenne, dann kommt mal wieder mein Debugger ;(
Viele Grüße
Frederik
Anzeige

338 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige