• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

controle of bestanden bestaan

Status
Niet open voor verdere reacties.

Ricky2

Gebruiker
Lid geworden
16 mei 2008
Berichten
20
In een stukje VBA code moet ik een controle doen of een tiental aantal bestanden ook aanwezig zijn in een vooraf vastgestelde folder.

De bestandsnamen zijn altijd identiek, en ook de naam van de folder is vaststaand.

Kortom ik wil in de bestandsnamen in een Array zetten en vervolgens met een 'loop' controleren of alle bestanden ook fysiek aanwezig zijn. Het is dus voldoende om een melding te geven als 1 of meer bestanden niet aanwezig zijn.

Ik heb een beetje lopen knutselen met VBA code, doch ik krijg het niet echt 100% werkend.:evil:

Moet toch eenvoudig zijn ?!:eek:
Wie kan mij een handje helpen ?;)
 
Welke code heb je al op dit moment? Dan kunnen we van daar af verder werken.
 
Dit is de code,


Code:
Dim ImportPath As String

Sub Import_Click()

ImportPath = TextBox1.Value
If Not Right(ImportPath, 1) = "\" Then ImportPath = ImportPath & "\"

If Len(Dir(ImportPath, vbDirectory)) = 0 Then
    MsgBox "Het pad " & ImportPath & " bestaat niet." & vbNewLine & "Het Report kan geen tabellen importeren", vbExclamation, "Foutmelding"
Else
    
    If FilesExist(Array(ImportPath & bestand1.csv, ImportPath & bestand2.csv, ImportPath & bestand3.csv)) Then
       Import_data
       MsgBox "Alle tabellen zijn (opnieuw)gevuld"
    Else
       MsgBox "Fout !! Niet alle importtabellen zijn aanwezig"
    End If

End If

End Sub
 
Laatst bewerkt:
Welke code gebruik je voor de functie FilesExist die je aanroept?
 
Laatst bewerkt:
Daar gaat het nu om!

Ik heb een stukje vba gemaakt waarbij de functie (ik noem hem in bovenstaand voorbeeld "FileExist") nog in elkaar geknutseld moet worden.

Het gaat mij concreet om een stukje VBA waarbij een aantal vooraf bekende bestandsnamen ( in een vooraf bekende map) gecontroleerd worden op aanwezigheid.
Zodra er 1 ontbreekt..... moet de code onderbroken worden.

Ik dacht.... een Array..... en toen ?!:eek:
 
Ha ok. Nu ben ik mee. Hieronder voorbeeldcode die je kunt gebruiken:

Code:
Function FilesExist(arrBestanden As Variant) As Boolean
Dim i As Long

For i = LBound(arrBestanden) To UBound(arrBestanden)
    If Len(Dir(arrBestanden(i))) = 0 Then
        FilesExist = False
        Exit Function
    Else
        FilesExist = True
    End If
Next i
    
End Function

Je moet je aanroep wel nog veranderen. Bestand1.csv is geen variabele, daarom dien je die tussen quotes te zetten voor mee te geven aan de array.

Zoals:

Code:
If FilesExist(Array(ImportPath & [COLOR="Red"]"[/COLOR]bestand1.csv[COLOR="red"]"[/COLOR], ImportPath & [COLOR="red"]"[/COLOR]bestand2.csv[COLOR="red"]"[/COLOR], ImportPath & [COLOR="red"]"[/COLOR]bestand3.csv[COLOR="red"]"[/COLOR])) Then
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan