Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

gelöst Aus Excel heraus per Makro Dateiinformationen ermitteln und in Tabelle speichern

Mitglied: kruder77

kruder77 (Level 1) - Jetzt verbinden

13.09.2007, aktualisiert 18.09.2007, 15276 Aufrufe, 5 Kommentare

Hallo,

Wie kann man aus Exel heraus zum ersten einen Dateinamen und zum zweiten die Größe der entsprechenden Datei finden und an einer vorher bestimmten Stelle innerhalb der Exel-Datei speichern?

Vielen Dank fürs Antworten
Kruder










[Edit Biber 15.9.2007] Von "Entwicklung" nach "Excel" verschoben und auf "gelöst" gesetzt".[/Edit]
Mitglied: ISpawn
13.09.2007 um 10:44 Uhr
Hi,
wenn ich dich richtig verstanden habe meinst du das :

Sub Test()
Dim xlName As String
Dim xlSize As String
Dim oSheet As Worksheet
Dim i As Integer

On Error GoTo fail

xlName = Application.ActiveWorkbook.FullName
xlSize = FileSystem.FileLen(xlName)
Set oSheet = Application.ActiveWorkbook.Sheets.Add
For i = 1 To oSheet.Columns.Count
Cells(i, i).Value = xlName
Cells(i + 1, i).Value = xlSize '(bytes)
Next i
Exit Sub

fail:
Call MsgBox(Err.Description, vbInformation, "Fehler")

End Sub
Bitte warten ..
Mitglied: kruder77
13.09.2007 um 11:07 Uhr
Hallo ISpawn,

erstmal, danke fürs schnelle Antworten!

Ich würde gerne z.B. aus C:\Documents\Test\ eine Reihe von zb. *.doc (können auch beliebige andere Dateien/Pfade sein) so verwerten, dass ich in der Exel-Tabelle dann das so stehen habe:


Dateiname1 Dateigröße
Dateiname2 Dateigröße
usw.

Ich muss dazu sagen, das ich von VBA überhaupt keine Ahnung habe. Es wäre echt super wenn Du evt. den Code ein ganz klein wenig dokumentieren könntest.

Vielen Vielen Dank
Kruder
Bitte warten ..
Mitglied: ISpawn
13.09.2007 um 11:45 Uhr
Hi,


Kopiere den Code mal in deinen VBA Editor und starte die Sub FillMe.
vorrausgesetzt du hast einen C:\temp\ Ordner auf deiner Platte ansonsten musst du die Variable sucheIn bzw sucheNach anpassen .

Gruß
Micha (btw.... hab sogar ein paar comments geschrieben... bei Fragen, fragen)

01.
Option Explicit 
02.
Dim fso As Object 'FileSystemObject 
03.
'------------------------------------------ 
04.
Sub FillMe() 
05.
    On Error GoTo fail 
06.
      Set fso = CreateObject("Scripting.FilesystemObject") 'New FileSystemObject 
07.
       
08.
      Dim sFiles() As String  'Speicher für die Dateinamen 
09.
      Dim sSize() As String   'Speicher für die Dateigrößen 
10.
       
11.
      'Init der Speicher auf 0 
12.
      ReDim sFiles(0) 
13.
      ReDim sSize(0) 
14.
      
15.
      Dim sucheIn As String 
16.
      Dim sucheNach As String 
17.
       
18.
      sucheIn = "C:\temp\" 'Order in dem nach Dateien gesucht werden soll 
19.
 
20.
      sucheNach = "*.*"    'Dateityp nachdem gesucht werden soll 
21.
      '(abc*.* wird nicht Funktionieren!) 
22.
      '*.*, *.doc oder *.blabla 
23.
      Call SucheHier(sucheIn, sucheNach, sFiles(), sSize(), True) 
24.
       
25.
         
26.
         
27.
        If UBound(sFiles()) - 1 < 0 Then 
28.
            'Nix gefunden 
29.
            Exit Sub 
30.
        Else 
31.
            'Damit Excel nicht flackert .... 
32.
            Application.ScreenUpdating = False 
33.
            Dim owb As Workbook 
34.
            Dim oSheet As Worksheet 
35.
            Dim i As Integer 
36.
             
37.
            'Neues Workbook anlegen (damit man nix überschreibt) 
38.
            Set owb = Application.Workbooks.Add 
39.
            'ein neues sheet hinzufügen 
40.
            Set oSheet = owb.Sheets.Add 
41.
               'Spalte 2 selektieren damit diese Spalte als Text definiert wird 
42.
                Columns("B:B").Select 
43.
                Selection.NumberFormat = "@" 
44.
                'Selektion aufheben 
45.
                Range("A1").Select 
46.
            'Für alle gefundenen Dateien in die Zelle i des Sheets den Dateinamen eintragen. 
47.
            For i = 0 To UBound(sFiles()) - 1 
48.
                oSheet.Cells(i + 1, 1) = sFiles(i)      'DateiName 
49.
                oSheet.Cells(i + 1, 2).Value = sSize(i) 'KBytes 
50.
            Next i 
51.
            Application.ScreenUpdating = True 'Aktualisierung wieder aktivieren 
52.
        End If 
53.
         
54.
fail: 
55.
Application.ScreenUpdating = True 'Aktualisierung wieder aktivieren 
56.
End Sub 
57.
'----------------------------- 
58.
Sub SucheHier(ByVal sFolder As String, ByVal sFiletype As String, ByRef oRetFiles() As String, ByRef oRetSize() As String, Optional ByVal SubFolder As Boolean = False) 
59.
'sFolder = sucheIn 
60.
'sFileType = sucheNach 
61.
'oRetFiles() = String Array für die gefundenen Dateien 
62.
'oRetSize() = String Array für die Dateigrößen-information 
63.
'SubFolder = Boolean Flag (default = False = keine Unterverzeichnisse durchsuchen) 
64.
'----------------------------- 
65.
 
66.
On Error GoTo fail 'bei einem Fehler gehts bei fail: weiter 
67.
Dim oFolder As Object 'Folder 
68.
Dim oFile As Object 'File 
69.
 
70.
       'Für jeden file in dem Folder 
71.
        For Each oFile In fso.GetFolder(sFolder).Files 
72.
            'nur wenn der dateiname = *.blabla oder *.* (alle) ist. 
73.
            If LCase("*." & fso.GetExtensionName(oFile.ShortName)) = LCase(sFiletype) Or sFiletype = "*.*" Then 
74.
               'Rückgabe Array vergrößern 
75.
                ReDim Preserve oRetFiles(UBound(oRetFiles()) + 1) 
76.
                ReDim Preserve oRetSize(UBound(oRetSize()) + 1) 
77.
                     'Hinzufügen ins Array 
78.
                      oRetFiles(UBound(oRetFiles()) - 1) = oFile.ShortPath 
79.
                      oRetSize(UBound(oRetSize()) - 1) = oFile.Size / 1024 
80.
            End If 
81.
        Next 
82.
         
83.
       'Falls der aktuelle Ordner weitere Ordner beinhaltet ( ....subFolders.Count > 0) 
84.
       'und der Parameter SubFolder = True übergeben worden ist ab in einer Rekursion bis kein Ordner mehr vorhanden ist 
85.
        If SubFolder = True And fso.GetFolder(sFolder).SubFolders.Count > 0 Then 
86.
           For Each oFolder In fso.GetFolder(sFolder).SubFolders 
87.
              'Rekursion 
88.
               Call SucheHier(oFolder.Path, sFiletype, oRetFiles, oRetSize, SubFolder) 
89.
           Next oFolder 
90.
        End If 
91.
 
92.
fail: 
93.
'Falls mal was daneben geht 
94.
End Sub
Bitte warten ..
Mitglied: kruder77
15.09.2007 um 07:31 Uhr
Hi Micha,

vielen Dank für deine Hilfe!!! Klappt wunderbar - bin leider ebengerade erst zum ausprobieren gekommen. Kannst Du mir vielleicht ein Buch empfehlen welches mir bei VBA die Grundlagen relativ gut vermittelt? Ich nehme mal an, dass Du eines durchgearbeitet hast...

Danke & ein schönes We

Kruder
Bitte warten ..
Mitglied: ISpawn
18.09.2007 um 07:34 Uhr
Hi,

reine VBA Bücher bringen meineserachtens nicht soviel, wenn schon solltest du eher nach den VB6 Büchern suchen und dir damit kleine SpielProggies machen.

Wenn du das geschafft hast und dich mit den Methoden / Properties auskennst, brauchst du 'meistens' nur noch den Richtigen Verweis setzen und im Objekt-Katalog (F2 im VBA Editor) dir anschauen wozu zb ein Excel.Application Objekt alles in der Lage ist.....

Gruß
Micha
Bitte warten ..
Ähnliche Inhalte
Windows Server

Anmeldeskripte in Excel-Tabelle speichern

gelöst Frage von MorpheussuhlWindows Server2 Kommentare

Hallo liebes Forum, ich habe ein kleineres Problem und hoffe auf eine schnelle antwort. Und zwar habe ich in ...

Microsoft Office

Excel 2010 Makro Ausgabe in bestimmter Tabelle ausgeben

gelöst Frage von dressaMicrosoft Office6 Kommentare

Hallo miteinander. Ich habe im VBA von Excel 2010 ein eigenes Modul erstellt, in dem der Kode drinsteht, um ...

Microsoft Office

Excel Makro

Frage von maloh1984Microsoft Office4 Kommentare

Hallo Habe ein Problem, ein Kunde der hat Excellisten mit Makro die lassen sich öffnen aber die Buttons reagieren ...

Microsoft Office

Excel-Makro

gelöst Frage von yuki13Microsoft Office7 Kommentare

Hallo Zusammen!! :-) Ich bin nicht so fit in Excel Makros und wollte mich hier erkundigen, ob mir jemand ...

Neue Wissensbeiträge
Datenschutz

Die Datenkrake Google verlängert ihr Arme mal wieder ein wenig, automatische Anmeldung

Tipp von magicteddy vor 17 StundenDatenschutz2 Kommentare

Benutzer mit einem Google Account und gespeicherten Zugangsdaten werden von chrome 69 automatisch bei Google angemeldet, natürlich alles zum ...

Verschlüsselung & Zertifikate
Meine Wissenssammlung zu Bitlocker
Erfahrungsbericht von DerWoWusste vor 1 TagVerschlüsselung & Zertifikate3 Kommentare

Die Motivation für diesen Beitrag waren die vielen Posts rund um dieses Thema, die deutlich machen, wie viele Einzelaspekte ...

E-Mail
Email-Apps und Verhalten bei Pop3
Erfahrungsbericht von kfranzk vor 3 TagenE-Mail11 Kommentare

Hallo Freunde, da mir mein diesbezüglicher Faden als gelöst markiert wurde, muss ich hier neu aufsetzen. Ich arbeite bewusst ...

Hyper-V

Optimiertes Ubuntu per Microsoft Hyper-V-Schnellerstellung verfügbar

Anleitung von Frank vor 3 TagenHyper-V1 Kommentar

Für Microsofts Virtualisierungssoftware Hyper-V ist ab sofort auch ein optimiertes Ubuntu 18.04.1 LTS verfügbar. In der "Hyper-V-Schnellerstellung" App, die ...

Heiß diskutierte Inhalte
Hardware
Sophos SG135 - Routing
gelöst Frage von Xaero1982Hardware22 Kommentare

Moin Zusammen, ich ersetze gerade nen alten Cisco DualWAN Router durch eine SG 135. Ich muss bestimmte Ziele über ...

E-Mail
Welche ist die beste E-Mail Groupware für die Zukunft?
Frage von ITCrowdSupporterE-Mail18 Kommentare

Guten Tag allerseits :) Ich möchte mich mit einer Frage heute mal an die Schwarmintelligenz wenden. Aktuell befasse ich ...

Windows Server
In-Place Upgrade von Windows Server 2008 R2 Datacenter zu Windows Server 2016 Datacenter (Zwischenschritt über 2012 R2)
gelöst Frage von TowerpleaseWindows Server16 Kommentare

Hallo Administratoren, Wir haben uns vor ein paar Monaten Windows Server 2016 Datacenter Lizenzen gekauft und wollen nun unsere ...

Windows 7
Mit gpedit gesetzte Richtlinien in rsop.msc nicht definiert und ausgegraut
gelöst Frage von 137006Windows 715 Kommentare

Hallo zusammen, anfangs verweise ich fairerweise daruf dass ich dieses Thema bereits im Forum angeschnitten habe, nachdem ich hier ...