online 1
gast (50)

/ Forum / Skripte(PHP,ASP,Perl...)

Skripte(PHP,ASP,Perl...)Skripte(PHP,ASP,Perl...)

Fragevon sproe vom 19.01.2019, 09:36 Options

DateModified als zusätzliche Spalte

Hallo an alle

Ich bin, was Makroprogrammierung angeht, völlig unwissend. Nun konnte ich ein Excel-Makro finden, das es mir ermöglicht, aus vielen Dateien den Namen, den Pfad, die Zeit seit Erstellung und seit letztem Zugriff und die Dateigröße auszulesen. Leider fehlt mir nun noch das Datum der letzten Änderung (DateModified). Ich wäre Euch sehr dankbar, wenn mir jemand die notwendigen Änderungen verraten könnte. Die Codes lauten:

***** DieseArbeitsmappe (Code) *****

Private Sub Workbook_Open()
Sheets("Tabelle1").OnDoubleClick = "DieseArbeitsmappe.StartIt"
End Sub
Sub StartIt()
Set MyShell = CreateObject("WScript.Shell")
spalte = ActiveCell.Column
zeile = ActiveCell.Row
If zeile = 1 Then Exit Sub
If spalte > 6 Then Exit Sub
If zeile = 2 Then
Cells(zeile, spalte).Select
If Selection.Interior.ColorIndex = 16 Then
Range("A2:F2").Select
Selection.Interior.ColorIndex = 16
Cells(zeile, spalte).Select
Selection.Interior.ColorIndex = 15
Range("A3").Select
Range(Selection, Cells.SpecialCells(xlCellTypeLastCell)).Select
If spalte = 2 Then
Selection.Sort Key1:=Range("B3"), Order1:=xlDescending, Key2:=Range("A3") _
, Order2:=xlAscending, Header:=xlNo
Else
Selection.Sort Key1:=Cells(zeile + 1, spalte), Order1:=xlDescending, Header:=xlNo
End If
Else
Range("A2:F2").Select
Selection.Interior.ColorIndex = 16
Cells(zeile, spalte).Select
Selection.Interior.ColorIndex = 16
Range("A3").Select
Range(Selection, Cells.SpecialCells(xlCellTypeLastCell)).Select
If spalte = 2 Then
Selection.Sort Key1:=Range("B3"), Order1:=xlAscending, Key2:=Range("A3") _
, Order2:=xlAscending, Header:=xlNo
Else
Selection.Sort Key1:=Cells(zeile + 1, spalte), Order1:=xlAscending, Header:=xlNo
End If
End If
Range("A2").Select
Exit Sub
End If

datei = Chr(34) & Cells(zeile, 6).Value & Chr(34)
On Error Resume Next
If spalte = 1 Then
If zeile > 2 Then MyShell.Run datei
End If
If spalte = 6 Then
MyShell.Run "explorer.exe /select," & datei
End If
If spalte = 2 Then
If ActiveSheet.FilterMode = True Then
ActiveSheet.ShowAllData
Else
temp = "=" & Cells(zeile, spalte).Value
Range("A3").Select
Range(Selection, Cells.SpecialCells(xlCellTypeLastCell)).Select
Selection.AutoFilter Field:=spalte, Criteria1:=temp, Operator:=xlAnd
End If
End If
If spalte = 3 Or spalte = 4 Or spalte = 5 Then
ActiveSheet.ShowAllData
temp = Cells(zeile, spalte).Value
unten = ">" & temp - 1
oben = "<" & temp * 2 + 1
Range("A3").Select
Range(Selection, Cells.SpecialCells(xlCellTypeLastCell)).Select
Selection.AutoFilter Field:=spalte, Criteria1:=unten, Operator:=xlAnd, Criteria2:=oben
End If
Range("A2").Select
End Sub

***** Tabelle 1 (Code) *****

Private Sub CommandButton1_Click()
Set MyShell = CreateObject("WScript.Shell")
spalte = ActiveCell.Column
zeile = ActiveCell.Row
On Error Resume Next
If spalte = 1 And zeile > 2 Then
For Each zelle In Selection
zeile = zelle.Row
If Rows(zeile).Hidden = False Then
spalte = zelle.Column
datei = Cells(zeile, 6).Value
MyShell.Run Chr(34) & datei & Chr(34)
End If
Next
End If
End Sub

Private Sub CommandButton2_Click()
Call NeuEinlesen
End Sub

Private Sub CommandButton3_Click()
On Error Resume Next
ActiveSheet.ShowAllData
temp = InputBox("Einen oder zwei Begriffe eingeben (Logisches UND)." & Chr(13) & "Leerzeichen trennt zwei Strings." & Chr(13) & Chr(13) & "Beispiel: Brief 2002", "")
If temp = "" Then Exit Sub
Range("A3").Select
Range(Selection, ActiveCell.SpecialCells(xlLastCell)).Selection
i = InStr(temp, " ")
If i = 0 Then
suche = "*" & temp & "*"
Selection.AutoFilter Field:=6, Criteria1:=suche, Operator:=xlAnd
Else
suche = "*" & Left(temp, i - 1) & "*"
ferner = "*" & Mid(temp, i + 1) & "*"
Selection.AutoFilter Field:=6, Criteria1:=suche, Operator:=xlAnd, Criteria2:=ferner
End If
Range("A2").Select
End Sub

Private Sub SpinButton1_SpinUp()
z = ActiveWindow.Zoom
z = z + 5
ActiveWindow.Zoom = z
End Sub

Private Sub SpinButton1_SpinDown()
z = ActiveWindow.Zoom
z = z - 5
ActiveWindow.Zoom = z
End Sub



***** Module 1 (Code) *****

im n
Dim dname(65000)
Dim dordner(65000)
Dim dcreated(65000)
Dim dpfad(65000)
Dim dlast(65000)
Dim dsize(65000)
Sub NeuEinlesen()
Set MyShell = CreateObject("wscript.shell")
Set MyFiles = CreateObject("Scripting.FileSystemObject")
Set Appshell = CreateObject("Shell.Application")
On Error Resume Next
Set AppFolder = Appshell.BrowseForFolder(0, "", &H1, 17)
verz = AppFolder.ParentFolder.ParseName(AppFolder.Title).Path
If Err.Number > 0 Then
i = InStr(AppFolder, ":")
verz = Mid(AppFolder, i - 1, 1) & ":\"
End If
If verz = "" Then Exit Sub

If n = 0 Then
Range("A3").Select
Range(Selection, Cells.SpecialCells(xlCellTypeLastCell)).ClearContents
End If

Set drive = MyFiles.GetFolder(verz)
Set dat = drive.Files
For Each datei In dat
n = n + 1
dname(n) = datei.Name
dordner(n) = drive.Path
dpfad(n) = datei.Path
dsize(n) = datei.Size
dcreated(n) = datei.datecreated
dlast(n) = datei.DateLastAccessed
Next
Search drive
For x = 1 To n
Cells(x + 2, 1).Value = dname(x)
Cells(x + 2, 2).Value = dordner(x)
Cells(x + 2, 3).Value = Int(dsize(x) / 1024)
Cells(x + 2, 4).Value = DateValue(Date) - DateValue(dcreated(x))
Cells(x + 2, 5).Value = DateValue(Date) - DateValue(dlast(x))
Cells(x + 2, 6).Value = dpfad(x)
Next
Application.ScreenUpdating = True
m = MsgBox(n & " Dateien eingetragen." & Chr(13) & "Weitere Daten hinzufügen?", 4)
If m = 6 Then NeuEinlesen

Range("A3").Select
Range(Selection, Cells.SpecialCells(xlCellTypeLastCell)).Select
Selection.Sort Key1:=Range("B3"), Order1:=xlAscending, Key2:=Range("A3") _
, Order2:=xlAscending, Header:=xlNo
Range("A2:F2").Select
With Worksheets("Tabelle1")
If Not .AutoFilterMode Then
Selection.AutoFilter
End If
End With
Range("A2").Select
n = 0
End Sub

Sub Search(ByVal StartFolder)
Set Weitere = StartFolder.SubFolders
For Each AktuellerOrdner In Weitere
Set dat = AktuellerOrdner.Files
For Each datei In dat
n = n + 1
dname(n) = datei.Name
dordner(n) = AktuellerOrdner.Path
dpfad(n) = datei.Path
dsize(n) = datei.Size
dcreated(n) = datei.datecreated
dlast(n) = datei.DateLastAccessed
Next
Search AktuellerOrdner
Next
End Sub

Vielen Dank für Eure Hilfe!
Sven


Antwort schreiben

Ähnliche Themen

Excel Formel Wenn_Dann ?
Petra1205  01.05.2007 - 124 Hits - 2 Antworten

In Works 8.5 speichern nicht mehr möglich
EVI20  23.12.2007 - 92 Hits -

Berechnung nur wenn Datum in Zelle
spalte  10.02.2008 - 93 Hits - 5 Antworten

Hinweis

Diese Frage ist schon etwas älter, Sie können daher nicht mehr auf sie antworten. Sollte Ihre Frage noch nicht gelöst sein, stellen Sie einfach eine neue Frage im Forum..

Neue Einträge

Version: supportware 1.9.150 / 10.06.2022, Startzeit:Mon Jan 26 01:23:17 2026