Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Name eines Verzeichnisses in Zelle übernehmen
#11
Hallo snb,

schön kurz ;) so wie ich es sehe wird dabei nicht eine ganze Ordnerstruktur durchsucht, sondern nur die erste Ebene.
Ich bin mir aber sicher das schaffst du auch noch.

lg
lg Chris
Feedback nicht vergessen.
[Bild: v.gif]
3a2920576572206973742064656e20646120736f206e65756769657269672e
Antworten Top
#12
Hallo,

und ein Dankeschön an alle, die sich dazu Gedanken gemacht haben.

@steffl
- hab die Zeilen in den "Makro-Editor" hineinkopiert, aber im Gegensatz zu meinen anderen Versuchen, passiert da nichts, es wird in der Auswalbox auch nichts zur Auswahl angenboten???

@chris-ka
Die Msg-Box ist nett, aber das Tabellenblatt bleibt leer.

War selbst auch nicht untätig und hab so einiges versucht, leider ohne den gewünschten Erfolg. Dabei ist mir vielleicht eine "Lösung durch die Hintertür" gekommen...

Da das verrechnen (Subtraktion) des Ordnernamens (z.B. 0407) mit dem heutigen Datum (im MMTT-Format) nicht 0 ergibt, wie es im optischen Vergleich sollte, mir auch keine Idee kam, daß Excel das Datum im MMTT-Format auch als Zahlenwert 0407 benutzt, kam mir folgende Idee:

Als Ausgangsvoraussetzung dient der Code, welchen ich fand und auch hier eingestellt habe, da dieser mir wie gewünscht, ab dem Verzeichnis, welches ich zuvor hinterlegt habe (da wäre eine Auswahlbox interessant), alle weiteren Unterverzeichnisse in die Tabelle einträgt.
Dort sollte dann für die letzte Ebene der Raum für 5 UUV fest vorgegeben sein, um Verschiebungen in den Zeilen und daraus resultierende Falschberechnungen zu vermeiden.
Wenn nun in den Spalten hinter den UUV vielleicht das Erstellungs- und das letze Änderungsdatum abgelegt werden würde, dann könnte ich das doch für die Optik auch in MMTT formatieren und der weiteren Verarbeitung mit dem aktuellen Datum stünde nichts mehr im Wege.

Ich bedanke mich schon mal im Voraus

MfG
Antworten Top
#13
Hi,

Zitat:@chris-ka

Die Msg-Box ist nett, aber das Tabellenblatt bleibt leer.
Dann schreibe es in die Zelle wo du es haben willst.!?
 cells(1,1).value =Split(d_FolderLastCreated, "#")(1) 'oder wo auch immer du diesen Ordner haben willst
die 407 können gleich über VBA zu einem Datum gemacht werden... oder eben über Formel. z.B in A1 dein 407 =TEXT(RECHTS(A1;2)&TEXT(KÜRZEN(A1/100);"00")&JAHR(HEUTE());"0-00-0000")*1
Nur für was soll das alles gut sein?
Zitat:Dort sollte dann für die letzte Ebene der Raum für 5 UUV fest vorgegeben sein, um Verschiebungen in den Zeilen und daraus resultierende Falschberechnungen zu vermeiden.
Warum Formeln und VBA mischen?
Wenn schon Code dann gleich im Code ausführen und leere Zeilen vermeiden....

Zitat:es wird in der Auswalbox auch nichts zur Auswahl angenboten???
Ich hätte da jetzt auch ??? geschrieben welche Auswahlbox?
Meinst du einen Dialog wo ein Startorder ausgewählt werden kann?
Wie wäre es wenn du uns eine Beispielmappe zur Verfügung stellen würdest wo dein gewünschtes Ergebnis erkennbar dargestellt wird.
lg Chris
Feedback nicht vergessen.
[Bild: v.gif]
3a2920576572206973742064656e20646120736f206e65756769657269672e
[-] Folgende(r) 1 Nutzer sagt Danke an chris-ka für diesen Beitrag:
  • Steffl
Antworten Top
#14
Warum nicht die einfachste Lösung ?

Suche im Ordner 'G:\OF\' und alle Unterordner:

Code:
Sub M_snb()
  MsgBox Split(CreateObject("wscript.shell").exec("cmd /c dir G:\OF\* /b/s/o-d/ad").stdout.readall, vbCrLf)(0)
End Sub
Zum übersetzen von Excel Formeln:

http://dolf.trieschnigg.nl/excel/index.p...gids=en+de
Antworten Top
#15
Hallo snb,

bei meinen Tests habe ich dabei unterschiedliche Ergebnisse!?
Hast du es einmal mit mehreren Verzeichnisebenen versucht?
lg Chris
Feedback nicht vergessen.
[Bild: v.gif]
3a2920576572206973742064656e20646120736f206e65756769657269672e
Antworten Top
#16
Hallo,

warum das so sein sollte, hatte ich meines Erachtens schon geschrieben, aber noch einmal kurz dazu.

es gibt z.B. 5 Geräte, für welche ich einen Ordner mit dem entsprechenden Verzeichnis erstellt habe. In diesen Verzeichnissen existieren Unterverzeichnisse mit der Jahreszahl als Namen. Abgesehen von einer kurzen Übergangszeit, genau genommen nur ein Verzeichnis (mit dem aktuellen Jahr als Name), das vom vergangenen Jahr wird gepackt und gelöscht.
In den Verzeichnissen mit der Jahreszahl wird in der Regel je Quartal ein Ordner erstellt, der nach MMTT-Format benannt wird.
Das Ziel ist es, daß die eingelesenen Unterverzeichnisse (der Name, oder die Eigenschaft "Erstellungsdatum) der letzten Ebene zur Verrechnung mit dem aktuellen Datum genutzt wird und in einer anderen Tabelle auf der Hauptseite, je nach vergangener Zeit ein farblich variierender Hinweis zu sehen ist, um ggf. aktiv zu werden.

Der erste Teil funktioniert mit dem von mir gefundenen Code recht gut und durch simulierte Werte auch die Anpassung der farblichen Ausgabe.

Was ich nicht hin bekomme, ist eben die Sache mit den sichtbaren Zahlenwerten, daß diese nicht auch als IST-Werte genommen werden, oder aber die Ausgabe der Ordnereigenschaft "Erstellungsdatum" in einer separaten Zelle hinter (neben) dem jeweiligen Ordnernamen der letzten Ebene.

@Steffl - ich habe etwas mit deiner Hilfe experimentiert und einen Teil in "meine" Variante eingefügt.
Das Ergebnis ist nicht ganz optimal. Es werden jetzt zwar 5 Felder bereitgehalten, aber für jedes Unterverzeichnis der letzten Ebene. Wenn als 3 UUV vorhanden sind, dann auch je UUV 5 Zeilen "Reserve". Ich benötige aber für die letzte Ebene insgesamt die 5 "Platzhalter". Sind also schon 2 UUV vorhanden, dann nur noch 3 "Platzhalter".

Ein weiteres kurioses Ergebnis miener Einfügearbeit, alle UUV sind doppelt vorhanden. Das sieht dann wie folgt aus:
HV = HauptVerzeichnis
UV = Unterverzeichnis (z.B. 2017)
UUV = Verzeichnisse im UV (z.B. 0407)

HV1
UV1
UUV1
leer
leer
leer
leer
leer
UUV2
leer
leer
leer
leer
leer
UV1
UUV1
leer
leer
leer
leer
leer
UUV2
leer
leer
leer
leer
HV2

Ziel war aber:

HV1
UV1
UUV1 / zusätzliche Zelle mit Erstellungsdatum
UUV2 / zusätzliche Zelle mit Erstellungsdatum
leer
leer
leer
HV2
UV1
UUV1
UUV2
UUV3
leer
leer

Eine Auswahlbox für das HV wäre genial, aber auch ohne wäre ich mehr als zufrieden...

Danke
Antworten Top
#17
@chris

Du hast recht: es wird sortiert pro Folder nicht im ganzen.
So geht's bei mir:


Code:
Sub M_snb()
  sn = Filter(Filter(Split(CreateObject("wscript.shell").exec("cmd /c dir G:\  /s /o-d /ad").stdout.readall, vbCrLf), "<"), " .", 0)
 
  For j = 0 To UBound(sn) - 1
     y = IIf(CDate(Left(sn(j), 17)) > y, CDate(Left(sn(j), 17)), y)
     If CDate(Left(sn(j), 17)) = y Then c00 = sn(j)
  Next
 
  MsgBox c00
End Sub
Zum übersetzen von Excel Formeln:

http://dolf.trieschnigg.nl/excel/index.p...gids=en+de
Antworten Top
#18
(07.04.2017, 11:18)snb schrieb: @chris

Du hast recht: es wird sortiert pro Folder nicht im ganzen.
So geht's bei mir:


Code:
Sub M_snb()
  sn = Filter(Filter(Split(CreateObject("wscript.shell").exec("cmd /c dir G:\  /s /o-d /ad").stdout.readall, vbCrLf), "<"), " .", 0)
 
  For j = 0 To UBound(sn) - 1
     y = IIf(CDate(Left(sn(j), 17)) > y, CDate(Left(sn(j), 17)), y)
     If CDate(Left(sn(j), 17)) = y Then c00 = sn(j)
  Next
 
  MsgBox c00
End Sub

Hallo,

danke für die Beteiligung, aber das hilft mir nicht bei meinem Problem. Ich habe das durchlaufen lassen und bekomme eine Box angezeigt, wo ein Unterverzeichnis drin steht??? Die nächste Ebene, um welche es eigentlich geht, wird gar nicht angezeigt. Wobei es auch nicht um die Anzeige geht, sondern um die Darstellung dieser Verzeichnisse in einer Tabelle.
Der von mir gefundene Code macht das ja schon, allerdings noch nicht ganz so wie ich es brauche. Bin da beim modifizieren schon ein Stück weiter gekommen, aber noch nicht komplett.

MfG
Antworten Top
#19
(07.04.2017, 08:48)chris-ka schrieb: Hi,

Dann schreibe es in die Zelle wo du es haben willst.!?
 cells(1,1).value =Split(d_FolderLastCreated, "#")(1) 'oder wo auch immer du diesen Ordner haben willst
die 407 können gleich über VBA zu einem Datum gemacht werden... oder eben über Formel. z.B in A1 dein 407 =TEXT(RECHTS(A1;2)&TEXT(KÜRZEN(A1/100);"00")&JAHR(HEUTE());"0-00-0000")*1
Nur für was soll das alles gut sein?
Warum Formeln und VBA mischen?
Wenn schon Code dann gleich im Code ausführen und leere Zeilen vermeiden....

Ich hätte da jetzt auch ??? geschrieben welche Auswahlbox?
Meinst du einen Dialog wo ein Startorder ausgewählt werden kann?
Wie wäre es wenn du uns eine Beispielmappe zur Verfügung stellen würdest wo dein gewünschtes Ergebnis erkennbar dargestellt wird.

Hallo,

warum Formeln und VBA mischen? Vielleicht wegen fehlender Erfahrung und/oder Kenntnis der Materie, da in diesem Fall das Ergebnis zählt und ich selbst auch ein paar Kleinigkeiten hin bekomme. Die Formel zur Umrechnung meiner Ordnernamen in einen "Datumswert" schließt die erste Lücke, an der ich fest hing. Damit erledigt sich auch die Sache mit der Ordnereigenschaft "Erstellungsdatum".

Eine passende Dialogbox zum auswählen eines Verzeichnisses habe ich auch schon gefunden, allerdings fehlt mir noch der Punkt, wie der ausgewählte Ordner dort eingetragen wird, wo ich ihn zuvor per Hand hinein geschrieben hatte.

Wenn es die Option gäbe, nur das zuletzte erstellte UUV (letzte Verzeichnisebene) einzulesen, dann wäre auch die Nummer mit den Platzhaltern raus, da es ja nur um dieses letzte Verzeichnis geht.

Muß erst mal los, gucke nachher noch mal vorbei...

MfG
Antworten Top
#20
Bitte nicht zitieren (quoten).

Und beachte: es ist hier ein Forum.
Zum übersetzen von Excel Formeln:

http://dolf.trieschnigg.nl/excel/index.p...gids=en+de
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste