Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1792to1796
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
Inhaltsverzeichnis

Dateipfad in Userform abfragen und übernehmen

Dateipfad in Userform abfragen und übernehmen
15.11.2020 19:48:09
Basti
Hallo Zusammen,
da ich am Sonntag leider nichts besseres zu tun hab, als ein meine VBA Kenntnisse zu verbessern, würde ich Euch gerne um Hilfe bitten. :-)
Aufgabe: Excel-Tabelle über eine UserForm zu befüllen.
Es geht um die folgenden drei Werte.
1. Projektnummer
2. Projektbezeichnung
3. Projektordner
Problem 1: Wert 1 und 2 konnte ich über ComboBox erfassen und in meine Tabelle eintragen. Nur mit dem Projektordner hab ich so meine Probleme.
Ziel: Projektordner abfragen in ListBox1, Pfad in Userform anzeigen und anschließend in Tabelle eintragen.
Den Code zur Ordnerabfrage habe ich aus:
https://www.herber.de/forum/archiv/1740to1744/1742727_Userform_Dateipfad_suche.html#1742727
MsgBox zeigt den gewählten Pfad an aber ich bekomme es nicht hin, dass er in die ListBox1 übernommen und dann in meine Tabelle geschrieben wird.
Problem 2: Ich würde gerne, dass nach der Eingabe alle Felder der UserFrom geleert werden und der Anwender die drei Werte eingetragen muss, um die UserForm mit dem Button Eingabe zu beenden.
Das ist mein Code bisher:
Private Sub UserForm_Initialize()
'Projektnummer
'Projektbezeichnung
'Projektordner
Dim lngZeileMax As Long
lngZeileMax = Tabelle3.UsedRange.Rows.Count
With Me.BoxProNum
.RowSource = "Projektdaten!A2:A" & lngZeileMax ' Quelle angeben"
.Style = fmStyleDropDownList
.ListIndex = 0
.ListRows = 5
.Font.Bold = True
.ForeColor = RGB(0, 0, 255)
End With
With Me.BoxProBez
.RowSource = "Projektdaten!B2:B" & lngZeileMax ' Quelle angeben"
.Style = fmStyleDropDownList
.ListIndex = 0
.ListRows = 5
.Font.Bold = True
.ForeColor = RGB(0, 0, 255)
End With
End Sub
Private Sub ButtonAbbrechen_Click()
Unload Me
End Sub
Private Sub ButtonEingabe_Click()
Dim intNfZ As Integer 'Nächste freie Zeile
intNfZ = ActiveWorkbook.ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row + 1
With ActiveSheet
If intNfZ = 2 Then .Cells(intNfZ, 1).Value = 1 Else: .Cells(intNfZ, 1).Value = .Cells( _
intNfZ - 1, 1).Value + 1
.Cells(intNfZ, 2).Value = Application.UserName
.Cells(intNfZ, 3).Value = Date
.Cells(intNfZ, 5).Value = BoxProNum
.Cells(intNfZ, 6).Value = BoxProBez
.Cells(intNfZ, 7).Value = ListBox1
End With
Unload Me
End Sub
Private Sub ListBox1_enter()
With Me.ListBox1
Dim Dlg As FileDialog
Dim Startpfad As String, Pfad
Startpfad = "Z:\Ordner\" 'oder = ThisWorkbook.Path
Set Dlg = Application.FileDialog(msoFileDialogFolderPicker) 'Verzeichnis wählen
With Dlg
.InitialFileName = Startpfad 'Welches Verzeichnis soll voreingestellt sein
End With
If Dlg.Show = True Then
Pfad = Dlg.SelectedItems(1)
End If
End With
End Sub
Danke und Gruß
Basti

19
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Dateipfad in Userform abfragen und übernehmen
15.11.2020 19:52:55
onur
"MsgBox zeigt den gewählten Pfad an" - da ist keine MSGBOX in dem geposteten Code.
AW: Dateipfad in Userform abfragen und übernehmen
15.11.2020 20:08:03
Basti
Weil es nicht funktioniert mit:
Private Sub ListBox1_enter ()
Wenn ich den Code:
Sub FolderPicker() 
eigenständig laufen lassen, dann kommte mit:
MsgBox (Pfad)
der ausgewählte Pfad.
AW: Dateipfad in Userform abfragen und übernehmen
15.11.2020 20:11:04
onur
Und warum postest du Sub FolderPicker() nicht auch ? "Top Secret" ?
Anzeige
AW: Dateipfad in Userform abfragen und übernehmen
15.11.2020 20:20:58
Basti
Steht 1:1 in meine Anfrage unterhalb von
Private Sub ListBox1_enter ()
Das habe ich in eine Code eigenständige Prozedur gepackt, die ich
Sub FolderPicker()
MsqBox (Pfad)
End Sub
genannt habe, um zu sehen, ob ich den Code überhaupt zum Laufen bringe.
AW: Dateipfad in Userform abfragen und übernehmen
15.11.2020 20:31:28
onur
Und wo in deinem Code glaubst du, wird pfad in die Listbox geschrieben ?
Private Sub ListBox1_enter() 

Wo genau (welches Modul) steht diese Zeile ? Wenn "Enter" kleingeschrieben ist, ist irgendwas falsch, denn der Editor schreibt das automatisch groß.
With Me.ListBox1

Was soll das denn bringen? Wozu?
Anzeige
AW: Dateipfad in Userform abfragen und übernehmen
15.11.2020 20:39:47
Basti
Hab das mal in einen

ButtonOrdner_Click()
geändert.
Private Sub ButtonOrdner_Click()
With Me.ButtonOrdner
Dim Dlg As FileDialog
Dim Startpfad As String, Pfad
Startpfad = "Z:\Ordner\" 'oder = ThisWorkbook.Path
Set Dlg = Application.FileDialog(msoFileDialogFolderPicker) 'Verzeichnis wählen
With Dlg
.InitialFileName = Startpfad 'Welches Verzeichnis soll voreingestellt sein
End With
If Dlg.Show = True Then
Pfad = Dlg.SelectedItems(1)
End If
End With
End Sub
Jetzt wird in die Tabelle "Falsch" eingetragen!?
Anzeige
AW: Dateipfad in Userform abfragen und übernehmen
15.11.2020 20:44:54
onur
Brinft alles nix - poste mal die Datei, sonst dauert die dauernde Hin- und Her-Fragerei ewig.
AW: Dateipfad in Userform abfragen und übernehmen
15.11.2020 20:50:10
onur
"Jetzt wird in die Tabelle "Falsch" eingetragen!"
Zumal ich nicht mal sehen kann, WO das passieren soll.
AW: Dateipfad in Userform abfragen und übernehmen
15.11.2020 20:52:27
Basti
Siehe
AW: Dateipfad in Userform abfragen und übernehmen - von Basti am 15.11.2020 20:49:59
AW: Dateipfad in Userform abfragen und übernehmen
15.11.2020 20:53:33
onur
WO IN DEINEM CODE DAS PASSIERT?
AW: Dateipfad in Userform abfragen und übernehmen
15.11.2020 20:59:39
Basti
Wenn man auf den Button "Projektordner anlegen" klickt, dann öffnet dieser Code die Ordnersuche.
Private Sub ButtonOrdner_Click()
With Me.ButtonOrdner
Dim Dlg As FileDialog
Dim Startpfad As String, Pfad
Startpfad = "Z:\Ordner\" 'oder = ThisWorkbook.Path
Set Dlg = Application.FileDialog(msoFileDialogFolderPicker) 'Verzeichnis wählen
With Dlg
.InitialFileName = Startpfad 'Welches Verzeichnis soll voreingestellt sein
End With
If Dlg.Show = True Then
Pfad = Dlg.SelectedItems(1)
End If
End With
End Sub
Wenn ich dann auf "Eingabe" drücke, sollte die Prozedur eigentlich den zuvor gewählten "Speicherpfad" in "Splate G" eintragen. Es wird aber aktuell "Falsch" eintragen.
Anzeige
AW: Dateipfad in Userform abfragen und übernehmen
15.11.2020 21:10:03
onur
Du hast NULL Ahnung, was im Code steht oder der Code macht, deswegen antwortest du nur Müll, wenn ich dich was frage !
Die richtige Antwort wäre gewesen: Hier:
.Cells(intNfZ, 7).Value = ButtonOrdner

Diese Zeile ist wohl ein Witz.
z.B. Cells(3,7)=Button ?
Du musst ein Modul hinzufügen, DORT pfad als Public-Variable deklarieren und die obige Zeile muss so lauten:
.Cells(intNfZ, 7).Value = pfad

Guckst du hier:
https://www.herber.de/bbs/user/141584.xlsm
Anzeige
AW: Dateipfad in Userform abfragen und übernehmen
15.11.2020 21:13:36
onur
Und das:
With Me.ButtonOrdner

und weiter unten das "End With" dazu ist völlig überflüssig, da absolut sinnlos.
AW: Dateipfad in Userform abfragen und übernehmen
15.11.2020 22:49:35
ralf_b
namd,
die variable "pfad" aus der ButtonOrdner_Click prozedur sollte ausserhalb der Prozeduren als public deklariert werden. dann kannst du sie hier nutzen.
.Cells(intNfZ, 7).Value = ButtonOrdner 'hier pfad einsetzen statt ButtonOrdner
wie das mit public geht und so, das liest du besser selber nach. Ich sage dazu Nichts weiter.
gn8
RB
AW: Dateipfad in Userform abfragen und übernehmen
15.11.2020 22:53:10
onur
Warum wiederholst du eigentlich das soeben von mir Gesagte?
Damit auch DEIN Name im Thread erscheint ?
Anzeige
AW: Dateipfad in Userform abfragen und übernehmen
16.11.2020 08:58:58
Basti
Danke für die Rückmeldungen!
Wie bekomme ich es jetzt hin, dass...
.Cells(intNfZ, 5).Value = BoxProNum
den Wert als Zahl und nicht als Text in die Spalte 5 schreibt?
Code steht hier drin, falls jemand fragt...
Private Sub ButtonEingabe_Click()
Dim intNfZ As Integer 'Nächste freie Zeile
Dim dbl As Double
dbl = CDbl(Cells(intNfZ, 7).Value)
intNfZ = ActiveWorkbook.ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row + 1
With ActiveSheet
If intNfZ = 2 Then .Cells(intNfZ, 1).Value = 1 Else: .Cells(intNfZ, 1).Value = .Cells( _
intNfZ - 1, 1).Value + 1
.Cells(intNfZ, 2).Value = Application.UserName
.Cells(intNfZ, 3).Value = Date
.Cells(intNfZ, 5).Value = BoxProNum
.Cells(intNfZ, 6).Value = BoxProBez
.Cells(intNfZ, 7).Value = pfad
End With
Unload Me
End Sub
Danke und Gruß
Basti
Anzeige
AW: Dateipfad in Userform abfragen und übernehmen
16.11.2020 10:56:23
ralf_b
ups, da hat wohl Jemand Blutdruck?
Zitat: onur ...Damit auch DEIN Name im Thread erscheint ?..
Das ist definitiv nicht mein Beweggrund. Deiner?
Ich hatte den Eindruck das Ihr euch nicht so recht versteht und versucht es anders zu formulieren.
Sind wir nicht hier um zu helfen?

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige