Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1300to1304
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

GetDiretory anpassen

GetDiretory anpassen
27.02.2013 20:42:00
Lemmi
Hallo zusammen,
ich möchte einen GetDirectory anpassen weiß aber nicht wie!
Dieser Code ist zwar variabel, leider habe ich eine sehr lange Verzeichnisstruktur die ich jetzt vorselektieren möchte!
In meinem Tabellenblatt "Inhalt" auf C43 steht ein Projektverzeichnis!
Wird C43 und das da hinterlegte Verzeichnis geändert so soll auch jeweils das angepasste Verzeichnis ausgelesen werden.
Z.B. Zelle C43 Arbeitsblatt Inhalt -->C:\Haus\Katze\Hund\Fotos\2007 (Teil 1)
Nach der Selektion soll die Verzeichnisauswahl, wie üblich durchgeführt werden können...also GetDiretory.....(Teil 2)
Mit der Ergänzung wird die Auswahl des Verzeichnisses abgeschlossen.
Das nachfolgende Makro ist der zu ändernde "Abschnitt"
Private Sub CommandButton1_Click()
If Val(Application.Version)  "" Then
ChDrive Left(TextBox1, 2)
ChDir TextBox1
End If
Dim fd As FileDialog
Set fd = Application.FileDialog(msoFileDialogFolderPicker)
If fd.Show = True Then
TextBox1 = fd.SelectedItems(1)
End If
ChDrive AktLW
ChDir AktPfad
End If
End Sub

Gruß
Lemmi

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: GetDiretory anpassen
27.02.2013 21:29:47
Luschi
Hallo Lemmi,
so sollte es funktionieren:

Private Sub CommandButton1_Click()
If Val(Application.Version) fd.InitialFileName = Me.TextBox1.Value
If fd.Show = True Then
Me.TextBox1.Value = fd.SelectedItems(1)
End If
ChDrive AktLW
ChDir AktPfad
End If
End Sub
Gruß von Luschi
aus klein-Paris

AW: GetDiretory anpassen
27.02.2013 22:03:04
Lemmi
Hallo Luschi,
vielen Dank für Deine Hilfe!
Der Code funktioniert nach meiner Meinung in gleicher Art und Weise wie der alte Code! ...oder übersehe da ich etwas?
Ich möchte ja gerne einen Teil (Teile 1) vorgeben. Dieser ist im Blatt „Inhalt“ auf C43 vorgegeben.
Und den zweite Teil den ich dann selektiere .
Gruß
Lemmi

Anzeige
AW: GetDiretory anpassen
28.02.2013 08:55:42
Luschi
Hallo Lemmi,
dann verstehe ich Deine Aufgabenstellung nicht.
Gib malk bitte ein paar mehr Infos.
Gruß von Luschi
aus klein-Paris

AW: GetDiretory anpassen
28.02.2013 18:51:57
Lemmi
Hallo Luschi,
nach dem der Code ausgeführt wird, öffnet ein Fenster in dem ein Verzeichnis ausgewählt werden kann.
Die Auswahl beginnt z. B. im Laufwerk C:.
Dieses Laufwerk sowie das Unterverzeichniss können dann manuell ausgewählt werden.
Wird das Makro erneut gestartet, so kann (muss) ich wiiiiiiiiieder von C:\ auswählen.
Da ich in einem Netzwerk arbeite und die Strutur der Unterordner tief ist, ist die Auswahl ganz schön nerfig!
Deshalb möchte ich eine Teilauswahl des Verzeichnisses in dem Arbeitsblatt "Inhalt" in Zelle C43 vorgeben.
Dieser feste Teil ist z. B. C:\Haus\Garten\
Wird nun das Makro aufgerufen, so beginnt das Makro nicht mit C:\ sondern mit C:\Haus\Garten\.
Da dies nur die vorletzte Struktur Ebene ist, benötige ich noch die alte Auswahlmöglichkeit weitere unterordner dazu zu hohlen zu können.
Ein Lösungsansatz ist also immer bei Makrostart die Zelle C43 auszulesen um dann die Freihe seketion (GetDiretory) weiter durchzuführen zu können.
Gruß
Lemmi

Anzeige
AW: GetDiretory anpassen
02.03.2013 23:08:04
Jürgen
Hallo Lemmi,
wenn Du den FileDialog verwendest, kannst Du über dessen Eigenschaft "InitialFileName" das Startverzeichnis vorgeben. Das könnte basierend auf Deinem Code-Beispiel so aussehen:
Private Sub CommandButton1_Click()
If Val(Application.Version)  "" Then
fd.InitialFileName = TextBox1
End If
If fd.Show = True Then
TextBox1 = fd.SelectedItems(1)
End If
End If
End Sub
Wenn die Zelle C43 das Startverzeichnis enthält, ersetzt Du in dem obigen Code TextBox1 jeweils durch Range("c43").value
Gruß, Jürgen

