Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Dateien auswählen

Forumthread: Dateien auswählen

Dateien auswählen
02.06.2024 10:54:33
philipp
Guten Morgen zusammen,
ich habe folgendes Makro gefunden und für mich angepasst:


Sub Explorer_MG_Dateien_Öffnen()
Dim strDatei, JZelle As String
JZelle = Range("B2").Value 'in b2 wird das aktuelle Jahr angezeigt
ChDrive "C:\"
Shell "Explorer.exe /e, C:\_philipp\__Daten\__Monat\" & JZelle & "\", vbNormalFocus
End Sub

Der Datei Explorer wird mit dem aktuellen Jahr geöffnet.
Jetzt wähle ich den Monat aus und alle Dateien werden angezeigt.
Ich möchte aber das nur die Anzahl der Excel Dateien in die aktuelle Zelle eingesetzt werden,
bekomme es leider nicht hin.

mfg philipp
Anzeige

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Habe was gefunden -)
02.06.2024 12:52:21
philipp
Hallo zusammen,
hatte nochmal rumgestöbert und habe was passendes gefunden.
mfg philipp


Sub MG_Dateien_zaehlen()


Dim datei As String
Dim pfad As String
Dim i As Long
'pfad = "c:\murks\"
Dim Zelle, JahrZelle, MonatZelle, suchMonat As String

Zelle = ActiveCell.text
MonatZelle = ActiveCell.text
JahrZelle = Range("B2").Value
suchMonat = ActiveCell.Offset(0, -1)

pfad = "C:\_philipp\__Daten\__Monat\" & JahrZelle & "\" & suchMonat & "\"

datei = Dir(pfad & "*.xls*")
i = 0
Do While datei > ""
i = i + 1
datei = Dir
Loop
'MsgBox ("Im Verzeichnis " & pfad & " sind " & i & " Dateien.")
ActiveCell.Offset(0, 0) = i
End Sub
Anzeige
AW: Habe was gefunden -)
02.06.2024 13:18:45
Oppawinni
Vielleicht 2 Hinweise dazu
1. Hier


Dim Zelle, JahrZelle, MonatZelle, suchMonat As String

wird nur suchMonat der Typ String zugewiesen.
Die übrigen Variablen erhalten ihren Typ erst nach Zuweisung eines Wertes oder Objekts.
Vielleicht ist dir das auch klar...
2. Es könnte vielleicht sein, dass ein Offset von 0 Zeilen und 0 Spalten nicht unbedingt notwendig ist?
ActiveCell.Offset(0, 0) = i

Anzeige
Oppawinni hast RECHT, danke für den Hinweis ! mfg philipp
02.06.2024 16:46:44
philipp
AW: Nein, die übrigen sind Variants
02.06.2024 17:20:30
Sulprobil
AW: Nein, die übrigen sind Variants
02.06.2024 18:00:17
Oppawinni
Richtig,
aber die Übrigen sind eben nicht als String deklariert.
Wenn man der Variant aber String zuweist, liefert VarType() den Typ String...

Es ging mir nur darum klar zu machen, dass mit
Dim A, B, C as String
eben nur die Variable C einen definierten Typ hat.
Wenn alle String sein sollen, dann wäre
Dim A As String, B As String, C As String
erforderlich.
Anzeige
AW: Nein, die übrigen sind Variants
02.06.2024 18:10:13
philipp
Hallo zusammen,
ich habe folgendes eingesetzt, ich bin nicht der Excel Spezialist.
Dim datei As Variant
Dim pfad As Variant
Dim Zelle As Variant
Dim JahrZelle As Variant
Dim MonatZelle As Variant

Dim suchMonat As String

Dim i As Long


was ist noch FALSCH ?

mfg philipp
Anzeige
AW: Nein, die übrigen sind Variants
02.06.2024 19:34:05
Oppawinni
Ich denke, dass es in deinem Fall vertretbar ist, wenn du da Variant nimmst.
Variant ist halt der speicherintensivste Variablentyp, von daher versuche ich den eher zu vermeiden.
Du hast offenbar auch überflüssige Variablen..
Ich würde es wahrscheinlich so machen,
wobei ich da bei String-Variablen den Präfix str verwendet habe.
Lies dazu vielleicht mal:
https://www.herber.de/vbabasics/0002.html
Die Verwendung dieser oder irgendwelcher spez. Konventionen ist zwar umstritten, aber meines Wissens durchaus gängige Praxis.
Zumindest dann, wenn mehrere Leute an einem Projekt arbeiten.

Sub MG_Dateien_zaehlen()


Dim strDatei As String, strPfad As String, strSuchMonat As String, strJahr As String
Dim i As Long

strJahr = Range("B2").Value
strSuchMonat = ActiveCell.Offset(0, -1).Value

strPfad = "C:\_philipp\__Daten\__Monat\" & strJahr & "\" & strSuchMonat & "\"

strDatei = Dir(strPfad & "*.xls*")
i = 0
Do While strDatei > ""
i = i + 1
strDatei = Dir
Loop
' MsgBox ("Im Verzeichnis " & strPfad & " sind " & i & " Dateien.")
ActiveCell.Value = i

End Sub
Anzeige
Oppawinni, danke nochmals !!! -)
02.06.2024 20:05:11
philipp
;

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige