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

VBA : Liste User in einen Ordner

VBA : Liste User in einen Ordner
24.01.2019 11:04:10
Lukas
Guten morgen :-)
ich hätte da mal ein Anliegen und wollte mach fragen, ob es überhaupt geht.
Wir haben einen Ordner: C:Lager/Abteilung/Meldungen
Wir besitzen da ein Formular. ( Meldungen.xlsx ). Dieses Formular füllen wir aus und Speichern es unter Namen ab.
z.b. HansMustermann_24012019, PeterPan_20012019, PeterPan_24122018
Ich hätte gerne eine Auswertung wie oft und welchen Datum drinsteht.
Also die Datei heißt " Auswertung.xlxm":
Spalte A = Name
Spalte B = Datum
Spalte C = Häufigkeit
Also
HansMustermann.....24.01.2019....1
PeterPan...........24.12.2018....2
PeterPan...........20.01.2019....2
wäre sowas möglich?
Danke an alle
Lukas

17
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA : Liste User in einen Ordner
24.01.2019 11:49:20
Sepp
Hallo Lukas,
du willst zählen wie viele Dateien zum jeweiligen Namen im Ordner sind?
Eine Datei 'PeterPan_24122018' kann es nur einmal geben, woher soll die 2 in deinem Beispiel kommen?
 ABCDEF
1Gruß Sepp
2
3

Anzeige
AW: VBA : Liste User in einen Ordner
24.01.2019 13:38:38
Lukas
Hallo,
die Zahl zwei soll dann kommen weil PeterPan zwei Dateien hat. ( Egal welches Datum )
AW: VBA : Liste User in einen Ordner
24.01.2019 14:49:59
Sepp
Hallo Lukas,
Sub countFilesPerName()
  Dim strFile As String, strPath As String, varFiles() As Variant, varResult() As Variant
  Dim lngIndex As Long, lngN As Long

  strPath = "D:\Downloads\forum" 'Verzeichnis - Anpassen! 

  If Right(strPath, 1) <> "\" Then strPath = strPath & "\"

  strFile = Dir(strPath & "*_*.xls*", vbNormal)

  Do While Len(strFile)
    Redim Preserve varFiles(lngN)
    varFiles(lngN) = Split(strFile, "_")(0)
    lngN = lngN + 1
    strFile = Dir
  Loop
  If lngN > 0 Then
    Redim Preserve varResult(1 To lngN, 1 To 2)
    lngN = 0
    For lngIndex = 1 To Ubound(varFiles)
      If IsError(Application.VLookup(varFiles(lngIndex), varResult, 1, 0)) Then
        lngN = lngN + 1
        varResult(lngN, 1) = varFiles(lngIndex)
        varResult(lngN, 2) = Application.Count(Application.Match(varFiles, Array(varFiles(lngIndex)), 0))
      End If
    Next
    With Sheets("Tabelle1") 'Ausgabeblatt - Anpassen! 
      .Range("A2:B" & .UsedRange.Rows.Count) = ""
      If lngN > 0 Then .Range("A2").Resize(lngN, 2) = varResult
    End With
  End If
End Sub

VBA/HTML-CodeConverter, AddIn für Office 2002-2016 - in VBA geschrieben von Lukas Mosimann. Projektbetreuung:RMH Software & Media

Code erstellt und getestet in Office 16 - mit VBAHTML 12.6.0


 ABCDEF
1Gruß Sepp
2
3

Anzeige
AW: VBA : Liste User in einen Ordner
25.01.2019 05:24:24
Lukas
Hallo Sepp,
bei dir geht es, leider fehlt die Trennung vom Datum. Ich sehe in mein Tabellenblatt nicht das Datum.
Es Soll ja heißen
Spalte A =Name
Spalte B = Datum
Spalte C = Wie oft.
Danke dir :-)
AW: VBA : Liste User in einen Ordner
25.01.2019 06:09:08
Sepp
Hallo Lukas,
und welches Datum soll dort stehen? Das von der ersten Datei oder von der zweiten oder...?
 ABCDEF
1Gruß Sepp
2
3

Anzeige
AW: VBA : Liste User in einen Ordner
25.01.2019 10:01:38
Lukas
Hallo
das Datum in der Datei.
gespeichert wird immer Name_Datum
also so.
HansMustermann_25012019
Dankeschön :-)
AW: VBA : Liste User in einen Ordner
25.01.2019 10:07:41
Sepp
Hallo Lukas,
also noch einmal von vorne.
Nehmen wir an, es gibt 2 Dateien. Dier erste heißt 'HansMustermann_25012019.xlsx' und die zweite 'HansMustermann_26012019.xlsx', welches Datum soll nun angezeigt werden?
 ABCDEF
1Gruß Sepp
2
3

Anzeige
AW: VBA : Liste User in einen Ordner
24.01.2019 12:59:13
ChrisL
Hi Lukas
Mal abgesehen von Sepp's Einwand.
Windows Start...
cmd.exe
Zum Verzeichnis navigieren...
cd Verzeichnis
Dateiliste aufrufen...
dir
Copy/Paste nach Excel und mit Text-in-Spalten formatieren.
cu
Chris
AW: VBA : Liste User in einen Ordner
24.01.2019 13:39:30
Lukas
Hallo Chris,
ich verstehe gerade nur Bahnhof.
Sorry aber ich VBA Anfänger.
Danke
AW: VBA : Liste User in einen Ordner
24.01.2019 15:17:59
ChrisL
Hi Lukas
Hat nix mit VBA zu tun. Nur ein schneller Weg, um mittels DOS-Befehlszeile eine Dateiliste zu erzeugen. Damit erledigt sich die Aufgabe manuell in rund 30 Sekunden. Man kann ja nicht immer für alles gleich ein Makro programmieren lassen ;)
cu
Chris
Anzeige
AW: VBA : Liste User in einen Ordner
25.01.2019 05:08:45
Lukas
Hallo Chris,
ich verstehe gerade nur Bahnhof.
Sorry aber ich VBA Anfänger.
Danke
AW: VBA : Liste User in einen Ordner
24.01.2019 14:30:34
PeterK
Hallo
Probier mal
Sub ReadDir()

    Dim FileName As String
    Dim FilePfad As String
    Dim MySplit() As String
    Dim MyDate As Date
    Dim cc As Long

    cc = 1

    FilePfad = "C:Lager\Abteilung\Meldungen\"  'Anpassen 
    FileName = Dir(FilePfad & "*.xlsx")

    Do While FileName <> ""
        MySplit = Split(FileName, ".")     ' .xlsx abtrennen 
        If FileName <> "Meldungen" Then
            MySplit = Split(MySplit(0), "_")    ' Name/Datum trennen 
            Worksheets("Tabelle2").Cells(cc, 1).Value = MySplit(0)    ' Name 
            If Len(MySplit(1)) = 8 Then
                MyDate = DateSerial(Mid(MySplit(1), 5, 4), Mid(MySplit(1), 3, 2), Mid(MySplit(1), 1, 2))    'Jahr,Monat,Tag 
                Worksheets("Tabelle2").Cells(cc, 2).Value = MyDate    ' Datum 
                Worksheets("Tabelle2").Cells(cc, 3).Formula = "=Countifs($A:$A,A" & cc & ")"
            Else
                MsgBox "falsches Datumsfomat: " & FileName
                cc = cc - 1
            End If
        End If
        FileName = Dir
        cc = cc + 1
    Loop
End Sub

VBA/HTML-CodeConverter, AddIn für Office 2002-2016 - in VBA geschrieben von Lukas Mosimann. Projektbetreuung:RMH Software & Media

Code erstellt und getestet in Office 15 - mit VBAHTML 12.6.0


Anzeige
AW: VBA : Liste User in einen Ordner
25.01.2019 05:26:26
Lukas
Hallo Peter,
besten Dank für deine Arbeit.
Leider kommt ein Fehler bei :
If Len(MySplit(1)) = 8 Then
Index außerhalb des gültigen Bereichs
Danke
AW: VBA : Liste User in einen Ordner
25.01.2019 10:02:35
PeterK
Hallo
Dann ist dein Dateiname nicht im Format NAME_Datum.xlsx (es darf nur ein Punkt bzw. ein "_" im Namen sein)
AW: VBA : Liste User in einen Ordner
25.01.2019 10:05:21
Lukas
Hallo Peter,
es wird immer so abgespeichert.
HansMustermann_23012018 ( es ist eine xslx Datei )
AW: VBA : Liste User in einen Ordner
25.01.2019 10:10:26
PeterK
Hallo
Füg einmal folgende Zeile im Code und schau wie der File wirklich heißt
    Do While FileName <> ""
        Worksheets("Tabelle2").Cells(cc, 4).Value = FileName ' nur zum testen 
        MySplit = Split(FileName, ".")     ' .xlsx abtrennen 

VBA/HTML-CodeConverter, AddIn für Office 2002-2016 - in VBA geschrieben von Lukas Mosimann. Projektbetreuung:RMH Software & Media

Code erstellt und getestet in Office 15 - mit VBAHTML 12.6.0


Anzeige
AW: VBA : Liste User in einen Ordner
25.01.2019 20:58:57
Lukas
Hallo Peter,
also die Dateien heißen alle so:
PeterPan_20012019
MaxMustermann_20012019
ich habe deine Code eingesetzt. wieder der gleiche Fehler.

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige