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

Andere ungeöffnete Datei mit VBA ansprechen

Andere ungeöffnete Datei mit VBA ansprechen
02.11.2017 11:38:06
Florian
Hallo zusammen,
Ich möchte die Zelleninhalte verschiedener Exceldateien in einer Hauptexcel zusammenfassen.
Jede menge in einem "file" ist einer pos zugeordnet.
Im Besagter Hauptexcel möchte ich oben alle "file" im Ordner nebeinander aufgelistet haben und darunter die Werte passend zu den Positionen die in der Hauptexcel in der Spalte ganz links aufgereiht sind.
Der Code funktioniert jedoch nur, wenn die "file" geöffnet sind sonst gibt VBA die fehlermeldung: Index außerhalb des gültigen Bereichs aus.
Kann mit jemand einen Eleganten und Schnellen Lösungsvorschlag geben ohne alle Files öffnen zu müssen?
Code:

Sub DatenEinlesen()
Dim Dateiname As String, i As Integer
Dim pos As String, menge As Integer
Dim a As Integer
Dim such As Integer
Dim zeile As Integer
Range("AN2:XFD1413") = ""
Dateiname = Dir$("C:\Users\Name\Desktop\Neuer Ordner\*file*")
Do While Dateiname  ""
Range("AN9").Offset(0, i) = Dateiname
For a = 36 To 55
pos = Workbooks(Dateiname).Worksheets("Sheet1").Cells(a, 2)
menge = Workbooks(Dateiname).Worksheets("Sheet1").Cells(a, 23)
Workbooks("Hauptexcel.xlsm").Activate
If Not pos = "" Then
For such = 10 To 1413
If Cells(such, 3).Value = pos Then
zeile = Cells(such, 3).Row
Range("AN9").Offset(zeile - 9, i) = menge
End If
Next such
End If
Next a
i = i + 2
Dateiname = Dir$()
Loop
End Sub

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Andere ungeöffnete Datei mit VBA ansprechen
02.11.2017 16:52:38
Hajo_Zi
trage eine Formel ein.

Ich gebe keinen Dank für eine Rückmeldung, da ich durch solche Beiträge nicht meine Beitragszahl erhöhen muss.
Also ich schreibe keine Beiträge mit dem Betreff "Gerne u. Danke für die Rückmeldung. o.w.T."
Rückmeldung ist ja in der Heutigen Zeit nicht üblich und die wenigen die eine Rückmeldung geben, mögen mir das verzeihen, das kein Danke für eine Rückmeldung kommt.
Beiträge von Werner, Luc, robert und folgende lese ich nicht.
AW: Andere ungeöffnete Datei mit VBA ansprechen
03.11.2017 12:15:11
Florian
Hallo,
danke für die Rasche Antwort.
Welche Formel kann alle Files in einem Ordner abfragen?
Anzeige
AW: Andere ungeöffnete Datei mit VBA ansprechen
03.11.2017 15:40:58
Hajo_Zi
ich würde mal vermuten
Range("AN9").Offset(zeile - 9, i).Formula = _
"C:\Users\Name\Desktop\Neuer Ordner\[" & Dateiname & "]Sheet1!" & Cells(a, 23).Address
für POS musst Du auch eine Formel in die eine Zelle eintragen.
Keine Ahnung ob Evalute da auch helfen würde.
Gruß Hajo
AW: Andere ungeöffnete Datei mit VBA ansprechen
03.11.2017 16:23:36
mmat
Hallo,
es gibt keinen Weg, irgendetwas aus einer Datei zu lesen, ohne sie irgendwie zu öffnen.
Am einfachsten geht's wohl mit deinem Makro, wenn zwei Zeilen ergänzt werden. Ich hab jeweils eine vorhandene Zeile wiederholt und dann eine neue dazugeschrieben (Schreibfehler möglich ...)
Range("AN9").Offset(0, i) = Dateiname 'diese Zeile hast du schon
workbooks.open ("C:\Users\Name\Desktop\Neuer Ordner\"+Dateiname)  ' eine neue Zeile
workbooks("Dateiname").Close false 'noch eine neue Zeile
Dateiname = Dir$() 'die Zeile gibt's auch schon

Anzeige
AW: Andere ungeöffnete Datei mit VBA ansprechen
06.11.2017 13:22:40
Florian
Hallo,
Danke hat mir sehr geholfen.
Habe jetzt nach ein paar Versuche die Lösung für das Problem gefunden.
Ich habe die Dateien als Objekte gespeichert und Aktiviert wenn ich sie brauche.
Außerdem darf man in der zweiten neuen Zeile von dir keine Gänsefüße machen.
Jedoch habe ich jetzt ein neues Problem es kommt jetzt beim automatisierten Öffnen der Files die Benachrichtigung zum Aktualisieren der Daten die in den "Files" verlinkt sind.
Kann man das irgendwie Automatisieren?
Richtiger Code:
Sub DatenEinlesen()
Dim Dateiname As Variant, i As Integer
Dim pos As String, menge As Integer
Dim a As Integer
Dim such As Integer
Dim zeile As Integer
Dim FirstBook As Object
Dim SecondBook As Object
'Geöffnete Datei als FirstB
Set FirstBook = ActiveWorkbook
'Alles im Zielbereich löschen
Range("AN2:XFD1413") = ""
'Erstes file im Ordner auswählen
Dateiname = Dir$("C:\Users\Name\Desktop\Neuer Ordner\*file*" & ".xlsx")
'Schleife solange es files im Ordner gibt
Do While Dateiname  ""
'Dateiname in die oberste Zeile schreiben
Range("AN9").Offset(0, i) = Dateiname
' Öffnet die Datei "Dateiname"
Workbooks.Open ("C:\Users\Name\Desktop\Neuer Ordner\" + Dateiname)
'Definieren des Files als SecondBook
Set SecondBook = ActiveWorkbook
'Bereich in dem die Positionen Stehen auslesen
For a = 36 To 55
pos = Workbooks(Dateiname).Worksheets("Vorlage_FAB").Cells(a, 2)
menge = Workbooks(Dateiname).Worksheets("Vorlage_FAB").Cells(a, 23)
If Not pos = "" Then
'Aktivieren der Hauptexcel
FirstBook.Activate
'Gleiche Position in der Hauptdatei suchen
For such = 10 To 1413
If Cells(such, 3).Value = pos Then
'Zeile Auslesen und in eine Variable schreiben
zeile = Cells(such, 3).Row
'Menge in die richtige Zeile schreiben
Range("AN9").Offset(zeile - 9, i) = menge
End If
Next such
End If
' Aktivieren des Files
SecondBook.Activate
Next a
'Spalte in der, der Dateiname steht um eins erhöhen
i = i + 1
Workbooks(Dateiname).Close False
'Nächste Datei auswählen
Dateiname = Dir$()
Loop
End Sub

Anzeige
AW: Andere ungeöffnete Datei mit VBA ansprechen
06.11.2017 13:28:10
Daniel
HI
schau dir mal in der Hilfe den WorkBook.Open-Befehl genauer an.
da gibt's neben dem Dateinamen noch weitere Parameter mit denen du angeben kannst, wie die Datei zu öffnen ist.
In deinem Fall wäre das wahrscheinlich der Parameter: UpdateLinks
wenn du hier eine Angabe machst, sollte keine Rückfrage mehr kommen.
(UpdateLinks:=True bzw UpdateLinks:=False, je nachdem ob aktualisert werden soll oder nicht)
Gruß Daniel

45 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige