rubylissy
Goto Top

Excel: Wert aus mehreren Datein suchen und zugehörige Werte ausgeben

Hallo zusammen,
ich habe schon mehrere ähnliche Beiträge gefunden und Codes ausprobiert, aber noch nicht die richtige und funktionierende Lösung gefunden.
Ich befürchte mein VAB-Wissen ist da sehr fundamental und reicht nicht aus....

Ich möchte in Excel 2010 eine Suchmaske erstellen, die mir die Information über "Kiste" und "Position" herausgibt.
Diese Infos sind in mehreren Dateien verteilt, jeweils aber in diesem Format und immer mit gleichem Tabellenblatt-Titel.

Kiste Position Name
1 1 A
1 2 B
1 3 C
1 4 D
1 5 E
2 6 F
2 7 G
2 8 H
2 9 I
2 10 J

Die Suchmaske soll dann die Suche nach mehreren Namen ermöglichen.
Das sollte so aussehen:


SUCHE
F welche Kiste /welche Position
B welche Kiste /welche Position
H welche Kiste /welche Position

Wäre toll, wenn das ohne Input-Box funktioniert, da ich meiste Listen von 10-50 Namen habe.


Danke im Voraus

Viele Grüße
Jessi

Content-Key: 334930

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

Ausgedruckt am: 29.03.2024 um 15:03 Uhr

Mitglied: 132895
132895 12.04.2017 um 13:21:34 Uhr
Goto Top
Mitglied: holli.zimmi
holli.zimmi 12.04.2017 um 14:29:21 Uhr
Goto Top
Hi,

woran hapert es genau?

Gruß

Holli
Mitglied: 132895
132895 12.04.2017 aktualisiert um 14:38:27 Uhr
Goto Top
Zitat von @holli.zimmi:
woran hapert es genau?
Vermutlich an der Zeit oder der Lesebereitschaft.
Mitglied: RubyLissy
RubyLissy 13.04.2017 um 08:19:36 Uhr
Goto Top
Es scheitert, wie beschrieben, an meinem Wissen.
Leider bin ich keine Entwicklerin, beschäftige mich gern privat damit und nutze das bisschen Verständnis von Quellcodes für meine Arbeit, um Prozess zu optimieren.
Anscheinend habe ich mir da zu viel vorgenommen und buche mir erstmal nen VBA-Kurs....

Also vergesst es einfach.
Mitglied: RubyLissy
RubyLissy 13.04.2017 um 10:35:55 Uhr
Goto Top
oder an Hilfbereitschaft...
Mitglied: 132895
132895 13.04.2017 aktualisiert um 11:15:20 Uhr
Goto Top
Tja wenn man sich noch nicht mal die Mühe macht es so zu beschreiben das es jeder unmissverständlich versteht dann könnte man drüber nachdenken, aber so sieht das halt nach Faulheit aus... Schau dir die Formatierung deiner Frage an, wer soll da irgendwie draus schließen wie die Dateien aussehen etc. wo und wie gesucht werden soll.
Das Forum bietet dir genügend Möglichkeiten es vernünftig darzustellen inkl. Bild , Tabellenformatierung &Co!! Das es besser geht sieht man an genügend anderen Fragestellern die es besser machen. Am Feedback siehst du das sich keiner die Mühe machen will alles erst erfragen zu müssen. Ein Mindestmaß an Mühe sollte man schon erwarten können wenn man hier "kostenlose" Hilfe erwartet!
Mitglied: RubyLissy
RubyLissy 13.04.2017 um 11:46:32 Uhr
Goto Top
Schade, dass es so aussieht, dass ich mir keine Mühe machen wolle.
Das war nicht meine Absicht.
Mit dieser Antwort von dir kann ich auf jeden Fall mehr anfangen.

Wenn also die Bereitschaft da ist, mir doch noch etwas zu helfen, würde ich mir natürlich nochmal Mühe geben das Problem mit Beispielen genauer zu beschreiben.
Mitglied: RubyLissy
RubyLissy 13.04.2017 um 11:58:08 Uhr
Goto Top
So sehen meine Listen aus:

