Zum Inhalt springen

VBA Listbox mit Dateinamen aus einem Pfad befüllen


Empfohlene Beiträge

Geschrieben

Hallo,

benötige mal bitte eure hilfe,

tüftel schon die ganze zeit rum.

So ich will mir in Excel eine Listbox erstellen, die mir von den vorhandenen Dateinamen eines Pfades eine Liste erstellt, und ich die Datei dann auch öffnen kann. Jetzt habe ich aber das Problem, dass ich das irgendwie nicht gebacken bekomme.

Der pfadname muss zunächst über eine infobox eingelesen werden. ich habe es auc hschon so weit geschafft, dass ich die Dateien über eine MsgBox ausgeben lasse... aber mit der Listbox kapier ich das nicht.

Bitte Bitte helft mir, ist wirklich dringend, muss das ding bis morgen fertig haben...

Geschrieben

Hallo,

danke für die Antwort, die Codezeilen habe ich hier:


Pfad= InputBox("Bitte geben Sie den Pfad an!!")


Set fs = Application.FileSearch

With fs

    .LookIn = Pfad

    .FileName = "Hallo*.*"

    If .Execute(SortBy:=msoSortbyFileName, _

    SortOrder:=msoSortOrderAscending) > 0 Then

        MsgBox "There were " & .FoundFiles.Count & _

            " file(s) found."

        For i = 1 To .FoundFiles.Count

            MsgBox .FoundFiles(i)

        Next i

    Else

        MsgBox "There were no files found."

    End If

End With


so funktioniert es, also es zählt mir alle dateien mit hallo im dateinamen, die in dem Pfad sind... und gibt sie mri auch in der msg box aus... nur irgendwie hab ich keinen blassen schimmer wie ich des mit der listbox mache... ich hab schon die ganze hilfe im excel gewühlt, aber ich finde da nichts. ich habs auch mit .additem versucht usw.. aber da bringt mir der ständig fehlermeldungen... den anderen text hab ich leider schon wieder gelöscht, weil ichs nicht gebacken bekommen habe... ich wollte das machen, da ich eigentlich ein eingabefeld hab:

Sub Dateiaufruf()


'Eingabefenster zum Aufrufen der Datei

Wert = InputBox("Bitte geben Sie den Dateinamen incl. Pfad an!!", "Dateiaufruf", XSTD)

ergebnis = Dir(Wert)


End Sub

und im sub drüber hab ich das hier stehen
Do While ergebnis = ""

Application.Run Macro:="Dateiaufruf"

Loop

so jetzt hab ich das problem, dass ich solang in ner endlosschleife hängt, bis er eine richtige datei eingibt.. es wäre gut, wenn er bei abbrechen dann komplett abbricht, aber sobald ich abbrechen klicke hänge ich wieder in der endlosschleife.. ich kann das nur beenden, wenn die richtige datei angegeben wrid.. nur irgendwie weiß ich net wie ich das umsetzten kann...

ich benötige ne hilfestellung für einevon beiden methoden... wär echt supi :-)

lg dany

Geschrieben

mir wäre also schon geholfen, wenn ich aus der schleife durch den button abbruch wieder rauskomm.. des is eigentlich des einzige was ich will.. aber ich schaffs net :( der springt immer wieder rein.. dersoll dann aber wirklich nur rausgehn, wenn ich auf abbruch klicken.. sonst immer weiter nach dem dateinamen fragen

Geschrieben
mir wäre also schon geholfen, wenn ich aus der schleife durch den button abbruch wieder rauskomm.. des is eigentlich des einzige was ich will.. aber ich schaffs net :( der springt immer wieder rein.. dersoll dann aber wirklich nur rausgehn, wenn ich auf abbruch klicken.. sonst immer weiter nach dem dateinamen fragen

das Problem ist, dass die inputbox dir nicht explizit sagen kann ober der anwender ok oder abbrechen geklickt hat. laut doku kommt bei "abbrechen" ein leerstring zurück. der kommt aber auch, wenn der anwender auf ok klickt, in der inputbox aber nichts drin steht.

möglichkeit 1:

der inputbox ein default text mitgeben, wenn er zurück kommt, hat anwender ok geklickt, wenn aber leerstring kommt, hat anwender abbrechen geklickt. ist aber natürlich nicht sicher, da der anwender den text erst löschen kann und dann abbrechen klickt :)

möglichkeit 2:

eigenes dialog statt der inputbox erstellen, dann kannst du alles abbrüfen

möglichkeit3:

benütze ein FileDialog :


Dim fd As FileDialog


    Set fd = Application.FileDialog(msoFileDialogFolderPicker)


    fd.Show


gruss

alex

Geschrieben

ok,

also in der inputbox lass ich schon einen dateinamen anzeigen.. den errechne ich aus dem tag, der stunde und dem monat.. da ich damit ein file bearbeiten will, dass täglich alle 4 stunden kommt.. und mir zeigts dann automatisch die datei an, in der inputbox, die akutell wäre...

wie kann ich das mit der dialogbox realisieren? ich sitz gerade so dermaßen auf der leitung..

hab vorher noch nie was mit vba gemacht und muss das ding jetzt bis morgen fertig haben.. bin schon sehr weit, das ist das einzige was noch nicht so funktioniert wie ich mir des vorstell

Geschrieben

ok dankeschön...

jetz noch eine frage sorry,

jetzt kann ich mit dem dialogfenster gerade nur ordner auswählen, aber keine dateien.. wäre supi, wenn ich da dann direkt auf die dateien gehen könnte.. wie funktioniert das?

Geschrieben

ok, du warst schneller :)

obsolete---------------------------->

schau dir den code genauer an :)

Set fd = Application.FileDialog(msoFileDialogFolderPicker)

...

...

...

siehtst du was? :)

...

...

...

msoFileDialogFilePicker

msoFileDialogFolderPicker

:-)

tipp: positioniere einen cursor in den text: FileDialog und drück mal F1 ;-)

gruss

Geschrieben

dankeschön nochmal :-)

jetzt hab ich doch noch eine frage..

und zwar

wenn ich auf abbrechen klicke beim ausführen, dann kommt mir ein laufzeitfehler.. wie kann ich das noch beheben?

irgendiwe so:

if Abbrechen (ist die taste da so belegt)??

exit sub??

end if?

Geschrieben
dankeschön nochmal :-)

jetzt hab ich doch noch eine frage..

und zwar

wenn ich auf abbrechen klicke beim ausführen, dann kommt mir ein laufzeitfehler.. wie kann ich das noch beheben?

irgendiwe so:

if Abbrechen (ist die taste da so belegt)??

exit sub??

end if?

mensch mensch, schaust du auch mal in der hilfe nach?

Set fd = Application.FileDialog(msoFileDialogFolderPicker)

zahl = fd.Show

If zahl = 0 Then Exit Sub 'abbrechen, ok = -1 denke ich

beispiel:

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...