collatus
Goto Top

Excel Dateien durchsuchen und mehrere Werte in neue Excel Datei auslesen

Hallo zusammen,

im Forum bin ich schon auf einen guten Ansatz gestoßen der mir schon sehr weiter Hilft aber eben noch nicht vollständig ist ;)

Hier einmal der Beitrag von Bastla [
Excel Dateien durchsuchen und Werte in neue Excel Datei auslesen hier]

Beschreibung der zu durchsuchenden Excel-Datei:
Es sind ein ganzer Schwung an Excel-Tabellen mit einer Auswertung von einer Maschine die wie auf einem DIN-A4 Blatt aufgebaut sind. Aus dieser Tabelle brauche ich nun 10-15 werte, bei einigen dieser Werte ist die Zelle immer die gleiche, es sind aber auch welche dabei bei denen der Wert um eine Zeile verschoben ist (es steht also etwas in z.b. A1 oder A2 aber nicht in beiden, dies kommt in einer Zeile vor mit 3 auszulesenden Werten)

Die neue Excel-Datei:
Es soll am ende also eine Liste entstehen bei denen ich die Werte Übersichtlich in einer Tabelle habe und zur not Filtern kann.
-ein Hyperlink sodass ich mit einem "Klick" die Ursprungsdatei aufrufen kann

Die Dateien die Excel durchsuchen soll (optional):
Es gibt einen Ordner in diesem Ordner sind weitere Ordner mit Monat und Jahr (Januar 2016, Februar 2016, usw.) und in diesen sind die Excel Dateien sortiert.
In meiner ausgelesenen Excel-Tabelle müsste also auch der Name des Ordners stehen sodas ich nachvollziehen kann in welchen Monat,Jahr diese Werte stammen.

Ich hoffe ich konnte mein Problem und die Situation hilfreich übermitteln ;)

Ich hoffe Ihr könnt mir weiter helfen

Lieben Gruß

Content-Key: 299238

Url: https://administrator.de/contentid/299238

Printed on: April 25, 2024 at 22:04 o'clock

Mitglied: 114757
114757 Mar 16, 2016 updated at 08:16:04 (UTC)
Goto Top
Moin,
und nach was und in welcher Spalte der Sheets suchst du ?

Gruß jodel32

p.s. das hier ist schon fast fertig für dich, nur minimale Anpassungen für deine Variante nötig.
Excel Makro, VBA soll Pfad auslesen Ordner inkl. Unterordner die vorliegenden Excel Dateien öffnen und 2 bestimmt Zellen in eine neue Excel untereinander schreiben
Member: Collatus
Collatus Mar 16, 2016 updated at 08:32:37 (UTC)
Goto Top
Die zu durchsuchenden Dateien(Tabellen) enthalten Zahlen oder Buchstaben.

Zu durchsuchen sind:

H10;H11;AP11;P24; ( L25 oder L26; BA25 oder BA26; CJ25 oder CJ26 oder CK25 oder CK26);CA10 + Dateiname + Hyperlink
und vielleicht kommen noch ein oder zwei hinzu!

Ich hoffe deine Frage habe ich richtig interpretiert ...
Mitglied: 114757
114757 Mar 16, 2016 updated at 08:35:24 (UTC)
Goto Top
Zitat von @Collatus:
Zu durchsuchen sind:

H10;H11;AP11;P24; ( L25 oder L26; BA25 oder BA26; CJ25 oder CJ26 oder CK25 oder CK26);CA10 + Dateiname + Hyperlink
????
Und was wird in den Zellen gesucht und was soll dann in die neue Datei übernommen werden, nur die Zelle wo etwas gefunden wurde oder auch Zellen neben an etc. pp ?

Ich hoffe deine Frage habe ich richtig interpretiert ...
mach doch einfach ein Bild hier rein. Dann ist es unmissverständlich. Danke.
Member: Collatus
Collatus Mar 16, 2016 updated at 09:02:29 (UTC)
Goto Top
So sieht jede Datei aus ...

Die werte die ich brauche stehen fast immer in der gleichen Zelle, bis auf :