stammliste

Die enthalten bis zu 20 Kisten und je 64 Positionen.
Das Ganze gibt es in mehreren Dateien.

Das Durchsuchen der Dateien hatte ich mit einem solchen Code versucht

Set oMe = ThisWorkbook.Worksheets("Tabelle1") 'Zieltabelle (in der gerade geöffneten Datei)  

iZeile = 1 'ab dieser Zeile Ergebnisse in die Zieltabelle eintragen  


iSpalte = 2



Const sDateiPfad As String ="Ordner" 'Pfad für zu durchsuchende Excel-Dateien; mit Backslash am Ende  

So hätte ich gern die Ausgabe

stammliste ausgabe
Mitglied: colinardo
Lösung colinardo 13.04.2017, aktualisiert am 08.11.2022 um 09:55:53 Uhr
Goto Top
Servus Jessi,
hab es dir hier in ein ZIP mit Beispieldaten gepackt, damit es keine Missverständnisse mit den Positionen deiner Daten gibt:
search_in_sheets_334930.zip
(Kommentare findest du für die Zeilen im Code)

Hier noch der Code aus dem Demo-Sheet.
Sub SearchInSheets()
    Dim strPath As String, ws As Worksheet, cFile As String, rngSearch As Range, rngSource As Range, intFoundCount As Integer
    Application.DisplayAlerts = False
    Application.ScreenUpdating = False
    'Pfad in dem die Dateien liegen (Default ist hier der Pfad in dem diese Datei liegt)  
    strPath = ThisWorkbook.Path
    'Alle *.xlsx Dateien suchen  
    cFile = Dir(strPath & "\*.xlsx")  
    With ActiveSheet
        'Suchbegriff Range ermitteln  
        Set rngSource = .Range("A2:A" & .Cells(Rows.Count, "A").End(xlUp).Row)  
        ' Lösche vorhergehende Suchergebnisse  
        rngSource.Offset(0, 1).Resize(, 2).ClearContents
        'Jede *.xlsx Datei durchsuchen  
        Do While cFile <> ""  
            'Datei öffnen und erstes Sheet referenzieren  
            Set ws = GetObject(strPath & "\" & cFile).Sheets(1)  
            ' Definiere belegten Suchbereich Spalte C  
            Set rngSearch = ws.Range("C2:C" & ws.Cells(Rows.Count, "C").End(xlUp).Row)  
            ' Suche im aktuellen Sheet alle ungefundenen Suchbegriffe  
            For Each cell In rngSource
                If cell.Offset(0, 1).Value = "" Then  
                    ' Suche starten  
                    Set f = rngSearch.Find(cell.Value, LookIn:=xlValues, LookAt:=xlWhole)
                    ' War Suche erfolgreich setze die Informationen neben den Suchbegriff  
                    If Not f Is Nothing Then
                        cell.Offset(0, 1).Resize(1, 2).Value = f.Offset(0, -2).Resize(1, 2).Value
                        intFoundCount = intFoundCount + 1
                    End If
                End If
            Next
            'Datei wieder schließen  
            ws.Parent.Close False
            ' Alle Suchbegriffe wurden gefunden => beende Schleife  
            If intSourceCount = rngSource.Rows.Count Then Exit Do
            'nächste Datei holen  
            cFile = Dir
        Loop
    End With
    Application.DisplayAlerts = True
    Application.ScreenUpdating = True
    ' Fertig  
    MsgBox "Suche beendet", vbInformation  
End Sub

Grüße Uwe
Mitglied: RubyLissy
RubyLissy 13.04.2017 um 21:26:32 Uhr
Goto Top
Wow, vielen Dank dafür.
Werde es dann nach Ostern erst ausprobieren können und mich nochmal melden.
Mitglied: RubyLissy
RubyLissy 27.04.2017 um 08:10:39 Uhr
Goto Top
Funktioniert!
MEGA!

Vielen Dank