• 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.

Controleren op bestaand bestand

Status
Niet open voor verdere reacties.

RB_online

Gebruiker
Lid geworden
10 mrt 2005
Berichten
205
Ik gebruik een macro om een backup bestand te maken. Nu zoek ik een manier om eerst te kijken of een bestand bestaat en dan een inputbox oid te tonen waar je een alternatieve naam kunt ingeven of bijvoorbeeld de naam kunt uitbreiden met een 1 of zo.

René
 
Sub check()
Dim pathname As String
Dim fname As String

pathname = "c:\"
fname = "WINDOWS"

While fcheck(pathname, fname)
fname = InputBox("Geef een andere bestandsnaam", "Bestand bestaat al", fname)
Wend

MsgBox fname & " bestaat niet", vbOKOnly

End Sub

Function fcheck(pathname As String, fname As String) As Boolean

Dim exists As Boolean

exists = False

file = Dir(pathname, vbDirectory)

Do While file <> ""

If file = fname Then
exists = True
End If

file = Dir
Loop

fcheck = exists

End Function
 
dropl
Volgens mij was de formulering van mijn vraag niet helemaal juist. :o
De bedoeling was dat de macro keek of het bestand reeds bestond en zo niet dan moest mijn eigen macro doorgaan met opslaan. Indien het bestand wel bestond dan moest hij een melding geven dat er reeds een bestand is met die naam en een inputbox tonen voor een alternatieve naam

René
 
ja dat doet dit ook maar je moet even de hardgebakken pathname en fname aanpassen en die check() sub in een function veranderen. Gezien jouw vraag ging ik ervan uit dat jij wel wist hoe dat moet in vba.

dus zo:

Function check(pathname as String, fname as String) as String

While fcheck(pathname, fname)
fname = InputBox("Geef een andere bestandsnaam", "Bestand bestaat al", fname)
Wend

MsgBox fname & " bestaat niet en dit wordt nieuw aangemaakt, deze regel kan je verwijden", vbOKOnly

check = fname

End Function

Function fcheck(pathname As String, fname As String) As Boolean

Dim exists As Boolean

exists = False

file = Dir(pathname, vbDirectory)

Do While file <> ""

If file = fname Then
exists = True
End If

file = Dir
Loop

fcheck = exists

End Function

Dan kan je in je macro de functie check() alsvolgt gebruiken:

dim filename as String
filename = check("c:\jouwbackupdirectory", "denaamvandefilediemisschienalbestaat")
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan