Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Prüfen, ob die Dateien vorhanden sind?

Prüfen, ob die Dateien vorhanden sind?
21.02.2020 12:23:49
Sergej
Hallo Leute,
wie kann ich bitte per VBA überprüfen, ob die Dateien (vollständiger Pfad), die ich im Zellenbereich A3:A100 habe vorhanden sind?
Bsp. P:\Daten\Projekte\2020\201508 Grundschule Herder\Beispiel.txt
Wenn eine Datei nicht vorhanden ist, dann soll in einem MsgBox alle Dateien (ohne Pfad sprich nur Dateiname Bsp. Dokumentationsliste Berlin.xls) unterander angezeigt werden, die nicht gefunden wurden. Zusätzlich soll die fehlende Datei in der Tabelle sprich Zelle in rot eingefärbt werden.
Vielen herzlichen Dank im Voraus.
Gruß,
Sergej
Anzeige

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Prüfen, ob die Dateien vorhanden sind?
21.02.2020 12:26:23
onur
Schwer, ohne die Datei zu haben.
AW: Prüfen, ob die Dateien vorhanden sind?
21.02.2020 12:42:34
Rudi
Hallo,
teste mal:
Sub DateienPruefen()
Dim rngC As Range, objERR As Object, vntERR
Set objERR = CreateObject("scripting.dictionary")
Range("A3:A100").Font.ColorIndex = xlNone
For Each rngC In Range("A3:A100")
If Len(rngC) Then
If Len(Dir(rngC)) = 0 Then
vntERR = Split(rngC, "\")
objERR(vntERR(UBound(vntERR))) = 0
rngC.Font.Color = 255
End If
End If
Next rngC
If objERR.Count Then
MsgBox Join(objERR.keys, vbLf), , "Fehlende Dateien"
End If
End Sub

Gruß
Rudi
Anzeige
AW: Prüfen, ob die Dateien vorhanden sind?
21.02.2020 15:28:13
Sergej
Hallo Rudi,
Vielen herzlichen Dank...
Beste Grüße,
Sergej
AW: Prüfen, ob die Dateien vorhanden sind?
21.02.2020 12:48:33
MatthiasG
Hallo Sergej,
mein Vorschlag:

Sub TestVorhanden()
Dim r1 As Range, z As Range
Dim msg As String
Set r1 = Worksheets("Tabelle1").Range("A3:A100") ' anpassen
For Each z In r1
With z
If .Value  "" Then ' Leerzellen überspringen
If Dir(.Value) = "" Then
msg = msg & Mid(.Value, InStrRev(.Value, "\") + 1) & vbLf
.Interior.ColorIndex = 3
End If
End If
End With
Next z
If Len(msg) > 0 Then MsgBox msg, vbCritical, "Nicht gefunden:"
End Sub

Gruß Matthias
Anzeige
AW: Prüfen, ob die Dateien vorhanden sind?
21.02.2020 15:27:58
Sergej
Hallo Matthias,
Vielen herzlichen Dank...
Beste Grüße,
Sergej
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Dateien in Excel mit VBA überprüfen


Schritt-für-Schritt-Anleitung

Um zu prüfen, ob Dateien in einem bestimmten Zellbereich vorhanden sind, kannst Du den folgenden VBA-Code verwenden. Dieser Code überprüft die Dateien in den Zellen A3:A100 und färbt fehlende Dateien rot ein.

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.
  2. Klicke auf Einfügen und wähle Modul, um ein neues Modul zu erstellen.
  3. Füge den folgenden Code in das Modul ein:
Sub DateienPruefen()
    Dim rngC As Range, objERR As Object, vntERR
    Set objERR = CreateObject("scripting.dictionary")
    Range("A3:A100").Font.ColorIndex = xlNone
    For Each rngC In Range("A3:A100")
        If Len(rngC) Then
            If Len(Dir(rngC)) = 0 Then
                vntERR = Split(rngC, "\")
                objERR(vntERR(UBound(vntERR))) = 0
                rngC.Font.Color = 255 ' Rot färben
            End If
        End If
    Next rngC
    If objERR.Count Then
        MsgBox Join(objERR.keys, vbLf), , "Fehlende Dateien"
    End If
End Sub
  1. Schließe den VBA-Editor und kehre zu Excel zurück.
  2. Führe das Makro aus, um zu prüfen, ob die Dateien vorhanden sind.

Häufige Fehler und Lösungen

  • Fehler: Fehler beim Ausführen des Makros

    • Lösung: Stelle sicher, dass Du die Makros in Excel aktiviert hast. Gehe zu Datei > Optionen > Sicherheitscenter > Einstellungen für das Sicherheitscenter > Makroeinstellungen, und aktiviere die Makros.
  • Fehler: MsgBox zeigt keine fehlenden Dateien an

    • Lösung: Überprüfe, ob die Zellinhalte tatsächlich vollständige Dateipfade sind. Ein unvollständiger oder falsch formatierter Pfad führt dazu, dass das Skript die Datei nicht finden kann.

Alternative Methoden

Wenn Du kein VBA verwenden möchtest, kannst Du auch die Funktion DATEI in Excel nutzen. Diese Funktion kann jedoch nur für eine Datei verwendet werden und gibt FEHLER! zurück, wenn die Datei nicht vorhanden ist.

Verwende die folgende Formel in einer Zelle, um zu prüfen, ob eine Datei existiert:

=IF(ISERROR(DATEIF(A3)), "Nicht vorhanden", "Vorhanden")

Diese Methode ist allerdings weniger flexibel und nicht für große Bereiche geeignet.


Praktische Beispiele

Hier sind zwei Beispiele, wie Du den VBA-Code anpassen kannst:

  1. Anpassen des Zellbereichs: Ändere Range("A3:A100") in den gewünschten Bereich, z.B. Range("B5:B50").

  2. Ändern der Farbe: Um die Farbe der fehlenden Dateien zu ändern, ändere die Zeile rngC.Font.Color = 255 in eine andere RGB-Farbe, z.B. rngC.Font.Color = RGB(255, 0, 0) für Rot.


Tipps für Profis

  • Verwende Application.ScreenUpdating = False am Anfang des Makros, um das Flackern des Bildschirms zu verhindern:
Application.ScreenUpdating = False
  • Schalte es am Ende des Makros wieder ein:
Application.ScreenUpdating = True
  • Kommentiere Deinen Code gut, damit Du später leichter nachvollziehen kannst, was jeder Teil des Codes tut.

FAQ: Häufige Fragen

1. Kann ich den Code auch in Access verwenden? Ja, die Logik ist ähnlich, aber Du musst den Code für Access VBA anpassen, um die spezifischen Access-Objekte zu verwenden.

2. Was passiert, wenn der Zellbereich leer ist? Das Makro überspringt leere Zellen und zeigt nur die fehlenden Dateien an.

3. Funktioniert dieser Code in allen Excel-Versionen? Ja, der Code sollte in allen modernen Excel-Versionen funktionieren, die VBA unterstützen.

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