L25 oder L26
BA25 oder BA26
CJ25 oder CJ26 oder CK25 oder CK26

sprich es steht was drin oder sie ist leer. (in der was steht die brauch in dann auch)
excel-bild
Mitglied: 114757
114757 Mar 16, 2016 updated at 13:44:38 (UTC)
Goto Top
Dim fso As Object
Sub ImportData()
    Dim col As New Collection, file As Variant, wb As Workbook, rngDest as Range, strSearch as String
    'Ordner der die Dateien enthält  
    Const FOLDER = "C:\MeineDateien"  
    strSearch = InputBox("Suchbegriff eingeben")  
    'Filesystemobject  
    Set fso = CreateObject("Scripting.FileSystemObject")  
    'alle Excel-Dateien rekursiv listen  
    getAllFiles fso.GetFolder(FOLDER), True, Array("xlsx", "xls"), col  
    'Screenupdates und eventuelle Dialoge für Batchbetrieb unterdrücken  
    Application.DisplayAlerts = False
    Application.ScreenUpdating = False
    
    With Sheets(1)
        'nächste freie Zelle in Spalte A ermitteln  
        Set rngDest = .Cells(Rows.Count, "A").End(xlUp).Offset(1, 0)  
        'Für jede Excel-Datei  
        For Each file In col
            'Workbook öffnen  
            Set wb = Workbooks.Open(file)
            'Suche im Sheet starten  
            Set f = wb.Sheets(1).Range("H10,H11,AP11,P24,L25,L26,BA25,BA26,CJ25,CJ26,CK25,CK26,CA10").Find(strSearch,SearchIn:=xlValues)  
            'Wenn der Wert gedunden wurde  
            if not f is Nothing then
                'schreibe den gefundenen Wert und den Dateinamen in das Zielsheet inkl. Hyperlink  
                rngDest.Resize(1,2).Value = Array(f.Value,file)
                wb.Sheets(1).Hyperlinks.Add rngDest.Offset(0,1),rngDest.Offset(0,1).Value
                'nächste freie Zelle setzen  
                Set rngDest = rngDest.Offset(1, 0)
            End if 
            'WB schließen  
            wb.Close False
        Next
    End With
    'Screenupdates und Dialoge wieder einschalten  
    Application.ScreenUpdating = True
    Application.DisplayAlerts = True
End Sub

Sub getAllFiles(ByVal fldr As Object, boolRecursion As Boolean, arrFileExtensions As Variant, ByRef col As Collection)
    For Each file In fldr.Files
        For i = 0 To UBound(arrFileExtensions)
            If LCase(arrFileExtensions(i)) = LCase(fso.GetExtensionName(file.Path)) Then
                col.Add file.Path
                Exit For
            End If
        Next
    Next
    If boolRecursion Then
        For Each subFolder In fldr.SubFolders
            getAllFiles subFolder, True, arrFileExtensions, col
        Next
    End If
End Sub
Member: Collatus
Collatus Mar 16, 2016 updated at 09:28:02 (UTC)
Goto Top
Ich glaube jetzt bin ich raus ;)

also: Ich habe Ordner sortiert nach Monat&Jahr ( Januar 2016 ect.) in diesen Ordnern sind ein paar Excel-Tabellen.
Diese Exceltabellen brauche ich mit den wichtigen Informationen (die zellen die ich genannt habe) auf einer neuen Tabelle. Also im Prinzip nichts anderes als was Bastla schon gemacht hat. Zusätzlich muss ich den Hyperlink der Datei haben (ist ja auch schon eingebaut) und ich muss wissen aus welche Datei diese stammen (Monat und Jahr).
Sprich am ende habe ich eine lange lange liste mit den einzelnen wichtigen Informationen aus der Zelle untereinander in einer Tabelle.


Oh man ist echt nicht so ganz einfach zu beschreiben was man braucht ...

Tut mir leid jodel32 ;(
Mitglied: 114757
114757 Mar 16, 2016 updated at 09:54:21 (UTC)
Goto Top
Genau das tut der obige angepasste Code von @colinardo... Ist ja jede Zeile kommentiert....