Autor
|
Thema: Ordnernamen in Excel wiedergeben (1911 mal gelesen)
|
Sebastian B Mitglied Konstrukteur
Beiträge: 28 Registriert: 22.03.2007
|
erstellt am: 09. Nov. 2007 12:45 <-- editieren / zitieren --> Unities abgeben:
Hallo zusammen, ich bin leider nicht sehr bewandert mit Excel und versuche mich im Moment ein bißchen einzuarbeiten. Meine Frage ist jetzt ob es möglich ist in Excel den Namen eines beliebigen Ordners des Explorers (und vielleicht noch ein paar Eigenschaften wie z.B die Ordnergröße) in Excel wiederzugeben. Ich hoffe ich habe die Frage verständlich Formuliert, ich arbeite übrigens mit der 2003er Version. Vielen Dank im Vorraus Sebastian Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
bst Mitglied
Beiträge: 192 Registriert: 31.08.2004 .
|
erstellt am: 09. Nov. 2007 13:05 <-- editieren / zitieren --> Unities abgeben: Nur für Sebastian B
Hi Sebastian, aus 'meinem Archiv': HTH, Bernd -- Die 'einfache' Variante:
Code: Option ExplicitSub BuildDir() Dim strPath As String, strName As String, strFullName As String Dim i As Long Range("A1:d1") = Array("Name", "Grösse", "Datum", "Attribute") i = 2 strPath = "E:\test\" strName = Dir(strPath & "*.txt", 31) ' 31 = vbDirectory + vbVolume + VbSystem + vbHidden + vbReadOnly While strName <> "" strFullName = strPath & strName Cells(i, 1) = strName Cells(i, 2) = FileLen(strFullName) Cells(i, 3) = FileDateTime(strFullName) Cells(i, 4) = Attr2String(GetAttr(strFullName)) i = i + 1 strName = Dir Wend End Sub Function Attr2String(intAttrib As Integer) As String Attr2String = "-----" If intAttrib And vbReadOnly Then Mid(Attr2String, 1, 1) = "R" If intAttrib And vbHidden Then Mid(Attr2String, 2, 1) = "H" If intAttrib And vbSystem Then Mid(Attr2String, 3, 1) = "S" If intAttrib And vbDirectory Then Mid(Attr2String, 4, 1) = "D" If intAttrib And vbArchive Then Mid(Attr2String, 5, 1) = "A" End Function
Eine ausführlichere Variante by K.Rola:
Code: Option ExplicitPublic Sub Dateieigenschaften() 'von K.Rola Const STRFOLDER As String = "E:\TEST" Dim objShell As Object, objFolder As Object Dim bytIndex As Byte, intColumn As Integer, lngRow As Long Dim varName If Dir(STRFOLDER, 16) = "" Then MsgBox "Der Ordner " & STRFOLDER & " wurde nicht gefunden!", 64, "Hinweis" Exit Sub End If Application.ScreenUpdating = False Set objShell = CreateObject("Shell.Application") Set objFolder = objShell.Namespace(STRFOLDER) intColumn = 1 For bytIndex = 0 To 37 Cells(1, intColumn + bytIndex) = objFolder.GetDetailsOf(varName, bytIndex) Next Rows(1).Font.Bold = True lngRow = 2 For Each varName In objFolder.Items For bytIndex = 0 To 37 Cells(lngRow, intColumn + bytIndex) = objFolder.GetDetailsOf(varName, bytIndex) Next lngRow = lngRow + 1 Next Columns.AutoFit Application.ScreenUpdating = True End Sub
[thedit]@Bernd, ich habe mal Range("A1 1") = Array("Name", "Grösse", "Datum", "Attribute") korrigiert in A1:d1, damit das Grinsen verschwindet ;-)[theditoff] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Frank88 Mitglied
Beiträge: 153 Registriert: 11.10.2004
|
erstellt am: 09. Nov. 2007 13:25 <-- editieren / zitieren --> Unities abgeben: Nur für Sebastian B
|
Sebastian B Mitglied Konstrukteur
Beiträge: 28 Registriert: 22.03.2007 MS Windows XP Professional x64, Intel Core Duo CPU E8300 @2,83GHz 4 GB RAM Grafikkarte: NVIDIA GeForce 9800 GT Pro/Engineer WF3 M150 MS Office 2003 MS Office 2007
|
erstellt am: 09. Nov. 2007 14:06 <-- editieren / zitieren --> Unities abgeben:
Hallo bst, vielen Dank für deine Hilfe,aber Frank hat leider recht.Ich denke ich kann in Excel noch nicht einmal wirklich viel aber von VB habe ich überhaupt keinen Schimmer. Ich dachte es gibt vielleicht ne "einfache" Formel die ich benutzen kann, aber das geht wohl nicht . Trotzdem vielen Dank für die Mühe Gruß Sebastian Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Paulchen Mitglied Bauing./SW-Entwickler
Beiträge: 1227 Registriert: 19.08.2004 Büro: Win10 Enterprise 64bit, Office Professional Plus 2013 - Privat: Linux Mint 15, LibreOffice
|
erstellt am: 09. Nov. 2007 14:46 <-- editieren / zitieren --> Unities abgeben: Nur für Sebastian B
Hallo Sebastian, noch nicht gleich aufgeben . Hilft die Funktion =ZELLE("Dateiname") schon ein wenig? Schau dazu am besten mal in die Hilfe; und nimm gleich die Textfunktionen (FINDEN, LINKS, RECHTS, TEIL) mit. Ordnergrößen und dergleichen Scherze bekommst Du IMHO nur via VBA o.ä. heraus - Excel-Funktion ist mir keine bekannt. Was genau hast Du denn vor? Frederik ------------------ DIN1055.de | Lastannahmen für Anwender Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
bst Mitglied
Beiträge: 192 Registriert: 31.08.2004 .
|
erstellt am: 09. Nov. 2007 14:53 <-- editieren / zitieren --> Unities abgeben: Nur für Sebastian B
Hi, Zitat: da wird sich der nicht sehr in Excel bewanderte aber freuen , daß es auch ne 'einfache' Variante gibt...
Hmm, stimmt. Wer lesen kann ist hier wohl klar im Vorteil Und, mit einer Formel geht da M.E. nicht viel. Sorry, Bernd Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
carsten-3m Mitglied Dipl.-Ing. Mbau (Produktmanagement, Patent- und Normwesen)
Beiträge: 950 Registriert: 08.05.2007 Excel 2010
|
erstellt am: 09. Nov. 2007 14:57 <-- editieren / zitieren --> Unities abgeben: Nur für Sebastian B
Hab mal Bernd's Programmcode (den von K.Rola) in ein Excelblatt gepackt, nebst Knopf zum Starten. Das hilft vielleicht... edit: Ajo, das ".txt" am Eng weglöschen, gelle ------------------ Seit Pro/E Version 1 dabei, auwei... [Diese Nachricht wurde von carsten-3m am 09. Nov. 2007 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Sebastian B Mitglied Konstrukteur
Beiträge: 28 Registriert: 22.03.2007
|
erstellt am: 14. Nov. 2007 09:44 <-- editieren / zitieren --> Unities abgeben:
Hallo zusammen, vielen Dank euch allen. Ich habe alles mal ausprobiert und es klappt. Schade nur das ich nicht ganz verstehe was ich da so mache. Jetzt weiß ich aber was ich als nächstes mache, werde mich wohl mal mit VB auseinander setzten. Gruß Sebastian Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
runkelruebe Moderator Straßen- / Tiefbau
Beiträge: 8075 Registriert: 09.03.2006 MS-Office 365 ProPlus x86 WIN7(x64)
|
erstellt am: 14. Nov. 2007 09:55 <-- editieren / zitieren --> Unities abgeben: Nur für Sebastian B
Hallo Sebastian, ein paar Tipps zum Einstieg: schon mal hier gepostet Zitat: Gerade am Anfang, wo einem noch die ganzen Begriffe fehlen, nach denen man dann in F1 und Forum sinnvoll suchen kann, tut der MakroRekorder gute Dienste. Wenn man dann diese Tipps beherzigt, kann man mit dem durchaus was anfangen ;-)Ich empfehle im VBA-Editor die damit erhaltenen oder hier durch C&P geschnippselten ;-) Makros Schritt für Schritt durch zu gehen (mit F8) und dabei schauen, was im Einzelnen passiert. Wenn Du "echte" Namen verwendest, also nicht sowas wie ActiveSheet, gibt es die verdammt ich komme nicht auf den Namen Hilfestellung bei der Eingabe, im laufenden Code gibt es Maus-hints, das Lokalfenster <- mein persönliches Aha-Erlebnis und den Direktbereich. Alles mal anschauen, F1 dabei und lesen, lesen, lesen ;-)
------------------ Gruß, runkelruebe Herr Kann-ich-nich wohnt in der Will-ich-nich-Straße... Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Sebastian B Mitglied Konstrukteur
Beiträge: 28 Registriert: 22.03.2007
|
erstellt am: 14. Nov. 2007 15:51 <-- editieren / zitieren --> Unities abgeben:
Hallo runkelruebe, vielen Dank für die Infos,ich habe auch schon mal angefangen mich zu informieren: http--www.hrz.uni-dortmund.de-S1-download-skripte-s3-excel-excel_formular_vba.pdf Ich hoffe das kriege ich alles so hin, hab schon mal reingeguckt und der Knackpunkt waren wirklich erst mal die Fachbegriffe. Nochmal danke Gruß Sebastian
[rredit] "Aus lizenzrechtlichen Gründen dürfen wir die Software nur für Angehörige der Universität Dortmund zum Download anbieten." Nur zur Info, für alle, die sich sonst die Mühe machen würden, den link zu verfolgen [/rredit] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Thomas Harmening Moderator Arbeiter ツ
Beiträge: 2897 Registriert: 06.07.2001 Das Innerste geäussert und aufs Äusserste verinnerlicht
|
erstellt am: 14. Nov. 2007 16:57 <-- editieren / zitieren --> Unities abgeben: Nur für Sebastian B
@Rübe ;-) =WECHSELN(WECHSELN(WECHSELN(url;"-";"/");"//";"://");"/";"-";3) und da du ja die seite mit der grossen fetten roten schrift siehst, nimm mal deren suche und gebe excel_formular_vba.pdf ein ;-) [rredit] @Thomas Danke für's Wühlen ;-) [/rredit] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
| Anzeige.:
Anzeige: (Infos zum Werbeplatz >>)
|