AW: GetDiretory anpassen
03.03.2013 13:53:21
Lemmi
Hallo Jürgen,
erstmal vielen dank für Deine Hilfe!
Mit dem Austausch kann ich nun auf dem selben Arbeitsblatt die Zelle C43 auselsen!
Wenn ich das rchtig verstanden habe, wird bei Deiner Änderung der Ort des auslesens veränder/ergänzt.
Wie würde Range("c43").value verändert werden müssen, wenn ich die Information in dem
Arbeitsblatt "Inhalt" auf C43 habe?
Leider bin ich kein VBA - User . Nach dem Start wird wie üblich der Dialog aufgerufen.
Die Vorauswahl mit dem Verzeichnis klappt soweit.Es wird das Teilverzeichnis ausgelsen und ergänzt....aber in der Referenz Zelle C43!
In dem Formular, welches aufgerufen wird, wird deshalb die TestBox1 leider nicht mehr gefüllt
(... wahrscheinlich erwartungsgemäß!)
Das Marko schreibt jetzt alles in die ausgewiesende Referenz Zelle (C43)zurück.
Kann das anhängende Maro (erweitere Frage) so angepasst werden das die TextBox1 dennoch gefüllt wird und die Referenz Zelle C43 unverändert bleibt.
Ich gehen davon aus, dass Du vieleicht die Info vom anhängende Makro Textbox1 dazu benötigs.
Dies ist ein Teil der wohl TestBox1 steuert.
dh. es sollte nachwievor die Texbox1 gefüllt werden....ohne die Infroamation in der Referenz Zelle ) verändernt/ ergänzend wird.
"zur Info"
Sub Ordnerliste()
Pfad = TextBox1
Rekursiv = CheckBox1
Ausgabeart = Abs(OptionButton1 + 2 * OptionButton2 + 3 * OptionButton3)
Darstellung = Abs(OptionButton4 + 2 * OptionButton5 + 3 * OptionButton6)
Dateien = CheckBox3
If Trim(TextBox2)  "" Then
Typen = Split(Trim(TextBox2), ",")
End If
Typ = TextBox2
Groesse = CheckBox4
Attribut = CheckBox5
ErstellDatum = CheckBox6
SpeicherDatum = CheckBox7
Endung = CheckBox8
Hyper = CheckBox9
Call OrdnerAuflisten(Pfad, Rekursiv)
[A:A].NumberFormat = "#,###"
Columns("A:Z").AutoFit
If Columns(6).ColumnWidth > 70 Then Columns(6).ColumnWidth = 70
[A2].Select
ActiveWindow.FreezePanes = True
If Ausgabeart = 3 Then ActiveSheet.Name = "Ordnerliste " & Replace(Now, ":", "-")
MsgBox "Auflistung beendet !"
End Sub

Gruß
Lemmi

Anzeige
AW: GetDiretory anpassen
03.03.2013 23:38:48
Jürgen
Hallo Lemmi,
um ehrlich zu sein, bin ich etwas verwirrt, und verstehe gerade nicht mehr, welche Rolle TextBox1 und die Zelle c43 bei Deiner Lösung spielen. Wenn der von mir vorgeschlagene Code in einem Formular mit "Textbox1" zusammen arbeiten soll, brauchst Du ihn nicht anzupassen. Nur für den Fall, dass er mit Zelle c43 zusammenspielen soll, ist die Anpassung erforderlich. Wenn c43 auf dem Blatt "Inhalt" gewünscht ist, drückt man das durch Sheets("Inhalt").Range("c43).value aus.
Hilft Dir das weiter?
Gruß, Jürgen

AW: GetDiretory anpassen
04.03.2013 22:26:05
Lemmi
Hallo Jürgen,
mit deiner Erweiterung funktioniert grundsätzliche das Auslesen.
.. wie geschrieben werden die TextBox1 Inhalte jetzt in die Zelle C43 geschrieben.
Dies würde ich gerne beides haben!
Könnte die Ausgabe nicht In C43 und in der Testbox1 angezeigt werden?
Sheets("Inhalt").Range("c43).value "& TextBox1" ?
Kann das in der Programmzeile eingebracht werden?
Gruß
Lemmi

Anzeige
AW: GetDiretory anpassen
04.03.2013 22:27:03
Lemmi
Hallo Jürgen,
mit deiner Erweiterung funktioniert grundsätzliche das Auslesen.
.. wie geschrieben werden die TextBox1 Inhalte jetzt in die Zelle C43 geschrieben.
Dies würde ich gerne beides haben!
Könnte die Ausgabe nicht In C43 und in der Testbox1 angezeigt werden?
Sheets("Inhalt").Range("c43).value "& TextBox1" ?
Kann das in der Programmzeile eingebracht werden?
Gruß
Lemmi

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige