Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1936to1940
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
[VBA] Order suchen und Dateiauswahl
24.07.2023 12:52:01
Christian
Moin moin,

ich habe hier so ein kleines Problem :)

Ich möchte durch Eingabe einer Auftragsnummer den entsprechenden Ordner inkl. Unterordner in einem Netzlaufwerk finden - wenn der Ordner gefunden wurde soll sich der Explorer / Dateiauswahl öffnen und ich wähle eine Datei in dem Ordner, nach Bestätigung soll der Pfad in eine TexBox geschrieben werden.

Ich habe es mit folgendem Code probiert:

'Dateiauswahl nach Ordnersuche via Auftragsnummer'
Private Sub CommandButton3_Click()

Dim suche As String
Dim Dateiname
strPfad = "Y:\Auftragsdokumentation"
suche = TextBox6.Value


If suche = "" Then
MsgBox "Keine Auftragsnummer eingegeben"

Else
Dateiname = Dir((strPfad & suche & "*"))
If Dateiname > "" Then

strPfad = Application.GetOpenFilename
If strPfad > False Then
TextBox14 = strPfad
Else
MsgBox "Keine Datei ausgewählt!"
End If
Else
MsgBox "Kein Auftrag gefunden"
End If
End If


End Sub


Was funktioniert ist das registriert wird wenn keine Auftragsnummer eingetragen wurde - allerdings wird nach Eingabe einer Auftragsnummer kein entsprechender Auftrag / Ordner gefunden und es öffnet sich auch kein Dateiexplorer. Die Auftragsnummer ist immer unterschiedlich und wird nur einmalig vergeben.

Ich hoffe ihr könnt mir weiterhelfen.
Grüße Christian

12
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: [VBA] Order suchen und Dateiauswahl
24.07.2023 13:33:11
Daniel
Hi

der folgende Code durchsucht den angegebenen Ordner und alle seine Unterordner nach einer Datei mit dem Suchbegriff:

Sub Nummernsuche()
Dim StartVerzeichnis As String
Dim Verzeichnisse
Dim V As Long
Dim Suche As String
Dim Datei As String

StartVerzeichnis = "Y:\Auftragsdokumentation"
Suche = Textbox6.Text

ReDim Verzeichnisse(0)
Verzeichnisse(0) = StartVerzeichnis

V = 0
Do Until V > UBound(Verzeichnisse)
Datei = Dir(Verzeichnisse(V) & "\*", vbDirectory)
Do Until Datei = ""
If Datei = "." Or Datei = ".." Then
'nix machen
ElseIf (GetAttr(Verzeichnisse(V) & "\" & Datei) And vbDirectory) = vbDirectory Then
ReDim Preserve Verzeichnisse(UBound(Verzeichnisse) + 1)
Verzeichnisse(UBound(Verzeichnisse)) = Verzeichnisse(V) & "\" & Datei
ElseIf Datei Like "*" & Suche & "*" Then
GoTo DateiGefunden
Else
End If
Datei = Dir
Loop
V = V + 1
Loop

MsgBox "kein Treffer für: " & Suche
Exit Sub

DateiGefunden:
ChDrive Left(verzeichnis(V), 1)
ChDir verzeichnis(V)
Datei = Application.GetOpenFilename
TextboxXXX.Text = Datei

End Sub


Gruß Daniel
Anzeige
AW: [VBA] Order suchen und Dateiauswahl
24.07.2023 14:08:53
Christian
Hi Daniel,

danke für die schnelle Rückmeldung.

Das sieht schon vielversprechend aus - allerdings wird der entprechende Ordner noch nicht gefunden, den ich mit der Auftragsnummer suche.
Wenn der Ordner gefunden wird, möchte ich die darin enthaltene Datei manuell auswählen und der Pfad zu der Datei wird in die Textbox.14 geschrieben - hintergrund ist das die Dateien in dem Auftragsordner unterschiedlich sind.

AW: [VBA] Order suchen und Dateiauswahl
24.07.2023 15:15:19
Daniel
HI
sorry, hatte ich falsch verstanden, ich dachte, die Nummer, nach der du suchst, befindet sich in einem Dateinamen und nicht in einem Ordnernamen.
aber das kann man umstellen:

Sub Nummernsuche()
Dim StartVerzeichnis As String
Dim Verzeichnisse
Dim V As Long
Dim Suche As String
Dim Datei As String

StartVerzeichnis = "Y:\Auftragsdokumentation"
Suche = Textbox6.Text

ReDim Verzeichnisse(0)
Verzeichnisse(0) = StartVerzeichnis

V = 0
Do Until V > UBound(Verzeichnisse)
Datei = Dir(Verzeichnisse(V) & "\*", vbDirectory)
Do Until Datei = ""
If Datei = "." Or Datei = ".." Then
'nix machen
ElseIf (GetAttr(Verzeichnisse(V) & "\" & Datei) And vbDirectory) = vbDirectory Then
If Datei Like "*" & Suche & "*" Then
GoTo DateiGefunden
else
ReDim Preserve Verzeichnisse(UBound(Verzeichnisse) + 1)
Verzeichnisse(UBound(Verzeichnisse)) = Verzeichnisse(V) & "\" & Datei
end if
Else
End If
Datei = Dir
Loop
V = V + 1
Loop

MsgBox "kein Treffer für: " & Suche
Exit Sub

DateiGefunden:
ChDrive Left(verzeichnis(V), 1)
ChDir verzeichnis(V)
Datei = Application.GetOpenFilename
TextboxXXX.Text = Datei

End Sub


Gruß Daniel
Anzeige
AW: [VBA] Order suchen und Dateiauswahl
25.07.2023 08:29:53
Christian
Moin Daniel,

das funktioniert schon echt gut - zwei Punkte hätte ich dazu noch:

- es wird, wenn der Auftrag gefunden wurde das Hauptverzeichnis in dem sich der Ordner befindet geöffnet - könnte man das auch so machen das direkt der Auftragsordner geöffnet wird ?.
- wenn die Aktion abgebrochen wird oder keine Datei gewählt wurde wird in die Textbox "FALSCH" geschrieben - kann hier auch eine MSGbox rein wie "MsgBox "Keine Datei ausgewählt!" ?.

Besten Dank

Grüße Christian.
AW: [VBA] Order suchen und Dateiauswahl
25.07.2023 09:09:14
Daniel
Hi
1. das sollte das ChDir und ChDrice erledigen. Wemns so nicht geht, weiß ich leider auch nicht weiter.

2. ja kannst du einbauen, das hattest du ja in deinem Makro doch schon drin, das kannst du über nehmen.

Gruß Daniel
Anzeige
AW: [VBA] Order suchen und Dateiauswahl
25.07.2023 13:36:15
Christian
Hi Daniel,
danke für die Rückmeldung.

Punkt 1 - muss ich noch weiter forschen, ich habe noch keine Anweisung/Lösung gefunden das er auch den gesuchten Ordner über ChDir öffnet.
- evtl. kennt noch jemand eine Lösung dafür.

Punkt 2 - habe ich eingebaut und funktioniert auch wie gewohnt.

Grüße Christian
AW: [VBA] Order suchen und Dateiauswahl
25.07.2023 20:29:59
Christian
Moin nochmal,

ich habe jetzt die Lösung für Punkt 1 gefunden - ich habe den Code um folgendes ergänzt:

DateiGefunden:
ChDrive Left(Verzeichnisse(V), 1)
ChDir (Verzeichnisse(V) & "\" & Datei)


Datei = Application.GetOpenFilename
If Datei > False Then
TextBox14.Text = Datei
Else
MsgBox "Keine Datei ausgewählt!"
End If


Besten Dank für den Support.

Grüße Christian
Anzeige
AW: [VBA] Order suchen und Dateiauswahl
27.07.2023 09:22:44
Christian
Hallo nochmal,

ich habe zu diesem Thema noch ein kleines Problem gefunden.

Ich habe den code um "Sonderpfad" erweitert.
DateiGefunden:
ChDrive Left(Verzeichnisse(V), 1)
ChDir (Verzeichnisse(V) & "\" & Datei & SonderPfad)


Sonderpfad bezieht sich auf ein weiteres Verzeichnis im gesuchten Ordner. Jetzt kann es sein das in älteren Auftragsordnern das gesuchte Verzeichnis nicht existiert.
Wenn dieser Fall eintritt, soll eine Meldung erscheinen wie "Zielverzeichniss nicht gefunden - wechsel in Auftragsordner" und es soll nur der Auftragsorder geöffnet werden.
Ich weiß nicht wie ich diese "Schleife" jetzt hinbekomme - kann hier jemand helfen ?
DateiGefunden:
ChDrive Left(Verzeichnisse(V), 1)
ChDir (Verzeichnisse(V) & "\" & Datei & SonderPfad)


strPfad = Application.GetOpenFilename
If strPfad > False Then
TextBox7 = strPfad

End If


Besten Dank im Voraus
Grüße Christian
Anzeige
AW: [VBA] Order suchen und Dateiauswahl
29.07.2023 03:53:18
Oberschlumpf
Hi Christian,

änder...

ChDir (Verzeichnisse(V) & "\" & Datei & SonderPfad)

...um in...

If Dir(Verzeichnisse(V) & "\" & Datei & SonderPfad) > "" Then
ChDir (Verzeichnisse(V) & "\" & Datei & SonderPfad)
Else
ChDir (Verzeichnisse(V) & "\" & Datei
End If

müsste helfen, oder?

Ciao
Thorsten
AW: [VBA] Order suchen und Dateiauswahl
30.07.2023 12:54:06
Christian
Hi Thorsten,

das war die Lösung - manchmal kann es so einfach sein :)

Besten Dank für den Support.

Grüße Christian
Anzeige
AW: [VBA] Order suchen und Dateiauswahl
24.07.2023 14:49:50
Rudi Maintaire
Hallo,
dann so:
Sub aaa()
Dim strPfad As String, strOrdner As String, strSuch As String

strPfad = "c:\test\"
strSuch = Range("A1") & "*"

If strSuch = "" Then MsgBox "keine Nummer": Exit Sub

strOrdner = Dir(strPfad & strSuch, vbDirectory)

If strOrdner > "." Then
With Application.FileDialog(msoFileDialogFilePicker)
.InitialFileName = strPfad & strOrdner
If .Show Then
Range("B1") = .SelectedItems(1)
End If
End With
End If

End Sub
Anzeige
AW: [VBA] Order suchen und Dateiauswahl
24.07.2023 13:16:57
Rudi Maintaire
Hallo,
mal mit Zellen statt Textboxen:
Sub aaa()
Dim strPfad As String, strOrdner As String, strSuch As String

strPfad = "c:\test\"
strSuch = Range("A1") & "*"

If strSuch = "" Then MsgBox "keine Nummer": Exit Sub

strOrdner = Dir(strPfad & strSuch, vbDirectory)

If strOrdner > "." Then
With Application.FileDialog(msoFileDialogFolderPicker)
.InitialFileName = strPfad '& strOrdner
If .Show Then
Range("B1") = .SelectedItems(1)
End If
End With
End If

End Sub

Gruß
Rudi
Anzeige

306 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige