Thema Datum  Von Nutzer Rating
Antwort
05.01.2016 07:03:28 Andre
NotSolved
06.01.2016 15:27:50 Gast28524
NotSolved
06.01.2016 15:40:24 Andre
NotSolved
06.01.2016 16:20:53 Gast25935
NotSolved
07.01.2016 07:56:43 Andre
NotSolved
06.01.2016 22:17:39 Gast69812
NotSolved
07.01.2016 05:51:07 Gast10186
NotSolved
07.01.2016 07:45:58 Andre
NotSolved
07.01.2016 08:06:27 Andre
NotSolved
09.01.2016 19:10:40 Gast62795
NotSolved
11.01.2016 08:20:07 Andre
NotSolved
11.01.2016 10:22:55 Gast7783
NotSolved
11.01.2016 12:36:32 Andre
NotSolved
11.01.2016 12:39:35 Andre
NotSolved
11.01.2016 15:56:45 Gast87431
NotSolved
11.01.2016 16:14:03 Andre
NotSolved
11.01.2016 16:30:15 Gast67223
NotSolved
12.01.2016 08:21:54 Gast77619
NotSolved
11.01.2016 16:34:42 Gast89738
NotSolved
12.01.2016 08:27:34 Andre
NotSolved
12.01.2016 12:41:22 Gast14356
NotSolved
12.01.2016 14:12:59 Andre
NotSolved
12.01.2016 14:17:04 Andre
NotSolved
12.01.2016 15:46:33 Gast57141
NotSolved
13.01.2016 07:56:18 Andre
NotSolved
13.01.2016 08:09:51 Andre
NotSolved
13.01.2016 08:32:16 Gast86894
NotSolved
13.01.2016 08:42:11 Andre
NotSolved
13.01.2016 19:20:12 Gast86704
NotSolved
14.01.2016 08:32:14 Andre
NotSolved
14.01.2016 10:10:53 Gast34177
NotSolved
14.01.2016 10:28:38 Andre
NotSolved
14.01.2016 10:45:46 Gast25298
NotSolved
14.01.2016 10:58:07 Andre
NotSolved
14.01.2016 11:33:50 Gast21502
NotSolved
14.01.2016 12:18:11 Andre
NotSolved
14.01.2016 15:49:42 Gast23760
NotSolved
14.01.2016 16:09:09 Andre
****
NotSolved
14.01.2016 18:55:41 Gast81853
NotSolved
15.01.2016 08:18:04 Andre
NotSolved
15.01.2016 19:30:59 Gast45694
NotSolved
18.01.2016 08:09:01 Andre
NotSolved
18.01.2016 08:12:08 Andre
NotSolved
18.01.2016 18:02:48 Gast82440
NotSolved
19.01.2016 08:40:26 Andre
NotSolved
19.01.2016 13:36:07 Gast75130
NotSolved
19.01.2016 14:04:24 Andre
NotSolved
19.01.2016 18:19:20 Gast65228
NotSolved
19.01.2016 18:20:55 Gast29977
NotSolved
20.01.2016 07:21:35 Andre
NotSolved
20.01.2016 11:42:16 aufran
NotSolved
20.01.2016 11:54:57 Andre
NotSolved
20.01.2016 12:03:47 Gast44577
NotSolved
20.01.2016 15:58:00 aufran
NotSolved
21.01.2016 21:41:23 aufran
NotSolved
21.01.2016 21:52:00 Gast14641
NotSolved
20.01.2016 12:01:05 Gast18965
NotSolved
20.01.2016 12:07:06 Gast343
NotSolved
20.01.2016 12:18:06 Andre
NotSolved
20.01.2016 12:28:46 Gast95544
Solved
20.01.2016 20:02:43 Gast15375
NotSolved
21.01.2016 07:52:14 Andre
NotSolved
21.01.2016 10:46:39 Gast54269
NotSolved
21.01.2016 10:59:39 Gast19460
NotSolved
21.01.2016 15:04:13 Andre
NotSolved
21.01.2016 15:09:07 Andre
NotSolved
21.01.2016 15:55:44 Gast30371
NotSolved
25.01.2016 07:53:22 Andre
NotSolved
25.01.2016 08:35:01 Andre
NotSolved
25.01.2016 08:35:07 Andre
NotSolved
22.01.2016 13:51:05 Gast11423
NotSolved
22.01.2016 22:45:16 aufran
NotSolved
25.01.2016 08:08:43 Andre
NotSolved
25.01.2016 11:18:33 aufran
NotSolved
25.01.2016 12:07:03 Andre
NotSolved
25.01.2016 08:06:16 Andre
NotSolved
25.01.2016 19:38:52 Gast92881
NotSolved
25.01.2016 19:40:23 Gast31903
NotSolved
26.01.2016 07:26:40 Andre
NotSolved
26.01.2016 09:25:34 Gast31028
NotSolved
26.01.2016 10:15:47 Andre
NotSolved
26.01.2016 11:48:57 Gast10723
NotSolved
26.01.2016 13:23:31 Andre
NotSolved
27.01.2016 14:23:48 Gast20611
NotSolved
27.01.2016 14:48:05 Andre
NotSolved
27.01.2016 14:56:24 Andre
NotSolved
27.01.2016 15:30:27 Gast76603
NotSolved
27.01.2016 15:30:28 Gast42470
NotSolved
27.01.2016 15:57:14 Andre
NotSolved
27.01.2016 16:21:33 Andre
NotSolved
27.01.2016 20:54:35 Gast808
NotSolved
28.01.2016 07:25:57 Andre
NotSolved
Rot Durchsuchen von bestimmten Exceldateien mit Hilfe von einem Makro Exce
28.01.2016 16:20:47 Gast66068
Solved
29.01.2016 12:28:40 Andre
NotSolved
29.01.2016 17:35:37 Gast3880
NotSolved
30.01.2016 10:06:13 aufran
NotSolved

Ansicht des Beitrags:
Von:
Gast66068
Datum:
28.01.2016 16:20:47
Views:
915
Rating: Antwort:
 Nein
Thema:
Durchsuchen von bestimmten Exceldateien mit Hilfe von einem Makro Exce

Hallo!

Also hier die Version mit dem Auswählen der Stadt über eine Userform. Du müsstest noch die Schreibweise der Orte in der normalen SUb überprüfen - sonst schlägt der Pfad fehl. Zur Nutzung einfach eine Userform ohne irgendwas einfügen. Beim Userform Code dann den Code unten eintragen. Der andere Code ist wieder der der normalen Funktion. Da hatten wir ja in der Function die Option, dass du einstellen kannst, ab wann die Bezeichner im Pfad überprüft werden sollen. Da du  jetzt schon ziemlich weit im Pfad bist, wilst du es so lassen? Derzeit geht er noch 2 Schritte alle Ordner durch und prüft ab dann den Ordnernamen auf die Bezeichner. Vorschlag wäre, bei ausgewähltem Ort gleich prüfen (dann kommt ja nur noch einer der Begriffe mit vor) oder bei keinem Ort, noch eine Stufe warten. Könnte man beim Aufruf der Funktion einbauen.

Also jetzt der Code. Der hier ist für die Userform. Dort einfach reinpacken. UNd wie gesagt die Userform einfach Blanko anlegen.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
Private WithEvents oListe As MSForms.ListBox
 
Option Explicit
 
 
Private Sub UserForm_Initialize()
 
Dim neuliste
Dim schrift
 
schrift = 10
 
Me.Caption = "Auswahl Stadt"
Me.Height = schrift * 13
Me.Width = 10 * schrift
 
Set neuliste = Me.Controls.Add("Forms.Listbox.1", , True)
With neuliste
    .Left = 0
    .Top = 0
    .Width = 10 * schrift - 1
    .Height = schrift * 13
    .AddItem "alle Städte"
    .AddItem "BIELEFELD"
    .AddItem "BOCHUM"
    .AddItem "DORTMUND"
    .AddItem "MÜNSTER"
    .AddItem "OLPE"
    .AddItem "PADERBORN"
    .AddItem "SOEST"
    .TextAlign = 2
    .Font.Size = schrift
