Thema Datum  Von Nutzer Rating
Antwort
07.08.2023 13:32:24 Sven
Solved
07.08.2023 14:20:35 Gast49419
NotSolved
07.08.2023 15:22:44 Sven
NotSolved
07.08.2023 17:50:15 Gast78637
NotSolved
07.08.2023 18:16:20 Sven
NotSolved
Blau Ein Makro soll alle Unterordner mit einbeziehen
07.08.2023 18:34:19 Gast59948
NotSolved
08.08.2023 06:58:57 Sven
NotSolved
08.08.2023 11:16:16 Gast40343
NotSolved
14.08.2023 15:05:32 Sven
NotSolved
15.08.2023 00:03:25 Gast27989
NotSolved
15.08.2023 08:25:11 Sven
NotSolved
15.08.2023 13:24:52 Gast20621
NotSolved
15.08.2023 14:27:50 Sven
NotSolved
16.08.2023 10:01:05 Gast11842
NotSolved
16.08.2023 12:09:31 Sven
NotSolved
16.08.2023 18:39:13 Gast50512
NotSolved
06.09.2023 11:24:56 Sven
NotSolved
07.09.2023 18:03:43 Gast32657
NotSolved
08.09.2023 11:25:14 sven
NotSolved
08.09.2023 14:47:37 Gast54751
NotSolved
08.09.2023 15:05:17 Gast74933
NotSolved
08.09.2023 17:41:50 Gast28898
NotSolved
11.09.2023 07:44:00 Sven
NotSolved
11.09.2023 14:06:32 Gast56381
NotSolved
07.08.2023 17:10:58 ralf_b
Solved
07.08.2023 18:09:35 Sven
NotSolved
07.08.2023 18:12:02 ralf_b
NotSolved
07.08.2023 18:17:57 Sven
NotSolved

Ansicht des Beitrags:
Von:
Gast59948
Datum:
07.08.2023 18:34:19
Views:
191
Rating: Antwort:
  Ja
Thema:
Ein Makro soll alle Unterordner mit einbeziehen

Danke für deine Hilfe. Das sieht für mich alles völlig wild und kompliziert aus.

Wenn du versuchst alles auf einmal zu verstehen, dann mag das zutreffen.

Betrachte eine Methode für sich und ignoriere den Rest.

Beispiel:

Sub Example()
   If SearchFiles(strSelectedPath, colFiles) = 0 Then
     '...
   End If
End Sub

Search Files hat zwei Parameter und gibt einen Wert zurück. Den Namen nach ist der erste Parameter der vom nutzer ausgewählte Pfad und das zweite ist eine Collection mit Datei-Treffern. Der Rückgabewert ist die Anzahl der Treffer.

WIE diese Funktion an diese Informationen gelangt und sie dir schlussendlich liefern kann, ist dir an dieser Stelle hier völlig egal. Du bekommst sie einfach, Punkt!

Das gleiche gilt für alle Funktionen, auch

Private Function CheckFile(FullFilename As String) As Boolean
  CheckFile = Right$(FullFilename, 4) = ".png"
End Function

Der Zweck dieser Funktion ist es, anhand des ihr übergebenen Dateinamens zu entscheiden, ob damit alles ok ist, oder nicht. Mehr interessiert dich hier an der Stelle nicht. Auch nicht wer sie aufruft.

Betrachtest du dir später

Private Function SearchFiles(Path As String, FoundFiles As VBA.Collection) As Long

dann wirst du CheckFile() dort vorfinden. An der Stelle interessiert dich aber nicht was diese Methode intern macht, es ist nur wichtig, dass sie die Information liefert, obdie Datei ein Treffer ist, oder nicht. Worauf die da drin genau schaut, ist für die Funktion SearchFiles() komplett wurscht!

Kurzum: Zerlege dein großes Problem in kleinere Probleme und betrachte jedes für sich. Allein dadurch schreibst du bereits übersichtlichen, wartbaren Code.

 

Kurze Verständnisfrage:

strSelectedPath = "C:\PP\Standort\Abteilung\Bereich\Bilder"

Kann ich auch durch meinen code ersetzen? Mir wäre es wichtig die Ordner manuell auszuwählen. 

Klar kannst du das. Ich dachte das wäre offensichtlich und war deshalb zu faul. ;o)

Aus

Dim strSelectedPath As String
   
  strSelectedPath = "C:\PP\Standort\Abteilung\Bereich\Bilder" '< bei dir kommt das durch den Auswahl-Dialog herein

wird

Set xFDObject = Application.FileDialog(msoFileDialogFolderPicker)
With xFDObject
    .Title = "Bitte den Ordner mit den Bildern wählen:"
    .InitialFileName = Application.ActiveWorkbook.Path
    .Show
    .AllowMultiSelect = False
End With
 
'Nur wenn ein Ordner angewählt wurde
If xFDObject.SelectedItems.Count > 0 Then
    strSelectedPath = xFDObject.SelectedItems.Item(1)
Else
    MsgBox "Keinen Ordner Ausgewählt", vbInformation Or vbOKOnly, "/ Information"
    Exit Sub
End If

 

Grüße


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
07.08.2023 13:32:24 Sven
Solved
07.08.2023 14:20:35 Gast49419
NotSolved
07.08.2023 15:22:44 Sven
NotSolved
07.08.2023 17:50:15 Gast78637
NotSolved
07.08.2023 18:16:20 Sven
NotSolved
Blau Ein Makro soll alle Unterordner mit einbeziehen
07.08.2023 18:34:19 Gast59948
NotSolved
08.08.2023 06:58:57 Sven
NotSolved
08.08.2023 11:16:16 Gast40343
NotSolved
14.08.2023 15:05:32 Sven
NotSolved
15.08.2023 00:03:25 Gast27989
NotSolved
15.08.2023 08:25:11 Sven
NotSolved
15.08.2023 13:24:52 Gast20621
NotSolved
15.08.2023 14:27:50 Sven
NotSolved
16.08.2023 10:01:05 Gast11842
NotSolved
16.08.2023 12:09:31 Sven
NotSolved
16.08.2023 18:39:13 Gast50512
NotSolved
06.09.2023 11:24:56 Sven
NotSolved
07.09.2023 18:03:43 Gast32657
NotSolved
08.09.2023 11:25:14 sven
NotSolved
08.09.2023 14:47:37 Gast54751
NotSolved
08.09.2023 15:05:17 Gast74933
NotSolved
08.09.2023 17:41:50 Gast28898
NotSolved
11.09.2023 07:44:00 Sven
NotSolved
11.09.2023 14:06:32 Gast56381
NotSolved
07.08.2023 17:10:58 ralf_b
Solved
07.08.2023 18:09:35 Sven
NotSolved
07.08.2023 18:12:02 ralf_b
NotSolved
07.08.2023 18:17:57 Sven
NotSolved