On error goto...

skilhit - 15 déc. 2000 à 18:03
 skilhit - 18 déc. 2000 à 17:06
ok le titre ne vous dit pas grand chose ! mais je m'explique !
vous connaissez le code :
On Error GoTo la_destination:

alors voilà ! je crée un petit progs (inutile mais j'apprend avec de petit exemple pour commencer ce qui me semble logique) qui copie les fichiers ".doc" d'un dossier nommé "Site" pour les coller dans un dossier nommé "Fichier Word".
le code que j'utilise et le suivant:
Sub copiercoller()
On Error GoTo nan:
FileCopy "C:siteindex.doc", "C:Fichier Wordindex.doc"
nan:
' comme le fichier index.doc n'existe pas, il y a une erreur grace a la fonctio On Error GoTo nan: il ne plante pas et recommence à nan: ! sui te du code...
On Error GoTo zut:
FileCopy "C:siteindex2.doc", "C:Fichier Wordindex2.doc"
zut:
' comme le fichier index2.doc n'existe pas, il y a une erreur ! mais au lieu de recommencer a zut il plante !
End Sub
Pourquoi ne continue t'elle pas ? et comment puis-je résoudre ce problème ?

P.S. Y a-t-il un moyen pour ne pas avoir à réécrire le FileCopy chaque fois ? un code qui agirait comme ca :
FileCopy "C:Site ous_les_fichier.doc", "C:Fichier Word ous_les_fichier.doc" !
amicalement,
skilhit

3 réponses

Public Sub CtoS(file1, file2, go1, go2)

file1 ="" 'insèrer le fichier à copier avec son chemin complet ex: c:monfilefile1.doc
file2 ="" 'idem pour le 2ème fichiers

go1 = "" 'insérer le dossier vers lequel file1 ira ex: c:file
go2 = "" 'insérer le dossier vers lequel file2 ira

Dim Emsg, title 'met en mémoire le msg d'erreur si le fichier ou les fichiers n'existe(n)t pas
Emsg = "Mon msg d'erreur"
title = "Mon titre"if file1 True And file2 True then 'vérifie si file1 et file2 existe alors:

FileCopy file1, go1 'copy fichier1 vers dossier1
Filecopy file2, go2 'copy fichier2 vers dossier2

Else 'mais si cela n'est pas le cas:

MsgBox Emsg, vbCritical, title

End if

End Sub
0
Ceci pourrait t'aider un peu même si ce n'est pas exactement ce que tu recherche:

Public Function CopierColler() As Integer
Dim iOffsetNFich As Integer 'un compteur
Dim strNumeroFichier As String
Dim strFichSource As String
Dim strFichDest As String


On Error Resume Next

iOffsetNFich = 1
strNumeroFichier = vbNullString
Do
strFichSource = "E: empsiteindex" & strNumeroFichier & ".doc"
strFichDest = "E: empFichier Wordindex" & strNumeroFichier & ".doc"
FileCopy strFichSource, strFichDest
If (Err.Number <> 0) Then
Debug.Print "L'erreur #" & LTrim$(Str$(Err.Number)) & "(" & Err.Description & ") est survenue."
iOffsetNFich = iOffsetNFich + 1
strNumeroFichier = LTrim$(Str$(iOffsetNFich))
CopierColler = 1 'Retourne le code erreur 1 pour signifier un échec
Err.Clear 'Sinon ne détecte pas une nouvelle erreur correctement...
Else
CopierColler = 0
End If
Loop Until ((CopierColler = 0) Or (iOffsetNFich > 9)) 'Au pire, au bout de 10 fois, abandonne.

End Function
0
non ca marche pas ! mais c'est bon j'ai la réponse ! il faut faire :

Sub CopierColler()
Set fs = CreateObject("Scripting.FileSystemObject")

If fs.FileExists("hd:le dossierle fichier.l'extension") = True Then
' vérifie si le fichier existe
FileCopy "hd:le dossierle fichier.l'extension", "hd:
ew dossierle fichier.l'extension"
'le copie si il existe et le colle dans un new dossier
Else
a = MsgBox ("message d'erreur", vbCritical, "titre")
'message qui annonce que le fichier n'existe pas !
End If
End Sub

voilà ! mais je te remercie tout de même de ton aide ! allez tchus !
0
Rejoignez-nous