End With
Set oListe = neuliste
End Sub
 
Sub oListe_click()
Me.Tag = oListe.ListIndex
UserForm1.Hide
End Sub
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
   If CloseMode = vbFormControlMenu Then
      MsgBox "Bitte einen Wert aus der Liste auswählen!", , "Falsches Schließen"
      Cancel = True
   End If
End Sub

Und das ist dann die normale Funktion. Hier wie gesagt mal überlegen, ob du noch die Tiefe ändern willst. VG

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
Dim dateien()
  
Option Explicit
      
Sub DateienLesen2()
        
Dim DateiName As String
Dim quelle As String
Dim i As Long
Dim j As Long
Dim Dateialt As String
Dim zeilealt As Long
Dim Namekurz As String
Dim Blatt As Object
Dim gefunden As Boolean
Dim suchwert As Variant
Dim suche As Variant
Dim ort
 
  
Application.ScreenUpdating = False
     
ort = Array("alle Städte", "BIELEFELD", "BOCHUM", "DORTMUND", "MÜNSTER", "OLPE", "PADERBORN", "SOEST")
     
Dateialt = ThisWorkbook.name
zeilealt = 1
ActiveSheet.Columns(1).ClearContents
  
suchwert = InputBox("Zu suchenden Wert eingeben!", "Suchtexteingabe")
    
If suchwert = "" Then
    MsgBox "Sie haben keinen Wert eingegeben oder Abbrechen angeklickt. Das Program wird beendet.", , "Abbruch Eingaben"
    End
End If
    
ReDim dateien(0)
dateien(0) = 0
          
quelle = "V:\0101\SCHULEN\0-FAHRT"
 
UserForm1.Show
 
If UserForm1.Tag > 0 Then quelle = quelle & "\" & ort(UserForm1.Tag)
Unload UserForm1
 
If Right(quelle, 1) = "\" Then quelle = Left(quelle, Len(quelle) - 1)
   
If Dir(quelle & "\") = "" Then
    MsgBox "Der Pfad wurde nicht gefunden!"
    End
End If
   
    Call txtsuchen2("1" & quelle)   'evtl. durch x ersetzen
    
If dateien(0) = 0 Then
MsgBox "Keine .txt Dateien gefunden!"
Else
'Daten auslesen
             
    For i = 1 To dateien(0)
    DateiName = dateien(i)
    Namekurz = Right(DateiName, InStr(1, StrReverse(DateiName), "\") - 1)
    gefunden = False
        
    'die Mappen aufmachen
    Workbooks.Open DateiName, Password:="ABC", ReadOnly:=True
         
    For Each Blatt In Worksheets
        suche = Application.WorksheetFunction.CountIf(ActiveSheet.UsedRange, suchwert & "*")
            
        If suche > 0 Then gefunden = True
            
    Next Blatt
            
    Workbooks(Dateialt).Activate
    Workbooks(Namekurz).Close savechanges:=False
        
    If gefunden = True Then
        ActiveSheet.Hyperlinks.Add anchor:=ActiveSheet.Cells(zeilealt, 1), Address:=DateiName, TextToDisplay:=Namekurz
        zeilealt = zeilealt + 2
    End If
    
    Next i
End If
             
End Sub
       
    
     
Function txtsuchen2(pfads As String)
Dim suche
Dim i As Long
Dim quelle As String
Dim oOrdner
Dim oDateien
Dim datsystem
Dim knoten
Dim datei
Dim ablage
Dim dname As String
Dim onam As String
Dim anfang
   
Set datsystem = CreateObject("Scripting.FileSystemObject")
quelle = pfads
   
anfang = Left(pfads, 1)
quelle = Right(pfads, Len(pfads) - 1)
   
ChDrive (Left(quelle & "\", 3))
ChDir (quelle)
Set knoten = datsystem.getfolder(quelle)
   
Set oDateien = knoten.Files
Set oOrdner = knoten.subFolders
   
For Each ablage In oOrdner
    onam = ablage.name
        If Left(onam, 1) <> "." Then
            If anfang <> "x" Then
            ' tiefe ab der der filter greift
                If anfang = 2 Then
                    Call txtsuchen2("x" & ablage.Path)
                Else
                    Call txtsuchen2((anfang + 1) & ablage.Path)
                End If
            Else
                If InStr(1, onam, "16", 1) > 0 Or InStr(1, onam, "Region", 1) > 0 Or InStr(1, onam, "Rahmenvertrag", 1) > 0 Or InStr(1, onam, "Abrechnung", 1) > 0 Then
                    If InStr(1, onam, "Änderung", 1) > 0 Or InStr(1, onam, "Fahrpl", 1) > 0 Or InStr(1, onam, "14", 1) > 0 Or InStr(1, onam, "13", 1) > 0 Or InStr(1, onam, "12", 1) > 0 Or InStr(1, onam, "11", 1) > 0 Or InStr(1, onam, "10", 1) > 0 Then
                    ' die Werete gefunden, da nichts machen
                    Else
                       Call txtsuchen2("x" & ablage.Path)
                    End If
                End If
            End If
        End If
Next ablage
   
If oOrdner.Count = 0 Then
For Each datei In oDateien
    dname = datei.name
        If Left(dname, 1) <> "." Then
               
            If Right(dname, 4) = ".xls" Then    'ggf. noch an xlsx anpassen etc. aber auch die Zahl dazu
                If (InStr(1, dname, "_Planung", 1) > 0 Or InStr(1, dname, "_planung", 1) > 0 Or InStr(1, dname, "_PLANUNG", 1) > 0) And InStr(1, dname, "2016", 1) > 0 Then
                dateien(0) = dateien(0) + 1
                ReDim Preserve dateien(dateien(0))
                dateien(dateien(0)) = datei.Path
                End If
            End If
        End If
Next datei
End If
  
Set datsystem = Nothing
Set knoten = Nothing
Set oDateien = Nothing
Set oOrdner = Nothing
   
Application.ScreenUpdating = True
    
End Function

 


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
05.01.2016 07:03:28 Andre
NotSolved
06.01.2016 15:27:50 Gast28524
NotSolved
06.01.2016 15:40:24 Andre
NotSolved
06.01.2016 16:20:53 Gast25935
NotSolved
07.01.2016 07:56:43 Andre
NotSolved
06.01.2016 22:17:39 Gast69812
NotSolved
07.01.2016 05:51:07 Gast10186
NotSolved
07.01.2016 07:45:58 Andre
NotSolved
07.01.2016 08:06:27 Andre
NotSolved
09.01.2016 19:10:40 Gast62795
NotSolved
11.01.2016 08:20:07 Andre
NotSolved
11.01.2016 10:22:55 Gast7783
NotSolved
11.01.2016 12:36:32 Andre
NotSolved
11.01.2016 12:39:35 Andre
NotSolved
11.01.2016 15:56:45 Gast87431
NotSolved
11.01.2016 16:14:03 Andre
NotSolved
11.01.2016 16:30:15 Gast67223
NotSolved
12.01.2016 08:21:54 Gast77619
NotSolved
11.01.2016 16:34:42 Gast89738
NotSolved
12.01.2016 08:27:34 Andre
NotSolved
12.01.2016 12:41:22 Gast14356
NotSolved
12.01.2016 14:12:59 Andre
NotSolved
12.01.2016 14:17:04 Andre
NotSolved
12.01.2016 15:46:33 Gast57141
NotSolved
13.01.2016 07:56:18 Andre
NotSolved
13.01.2016 08:09:51 Andre
NotSolved
13.01.2016 08:32:16 Gast86894
NotSolved
13.01.2016 08:42:11 Andre
NotSolved
13.01.2016 19:20:12 Gast86704
NotSolved
14.01.2016 08:32:14 Andre
NotSolved
14.01.2016 10:10:53 Gast34177
NotSolved
14.01.2016 10:28:38 Andre
NotSolved
14.01.2016 10:45:46 Gast25298
NotSolved
14.01.2016 10:58:07 Andre
NotSolved
14.01.2016 11:33:50 Gast21502
NotSolved
14.01.2016 12:18:11 Andre
NotSolved
14.01.2016 15:49:42 Gast23760
NotSolved
14.01.2016 16:09:09 Andre
****
NotSolved
14.01.2016 18:55:41 Gast81853
NotSolved
15.01.2016 08:18:04 Andre
NotSolved
15.01.2016 19:30:59 Gast45694
NotSolved
18.01.2016 08:09:01 Andre
NotSolved
18.01.2016 08:12:08 Andre
NotSolved
18.01.2016 18:02:48 Gast82440
NotSolved
19.01.2016 08:40:26 Andre
NotSolved
19.01.2016 13:36:07 Gast75130
NotSolved
19.01.2016 14:04:24 Andre
NotSolved
19.01.2016 18:19:20 Gast65228
NotSolved
19.01.2016 18:20:55 Gast29977
NotSolved
20.01.2016 07:21:35 Andre
NotSolved
20.01.2016 11:42:16 aufran
NotSolved
20.01.2016 11:54:57 Andre
NotSolved
20.01.2016 12:03:47 Gast44577
NotSolved
20.01.2016 15:58:00 aufran
NotSolved
21.01.2016 21:41:23 aufran
NotSolved
21.01.2016 21:52:00 Gast14641
NotSolved
20.01.2016 12:01:05 Gast18965
NotSolved
20.01.2016 12:07:06 Gast343
NotSolved
20.01.2016 12:18:06 Andre
NotSolved
20.01.2016 12:28:46 Gast95544
Solved
20.01.2016 20:02:43 Gast15375
NotSolved
21.01.2016 07:52:14 Andre
NotSolved
21.01.2016 10:46:39 Gast54269
NotSolved
21.01.2016 10:59:39 Gast19460
NotSolved
21.01.2016 15:04:13 Andre
NotSolved
21.01.2016 15:09:07 Andre
NotSolved
21.01.2016 15:55:44 Gast30371
NotSolved
25.01.2016 07:53:22 Andre
NotSolved
25.01.2016 08:35:01 Andre
NotSolved
25.01.2016 08:35:07 Andre
NotSolved
22.01.2016 13:51:05 Gast11423
NotSolved
22.01.2016 22:45:16 aufran
NotSolved
25.01.2016 08:08:43 Andre
NotSolved
25.01.2016 11:18:33 aufran
NotSolved
25.01.2016 12:07:03 Andre
NotSolved
25.01.2016 08:06:16 Andre
NotSolved
25.01.2016 19:38:52 Gast92881
NotSolved
25.01.2016 19:40:23 Gast31903
NotSolved
26.01.2016 07:26:40 Andre
NotSolved
26.01.2016 09:25:34 Gast31028
NotSolved
26.01.2016 10:15:47 Andre
NotSolved
26.01.2016 11:48:57 Gast10723
NotSolved
26.01.2016 13:23:31 Andre
NotSolved
27.01.2016 14:23:48 Gast20611
NotSolved
27.01.2016 14:48:05 Andre
NotSolved
27.01.2016 14:56:24 Andre
NotSolved
27.01.2016 15:30:27 Gast76603
NotSolved
27.01.2016 15:30:28 Gast42470
NotSolved
27.01.2016 15:57:14 Andre
NotSolved
27.01.2016 16:21:33 Andre
NotSolved
27.01.2016 20:54:35 Gast808
NotSolved
28.01.2016 07:25:57 Andre
NotSolved
Rot Durchsuchen von bestimmten Exceldateien mit Hilfe von einem Makro Exce
28.01.2016 16:20:47 Gast66068
Solved
29.01.2016 12:28:40 Andre
NotSolved
29.01.2016 17:35:37 Gast3880
NotSolved
30.01.2016 10:06:13 aufran
NotSolved