Clever-Excel-Forum

Normale Version: Erweiterte Suchfunktion
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
Hallo in die Runde, 

ich habe folgendes Problem. 
Ich möchte über die Suchfunktion zwei Excel-Datein gleichzeitig durchsuchen, z.B. über Nachnamen (Spalte C) oder Geburtsdatum (Spalte H).  

Jede Excel-Datei hat verschiedene Sheets, aber mit dem gleichen Aufbau.

Mir ist bewusst, dass ich ein Makro schreiben muss, weiß aber nicht wie. 

Kann mir da einer weiterhelfen? 

LG
MK-184
Hi

Deine Ausführungen sind sehr allgemein formuliert.  Wie sind den deine VBA Kenntnisse? Je wenige umso deutlicher solltest du uns deine Datei beschreiben oder besser noch zeigen.

Gruß Elex
Hola,

verlinkst du bitte deine Fragen in den verschiedenen Foren gegenseitig?
Danke.

Gruß,
steve1da
Hi,

benutze den Makrorekorder:
  1. Starten
  2. nötige Schritte durchführen
  3. Beenden
  4. Code hier posten
Dann können die Helfer mit Dir den Code bereinigen und verallgemeinern.
Hallöchen,

ich denke, auch mit einem Makro musst Du die Dateien nacheinander durchsuchen Sad
Hallöchen,

sorry für die verspätete Antwort.

Anbei habe ich beispielhaft mal eine Excel-Tabelle erstellt.
Diese Datei wird für des Ereignis (unterscheidet sich im Datum) erstellt. Jeder Reiter ist gleich aufgebaut.

Ich möchte nun Datei AV_10_19 öffnen und z.B. mit der Tastenkombination "strg+m" eine Suchfunktion aktivieren, die gleichzeitig die Datei "AV_04_19" im Hintergrund öffnet und auch durchsucht.
Als Suchfaktoren werden Nachnamen benutzt, es sei denn, es ist ein häufiger Nachname wie Müller, da wird soll über Geburtsdatum gesucht werden.

Die Datei liegen wie folgt ab:

D:\Data\XXX\Desktop\AV\AV_10_2019\AV_10_2019.xlsx
D:\Data\XXX\Desktop\AV\AV_04_2019\AV_04_2019.xlsx

Ich hoffe, ich konnte es jetzt ein wenig verständlicher darstellen.

LG
MK-184

PS: Meine VBA Kenntnisse gehen gleich gegen null....
(13.03.2019, 12:54)steve1da schrieb: [ -> ]Hola,

verlinkst du bitte deine Fragen in den verschiedenen Foren gegenseitig?
Danke.

Gruß,
steve1da

Hallo,

Unbefriedigte Fragen zu verlinken erscheint mir genauso sinnvoll wie halbe Filme auf YouTube hochzuladen.
Verlinkt doch besser befriedigende Antworten.
Und: vielleicht wäre die Einführung eines "Langfrist Dankeschön's", welches man frühestens nach 3 Monaten als OP geben kann, eine gute Sache.

Viele Grüße,
Bernd P
Hi
 
Suchvorgaben sind so weit gut beschrieben.
Leider machst du keine Ausführungen was du dir als Ergebnis erwünscht, beziehungsweise wo es aufgeführt werden soll.
 
Hier mal ein erster Entwurf.
[attachment=23162]

Gruß Elex
Hi. 

Ich würde mir gerne gleich die Zeilen anzeigen lassen (wie bei der normalen Suchfunktion). 

MfG 
MK-184
Hi

Zitat:Ich würde mir gerne gleich die Zeilen anzeigen lassen (wie bei der normalen Suchfunktion).

Ersetze vorhandenen Code mal durch diesen und es sollten erstmal alle Treffer angezeigt werden.
Code:
Public Sub Suche()
Dim i As Long, j As Long, Anzahl As Long, SD As Long
Dim SN As String, firstAddress As String, DateiNamen As String, strPfad As String
Dim c As Range

 strPfad = Range("B3").Value2 & "\"  'Dateipfad
 SN = Range("B12").Value2  'gesuchter Name
 SD = Range("B13").Value2  'gesuchte Geb.Datum
 
 For j = 1 To Range("A5").Value2  'schleife alle Dateiennamen
   DateiNamen = Range("B3").Offset(j).Value2
   On Error Resume Next
   Workbooks.Open strPfad & DateiNamen
   If Err.Number = 1004 Then
     MsgBox Err.Description    'Datei Pfad oder Name falsch
   Else
     For i = 1 To Sheets.Count    'schleife alle Blätter in der Datei
         Sheets(i).Select
         With Sheets(i).Columns("C")
         Set c = .Find(SN, LookIn:=xlValues, LookAt:=xlWhole)
          If Not c Is Nothing Then
             firstAddress = c.Address
             Do
               If SD = 0 Then
                  c.Activate
                  MsgBox "weiter"
               Else
                  If c.Offset(, 3).Value2 = SD Then
                     c.Activate
                     MsgBox "weiter"
                  End If
               End If
               Set c = .FindNext(c)
             Loop While Not c Is Nothing And c.Address <> firstAddress
          End If
         End With
     Next i
     ActiveWorkbook.Close
   End If
 Next j

On Error GoTo 0
End Sub

Entspricht das so weit deinen Vorstellungen?
Wie soll es dann weiter gehen? Welche Optionen soll es bei einem Fund geben?

Gruß Elex
Seiten: 1 2