Bestand zoeken - indien aanwezig verwijderen - anders terug

Status
Niet open voor verdere reacties.

Robert Smidt

Gebruiker
Lid geworden
26 mei 2009
Berichten
947
Hallo beste mensen,

Onderstaande code werkt goed wanneer het te verwijderen bestand in de betreffende map aanwezig is. Weliswaar komt het in sommige gevallen voor dat het bestand er niet meer staat waardoor een foumelding wordt gegeven. Daarom wil ik hier een code aan toevoegen dat eerst gekeken wordt of het te verwijderen bestand aanwezig is en zo ja, dat deze wordt verwijderd zo niet verder gaan zonder enige actie.

'Bestand verwijderen uit de oude map (Leesmap).

Kill "Q:\VBPROW62\B_NO_PROJECTEN\Startersbellen\startersbezoek\" & CStr(Range("J2").Value) & "\Leesmap\" & CStr(Range("A2").Value) & " " & CStr(Range("c2").Value) & " aangeboden om te lezen " & ".xls"

MsgBox ("De checklist is succesvol verwijderd uit de map: 'LEESMAP'!")

Alvast bedankt voor de medewerking

Groet, Robert
 
Je kunt met DIR controleren of een bestand bestaat of niet.

Code:
Dim MyFile
Dim MyPath as String
MyPath = "Q:\VBPROW62\B_NO_PROJECTEN\Startersbellen\startersbezoek\"
MyFile = Dir( MyPath & CStr(Range("J2").Value) & "\Leesmap\" & CStr(Range("A2").Value) & " " & CStr(Range("c2").Value) & " aangeboden om te lezen " & ".xls"
")
If MyFile <> "" Then 
     Kill MyPath & MyFile
     MsgBox ("De checklist is succesvol verwijderd uit de map: 'LEESMAP'!")
 
Helaas geen resultaat

Hoi Michel,

Bedankt voor de code echter geeft deze een foutmelding bij de regel:
Kill mypath & MyFile

Ook de ") op de volgende regel is volgens mij niet juist, deze heb achter de vorige regel geplaatst waardoor hij daar geen foutmelding meer geeft.

Misschien is het handig te vermelden dat ik met de '97 versie werk.
 
Tekst van een msgbox hoef je niet tussen haakjes te zetten; die heb ik dan ook van jouw code overgenomen. Bij mij doet Kill MyPath & MyFile het prima.... welke foutmelding krijg je dan?
 
foutmelding

Hij geeft geen foutmelding in tekst maar de regel wordt geel gearceerd
 
Bedankt voor de code echter geeft deze een foutmelding bij de regel:
Ik ga toch uit van wat je zelf schrijft ;)

Overigens hoef je pad en naam niet te scheiden, zoals ik in mijn voorbeeld heb gedaan. Als je je eigen complete string gebruikt in het DIR commando, en vervolgens in de KILL, dan moet het prima werken. Vanwege de lengte van de string heb ik het opgesplitst in pad en bestandsnaam.
 
verwijderd nu wel maar indien niet aanwezig toch weer een foutmelding

Helaas, ik heb de wijziging zoals jij hebt aangegeven doorgevoerd, zie hier onder, en verwijderd nu wel het bestand als het aanwezig is, echter wanneer deze niet aanwezig is krijg ik wederom de foutmelding in de tweede regel

If "Q:\VBPROW62\B_NO_PROJECTEN\Startersbellen\startersbezoek\" & CStr(Range("J2").Value) & "\Leesmap\" & CStr(Range("A2").Value) & " " & CStr(Range("c2").Value) & " aangeboden om te lezen " & ".xls" <> "" Then
Kill "Q:\VBPROW62\B_NO_PROJECTEN\Startersbellen\startersbezoek\" & CStr(Range("J2").Value) & "\Leesmap\" & CStr(Range("A2").Value) & " " & CStr(Range("c2").Value) & " aangeboden om te lezen " & ".xls"
MsgBox ("De checklist is succesvol verzonden naar de map: 'GECONTROLEERDE CHECKLISTEN' en verwijderd uit de map: 'LEESMAP'!")

End If
 
Je hebt een woordje vergeten....
Code:
If [B][COLOR="blue"]DIR[/COLOR][/B]("Q:\VBPROW62\B_NO_PROJECTEN\Startersbellen\startersbezoek\" & CStr(Range("J2").Value) & "\Leesmap\" & CStr(Range("A2").Value) & " " & CStr(Range("c2").Value) & " aangeboden om te lezen " & ".xls") <> "" Then
     Kill "Q:\VBPROW62\B_NO_PROJECTEN\Startersbellen\startersbezoek\" & CStr(Range("J2").Value) & "\Leesmap\" & CStr(Range("A2").Value) & " " & CStr(Range("c2").Value) & " aangeboden om te lezen " & ".xls"
     MsgBox ("De checklist is succesvol verzonden naar de map: 'GECONTROLEERDE CHECKLISTEN' en verwijderd uit de map: 'LEESMAP'!")
End If

Ik snap nu ook waarom hij in eerste instantie bij jou niet werkte; knippen en plakken is nog een hele kunst...

Code:
Dim MyFile
Dim MyPath as String
MyPath = "Q:\VBPROW62\B_NO_PROJECTEN\Startersbellen\startersbezoek\"
MyFile = Dir(MyPath & CStr(Range("J2").Value) & "\Leesmap\" & CStr(Range("A2").Value) & " " & CStr(Range("c2").Value) & " aangeboden om te lezen " & ".xls")
If MyFile <> "" Then 
     Kill MyPath & MyFile
End If
 
na een aanpassing werkt het

De laatste optie heb ik eerst geprobeerd en na een aanpassing - zie code - werkt het. Ik zal de eerste optie ook nog even proberen maar in ieder geval functioneert het nu.

Eric, ik wil je hartelijk bedanken voor het constructieve meedenken, ik ben hier heel blij mee!

Dim MyFile
Dim MyPath As String
MyPath = "Q:\VBPROW62\B_NO_PROJECTEN\Startersbellen\startersbezoek\"
MyFile = Dir(MyPath & CStr(Range("J2").Value) & "\Leesmap\" & CStr(Range("A2").Value) & " " & CStr(Range("c2").Value) & " aangeboden om te lezen " & ".xls")
If MyFile <> "" Then
Rem Kill MyPath & MyFile
Kill "Q:\VBPROW62\B_NO_PROJECTEN\Startersbellen\startersbezoek\" & CStr(Range("J2").Value) & "\Leesmap\" & CStr(Range("A2").Value) & " " & CStr(Range("c2").Value) & " aangeboden om te lezen " & ".xls"
End If
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan