Erweiterte Suchfunktion
#1
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
Top
#2
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
Top
#3
Hola,

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

Gruß,
steve1da
Top
#4
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.
Top
#5
Hallöchen,

ich denke, auch mit einem Makro musst Du die Dateien nacheinander durchsuchen Sad
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Top
#6
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....


Angehängte Dateien
.xlsx   AV_10_2019.xlsx (Größe: 14,29 KB / Downloads: 1)
Top
#7
(13.03.2019, 13: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
Top
#8
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.

.xlsm   Suchmaske.xlsm (Größe: 19,22 KB / Downloads: 4)

Gruß Elex
Top
#9
Hi. 

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

MfG 
MK-184
Top
#10
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
Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste