OVH Cloud OVH Cloud

On Error GoTo ... 1 boucle, puis erreur 1004

5 réponses
Avatar
philippelaschet
Bonjour tlm,

en utilisant un userform pour "scanner" , ouvrir et copier des données
d'éventuels .txt contenus dans un répertoire "C:\Dossier\fiches\",
en débogage "pas à pas" , au premier passage, la variable i = 1 ( For i = 1
To 5 ) ne trouvant pas le fichier .txt en question,
"On Error GoTo" fonctionne bien ...... après en passant à i = 2 .... erreur
1004 pour un .txt qui n'existe pas non plus
... pourquoi "On Error GoTo" ne fonctionne pas cette fois-ci ? , alors que
pour le premier inexistant il a fonctionné !
"On Error Resume Next" ne semble pas réagir à des fichiers inexistant ...
Merci pour vos lumières .
Philippe


"Private Sub CommandButton1_Click()

Dim x As Variant
Dim y As Variant
Dim z As Variant
Dim f As Variant
Dim d As String
Dim i As Integer
Dim fiche As Variant

Label1.Caption = ComboBox1.Value
Label2.Caption = ComboBox2.Value
Label3.Caption = ComboBox3.Value

If UserForm1.Label1 = "" Then
MsgBox "STOP" & Chr(10) & "faut saisir un Nom !!! "
Else: GoTo prenom

prenom:


If UserForm1.Label2 = "" Then
MsgBox "STOP" & Chr(10) & "faut saisir un Prénom !!!
"

Else: GoTo adresse
adresse:

If UserForm1.Label3 = "" Then
MsgBox "STOP" & Chr(10) & "faut saisir une Adresse
!!! "


Else



For i = 1 To 5

d = "C:\Dossier\fiches\"
x = UserForm1.Label1.Caption & "_"
y = UserForm1.Label2.Caption & "_"
z = UserForm1.Label3.Caption & "_"
f = x & y & z
fiche = d & f & "c" & i & ".xls"

If fiche = True Then

Kill fiche

Else


Application.DisplayAlerts = False

On Error GoTo erreur



Workbooks.OpenText Filename:=d & f & "c" & i & ".txt",
Origin:=xlWindows, StartRow:=1, DataType:=xlDelimited,
TextQualifier:=xlDoubleQuote, _
ConsecutiveDelimiter:=False, Tab:=True, Semicolon:=False,
Comma:=False _
, Space:=False, Other:=False, FieldInfo:=Array(Array(1, 1), Array(2,
1), _
Array(3, 1), Array(4, 1), Array(5, 1), Array(6, 1), Array(7, 1),
Array(8, 1), Array(9, 1), _
Array(10, 1), Array(11, 1), Array(12, 1), Array(13, 1), Array(14,
1), Array(15, 1)), _
TrailingMinusNumbers:=True
ActiveWorkbook.SaveAs Filename:=fiche, FileFormat:= _
xlNormal, Password:="", WriteResPassword:="",
ReadOnlyRecommended:=False _
, CreateBackup:=False
Cells.Select
Selection.Copy
ActiveWindow.WindowState = xlMinimized
Windows("otomatic.xls").Activate
ActiveWindow.WindowState = xlMaximized
Sheets("transfert" & i).Select
Range("A1").Select
ActiveSheet.Paste
Range("A1").Select
Windows(f & "c" & i & ".xls").Activate
Application.CutCopyMode = False
ActiveWindow.WindowState = xlNormal
Range("A1").Select
ActiveWindow.Close
Windows("otomatic.xls").Activate
ActiveWindow.WindowState = xlMaximized
Sheets("report").Select
Range("A1").Select
Kill fiche



End If

erreur:

Next i
End If
End If
End If


UserForm1.Hide

Application.DisplayAlerts = True


End Sub

5 réponses

Avatar
Corona
Bonjour,
L'étiquette erreur: doit contenir l'instruction Resume. (par exemple
Resume Next qui renvoie à l'instruction qui suit immédiatement l'instruction
oùm s'est produit l'erreur).
Il est préférable d'isoler erreur: du reste de ton code.
Exemple
sub toto()
for i = 1 to 5
instructions
next
exit sub
erreur:
resume next
end sub
Philippe

"philippelaschet" a écrit dans le
message de news:


Bonjour tlm,

en utilisant un userform pour "scanner" , ouvrir et copier des données
d'éventuels .txt contenus dans un répertoire "C:Dossierfiches",
en débogage "pas à pas" , au premier passage, la variable i = 1 ( For i =
1
To 5 ) ne trouvant pas le fichier .txt en question,
"On Error GoTo" fonctionne bien ...... après en passant à i = 2 ....
erreur
1004 pour un .txt qui n'existe pas non plus
... pourquoi "On Error GoTo" ne fonctionne pas cette fois-ci ? , alors que
pour le premier inexistant il a fonctionné !
"On Error Resume Next" ne semble pas réagir à des fichiers inexistant ...
Merci pour vos lumières .
Philippe


"Private Sub CommandButton1_Click()

Dim x As Variant
Dim y As Variant
Dim z As Variant
Dim f As Variant
Dim d As String
Dim i As Integer
Dim fiche As Variant

Label1.Caption = ComboBox1.Value
Label2.Caption = ComboBox2.Value
Label3.Caption = ComboBox3.Value

If UserForm1.Label1 = "" Then
MsgBox "STOP" & Chr(10) & "faut saisir un Nom !!! "
Else: GoTo prenom

prenom:


If UserForm1.Label2 = "" Then
MsgBox "STOP" & Chr(10) & "faut saisir un Prénom
!!!
"

Else: GoTo adresse
adresse:

If UserForm1.Label3 = "" Then
MsgBox "STOP" & Chr(10) & "faut saisir une Adresse
!!! "


Else



For i = 1 To 5

d = "C:Dossierfiches"
x = UserForm1.Label1.Caption & "_"
y = UserForm1.Label2.Caption & "_"
z = UserForm1.Label3.Caption & "_"
f = x & y & z
fiche = d & f & "c" & i & ".xls"

If fiche = True Then

Kill fiche

Else


Application.DisplayAlerts = False

On Error GoTo erreur



Workbooks.OpenText Filename:=d & f & "c" & i & ".txt",
Origin:=xlWindows, StartRow:=1, DataType:=xlDelimited,
TextQualifier:=xlDoubleQuote, _
ConsecutiveDelimiter:úlse, Tab:=True, Semicolon:úlse,
Comma:úlse _
, Space:úlse, Other:úlse, FieldInfo:=Array(Array(1, 1),
Array(2,
1), _
Array(3, 1), Array(4, 1), Array(5, 1), Array(6, 1), Array(7, 1),
Array(8, 1), Array(9, 1), _
Array(10, 1), Array(11, 1), Array(12, 1), Array(13, 1), Array(14,
1), Array(15, 1)), _
TrailingMinusNumbers:=True
ActiveWorkbook.SaveAs Filename:=fiche, FileFormat:= _
xlNormal, Password:="", WriteResPassword:="",
ReadOnlyRecommended:úlse _
, CreateBackup:úlse
Cells.Select
Selection.Copy
ActiveWindow.WindowState = xlMinimized
Windows("otomatic.xls").Activate
ActiveWindow.WindowState = xlMaximized
Sheets("transfert" & i).Select
Range("A1").Select
ActiveSheet.Paste
Range("A1").Select
Windows(f & "c" & i & ".xls").Activate
Application.CutCopyMode = False
ActiveWindow.WindowState = xlNormal
Range("A1").Select
ActiveWindow.Close
Windows("otomatic.xls").Activate
ActiveWindow.WindowState = xlMaximized
Sheets("report").Select
Range("A1").Select
Kill fiche



End If

erreur:

Next i
End If
End If
End If


UserForm1.Hide

Application.DisplayAlerts = True


End Sub






Avatar
MichDenis
Bonjour Corona,

Personnellement je m'aurai contenté "d'effacer" l'erreur générée le cas échéaant comme ceci :

2 exemples différentes de gérer une erreur :

'------------------------------
Sub toto()

Dim GestionErreur As String
Dim i As Integer, B As String
On Error Resume Next
For i = 1 To 5
B = Shapes(1).Name
If Err <> 0 Then
MsgBox Err.Number & " " & Err.Description
Err = 0
'Autre instruction si nécessaire
End If
Next
End Sub
'------------------------------


Voici un exemple avec Resume Next

Pour les besoins de l'exemple, essaie cela sur une
feuille qui n'a pas de Shapes
'--------------------------------
Sub toto()

Dim GestionErreur As String

Dim b As String
On Error GoTo GestionErreur
For i = 1 To 5
b = Shapes(1).Name
Next
Exit Sub
GestionErreur:
MsgBox Err.Number & " " & Err.Description
Resume Next

End Sub
'--------------------------------


Salutations!






"Corona" <Philippe Tulliez> a écrit dans le message de news: %23KkC%
Bonjour,
L'étiquette erreur: doit contenir l'instruction Resume. (par exemple
Resume Next qui renvoie à l'instruction qui suit immédiatement l'instruction
oùm s'est produit l'erreur).
Il est préférable d'isoler erreur: du reste de ton code.
Exemple
sub toto()
for i = 1 to 5
instructions
next
exit sub
erreur:
resume next
end sub
Philippe

"philippelaschet" a écrit dans le
message de news:


Bonjour tlm,

en utilisant un userform pour "scanner" , ouvrir et copier des données
d'éventuels .txt contenus dans un répertoire "C:Dossierfiches",
en débogage "pas à pas" , au premier passage, la variable i = 1 ( For i > 1
To 5 ) ne trouvant pas le fichier .txt en question,
"On Error GoTo" fonctionne bien ...... après en passant à i = 2 ....
erreur
1004 pour un .txt qui n'existe pas non plus
... pourquoi "On Error GoTo" ne fonctionne pas cette fois-ci ? , alors que
pour le premier inexistant il a fonctionné !
"On Error Resume Next" ne semble pas réagir à des fichiers inexistant ...
Merci pour vos lumières .
Philippe


"Private Sub CommandButton1_Click()

Dim x As Variant
Dim y As Variant
Dim z As Variant
Dim f As Variant
Dim d As String
Dim i As Integer
Dim fiche As Variant

Label1.Caption = ComboBox1.Value
Label2.Caption = ComboBox2.Value
Label3.Caption = ComboBox3.Value

If UserForm1.Label1 = "" Then
MsgBox "STOP" & Chr(10) & "faut saisir un Nom !!! "
Else: GoTo prenom

prenom:


If UserForm1.Label2 = "" Then
MsgBox "STOP" & Chr(10) & "faut saisir un Prénom
!!!
"

Else: GoTo adresse
adresse:

If UserForm1.Label3 = "" Then
MsgBox "STOP" & Chr(10) & "faut saisir une Adresse
!!! "


Else



For i = 1 To 5

d = "C:Dossierfiches"
x = UserForm1.Label1.Caption & "_"
y = UserForm1.Label2.Caption & "_"
z = UserForm1.Label3.Caption & "_"
f = x & y & z
fiche = d & f & "c" & i & ".xls"

If fiche = True Then

Kill fiche

Else


Application.DisplayAlerts = False

On Error GoTo erreur



Workbooks.OpenText Filename:=d & f & "c" & i & ".txt",
Origin:=xlWindows, StartRow:=1, DataType:=xlDelimited,
TextQualifier:=xlDoubleQuote, _
ConsecutiveDelimiter:úlse, Tab:=True, Semicolon:úlse,
Comma:úlse _
, Space:úlse, Other:úlse, FieldInfo:=Array(Array(1, 1),
Array(2,
1), _
Array(3, 1), Array(4, 1), Array(5, 1), Array(6, 1), Array(7, 1),
Array(8, 1), Array(9, 1), _
Array(10, 1), Array(11, 1), Array(12, 1), Array(13, 1), Array(14,
1), Array(15, 1)), _
TrailingMinusNumbers:=True
ActiveWorkbook.SaveAs Filename:=fiche, FileFormat:= _
xlNormal, Password:="", WriteResPassword:="",
ReadOnlyRecommended:úlse _
, CreateBackup:úlse
Cells.Select
Selection.Copy
ActiveWindow.WindowState = xlMinimized
Windows("otomatic.xls").Activate
ActiveWindow.WindowState = xlMaximized
Sheets("transfert" & i).Select
Range("A1").Select
ActiveSheet.Paste
Range("A1").Select
Windows(f & "c" & i & ".xls").Activate
Application.CutCopyMode = False
ActiveWindow.WindowState = xlNormal
Range("A1").Select
ActiveWindow.Close
Windows("otomatic.xls").Activate
ActiveWindow.WindowState = xlMaximized
Sheets("report").Select
Range("A1").Select
Kill fiche



End If

erreur:

Next i
End If
End If
End If


UserForm1.Hide

Application.DisplayAlerts = True


End Sub






Avatar
philippelaschet
Re Bonjour,

merci, mon problème reste que c'est pas trop un resume next qui fera passer
au i = 2 ou i = 3
, peut-être, un truc dans le genre ... if not exist ... telFichier.txt ..
then next i
... et là , je vois pas trop comment faire.
Le problème ne se pose pas si les 5 fichiers . txt requis se trouvent dans
le repertoire, par contre, s'il en manque un ,
ça continue à planter.

merci d'avance

Philippe


---------------------



Bonjour Corona,

Personnellement je m'aurai contenté "d'effacer" l'erreur générée le cas
échéaant comme ceci :


2 exemples différentes de gérer une erreur :

'------------------------------
Sub toto()

Dim GestionErreur As String
Dim i As Integer, B As String
On Error Resume Next
For i = 1 To 5
B = Shapes(1).Name
If Err <> 0 Then
MsgBox Err.Number & " " & Err.Description
Err = 0
'Autre instruction si nécessaire
End If
Next
End Sub
'------------------------------


Voici un exemple avec Resume Next

Pour les besoins de l'exemple, essaie cela sur une
feuille qui n'a pas de Shapes
'--------------------------------
Sub toto()

Dim GestionErreur As String

Dim b As String
On Error GoTo GestionErreur
For i = 1 To 5
b = Shapes(1).Name
Next
Exit Sub
GestionErreur:
MsgBox Err.Number & " " & Err.Description
Resume Next

End Sub
'--------------------------------


Salutations!






"Corona" <Philippe Tulliez> a écrit dans le message de news:
%23KkC%

Bonjour,
L'étiquette erreur: doit contenir l'instruction Resume. (par exemple
Resume Next qui renvoie à l'instruction qui suit immédiatement
l'instruction

oùm s'est produit l'erreur).
Il est préférable d'isoler erreur: du reste de ton code.
Exemple
sub toto()
for i = 1 to 5
instructions
next
exit sub
erreur:
resume next
end sub
Philippe

"philippelaschet" a écrit dans le
message de news:


Bonjour tlm,

en utilisant un userform pour "scanner" , ouvrir et copier des données
d'éventuels .txt contenus dans un répertoire "C:Dossierfiches",
en débogage "pas à pas" , au premier passage, la variable i = 1 ( For i
1
To 5 ) ne trouvant pas le fichier .txt en question,
"On Error GoTo" fonctionne bien ...... après en passant à i = 2 ....
erreur
1004 pour un .txt qui n'existe pas non plus
... pourquoi "On Error GoTo" ne fonctionne pas cette fois-ci ? , alors
que


pour le premier inexistant il a fonctionné !
"On Error Resume Next" ne semble pas réagir à des fichiers inexistant
...


Merci pour vos lumières .
Philippe


"Private Sub CommandButton1_Click()

Dim x As Variant
Dim y As Variant
Dim z As Variant
Dim f As Variant
Dim d As String
Dim i As Integer
Dim fiche As Variant

Label1.Caption = ComboBox1.Value
Label2.Caption = ComboBox2.Value
Label3.Caption = ComboBox3.Value

If UserForm1.Label1 = "" Then
MsgBox "STOP" & Chr(10) & "faut saisir un Nom !!!
"


Else: GoTo prenom

prenom:


If UserForm1.Label2 = "" Then
MsgBox "STOP" & Chr(10) & "faut saisir un Prénom
!!!
"

Else: GoTo adresse
adresse:

If UserForm1.Label3 = "" Then
MsgBox "STOP" & Chr(10) & "faut saisir une
Adresse


!!! "


Else



For i = 1 To 5

d = "C:Dossierfiches"
x = UserForm1.Label1.Caption & "_"
y = UserForm1.Label2.Caption & "_"
z = UserForm1.Label3.Caption & "_"
f = x & y & z
fiche = d & f & "c" & i & ".xls"

If fiche = True Then

Kill fiche

Else


Application.DisplayAlerts = False

On Error GoTo erreur



Workbooks.OpenText Filename:=d & f & "c" & i & ".txt",
Origin:=xlWindows, StartRow:=1, DataType:=xlDelimited,
TextQualifier:=xlDoubleQuote, _
ConsecutiveDelimiter:úlse, Tab:=True, Semicolon:úlse,
Comma:úlse _
, Space:úlse, Other:úlse, FieldInfo:=Array(Array(1, 1),
Array(2,
1), _
Array(3, 1), Array(4, 1), Array(5, 1), Array(6, 1), Array(7, 1),
Array(8, 1), Array(9, 1), _
Array(10, 1), Array(11, 1), Array(12, 1), Array(13, 1), Array(14,
1), Array(15, 1)), _
TrailingMinusNumbers:=True
ActiveWorkbook.SaveAs Filename:=fiche, FileFormat:= _
xlNormal, Password:="", WriteResPassword:="",
ReadOnlyRecommended:úlse _
, CreateBackup:úlse
Cells.Select
Selection.Copy
ActiveWindow.WindowState = xlMinimized
Windows("otomatic.xls").Activate
ActiveWindow.WindowState = xlMaximized
Sheets("transfert" & i).Select
Range("A1").Select
ActiveSheet.Paste
Range("A1").Select
Windows(f & "c" & i & ".xls").Activate
Application.CutCopyMode = False
ActiveWindow.WindowState = xlNormal
Range("A1").Select
ActiveWindow.Close
Windows("otomatic.xls").Activate
ActiveWindow.WindowState = xlMaximized
Sheets("report").Select
Range("A1").Select
Kill fiche



End If

erreur:

Next i
End If
End If
End If


UserForm1.Hide

Application.DisplayAlerts = True


End Sub











Avatar
MichDenis
Bonjour philippelaschet,

Avant de vouloir travailler sur un fichier, il faut tester si le chemin et fichier existe vraiment et pour ce faire, tu peux
utiliser ce test pour chacun des fichiers dans ta boucle. Comme ça, si le fichier n'existe pas, ta procédure va se contenter de
passer au suivant !

Exemple :
'--------------------------------
Dim Chemin As String
Fichier As String

Chemin = "C:Excel"
Fichier = "Denis.xls"

If Dir(Chemin & Fichier) <>"" then
'si ce fichier existe vraiment... qu'est-ce que tu fais

Else
Msgbox "Ce fichier n'existe pas dans ce répertoire."
'si il n'existe pas ... qu'est-ce que tu veux faire !
End If
'--------------------------------


Salutations!


"philippelaschet" a écrit dans le message de news:
Re Bonjour,

merci, mon problème reste que c'est pas trop un resume next qui fera passer
au i = 2 ou i = 3
, peut-être, un truc dans le genre ... if not exist ... telFichier.txt ..
then next i
... et là , je vois pas trop comment faire.
Le problème ne se pose pas si les 5 fichiers . txt requis se trouvent dans
le repertoire, par contre, s'il en manque un ,
ça continue à planter.

merci d'avance

Philippe


---------------------



Bonjour Corona,

Personnellement je m'aurai contenté "d'effacer" l'erreur générée le cas
échéaant comme ceci :


2 exemples différentes de gérer une erreur :

'------------------------------
Sub toto()

Dim GestionErreur As String
Dim i As Integer, B As String
On Error Resume Next
For i = 1 To 5
B = Shapes(1).Name
If Err <> 0 Then
MsgBox Err.Number & " " & Err.Description
Err = 0
'Autre instruction si nécessaire
End If
Next
End Sub
'------------------------------


Voici un exemple avec Resume Next

Pour les besoins de l'exemple, essaie cela sur une
feuille qui n'a pas de Shapes
'--------------------------------
Sub toto()

Dim GestionErreur As String

Dim b As String
On Error GoTo GestionErreur
For i = 1 To 5
b = Shapes(1).Name
Next
Exit Sub
GestionErreur:
MsgBox Err.Number & " " & Err.Description
Resume Next

End Sub
'--------------------------------


Salutations!






"Corona" <Philippe Tulliez> a écrit dans le message de news:
%23KkC%

Bonjour,
L'étiquette erreur: doit contenir l'instruction Resume. (par exemple
Resume Next qui renvoie à l'instruction qui suit immédiatement
l'instruction

oùm s'est produit l'erreur).
Il est préférable d'isoler erreur: du reste de ton code.
Exemple
sub toto()
for i = 1 to 5
instructions
next
exit sub
erreur:
resume next
end sub
Philippe

"philippelaschet" a écrit dans le
message de news:


Bonjour tlm,

en utilisant un userform pour "scanner" , ouvrir et copier des données
d'éventuels .txt contenus dans un répertoire "C:Dossierfiches",
en débogage "pas à pas" , au premier passage, la variable i = 1 ( For i
1
To 5 ) ne trouvant pas le fichier .txt en question,
"On Error GoTo" fonctionne bien ...... après en passant à i = 2 ....
erreur
1004 pour un .txt qui n'existe pas non plus
... pourquoi "On Error GoTo" ne fonctionne pas cette fois-ci ? , alors
que


pour le premier inexistant il a fonctionné !
"On Error Resume Next" ne semble pas réagir à des fichiers inexistant
...


Merci pour vos lumières .
Philippe


"Private Sub CommandButton1_Click()

Dim x As Variant
Dim y As Variant
Dim z As Variant
Dim f As Variant
Dim d As String
Dim i As Integer
Dim fiche As Variant

Label1.Caption = ComboBox1.Value
Label2.Caption = ComboBox2.Value
Label3.Caption = ComboBox3.Value

If UserForm1.Label1 = "" Then
MsgBox "STOP" & Chr(10) & "faut saisir un Nom !!!
"


Else: GoTo prenom

prenom:


If UserForm1.Label2 = "" Then
MsgBox "STOP" & Chr(10) & "faut saisir un Prénom
!!!
"

Else: GoTo adresse
adresse:

If UserForm1.Label3 = "" Then
MsgBox "STOP" & Chr(10) & "faut saisir une
Adresse


!!! "


Else



For i = 1 To 5

d = "C:Dossierfiches"
x = UserForm1.Label1.Caption & "_"
y = UserForm1.Label2.Caption & "_"
z = UserForm1.Label3.Caption & "_"
f = x & y & z
fiche = d & f & "c" & i & ".xls"

If fiche = True Then

Kill fiche

Else


Application.DisplayAlerts = False

On Error GoTo erreur



Workbooks.OpenText Filename:=d & f & "c" & i & ".txt",
Origin:=xlWindows, StartRow:=1, DataType:=xlDelimited,
TextQualifier:=xlDoubleQuote, _
ConsecutiveDelimiter:úlse, Tab:=True, Semicolon:úlse,
Comma:úlse _
, Space:úlse, Other:úlse, FieldInfo:=Array(Array(1, 1),
Array(2,
1), _
Array(3, 1), Array(4, 1), Array(5, 1), Array(6, 1), Array(7, 1),
Array(8, 1), Array(9, 1), _
Array(10, 1), Array(11, 1), Array(12, 1), Array(13, 1), Array(14,
1), Array(15, 1)), _
TrailingMinusNumbers:=True
ActiveWorkbook.SaveAs Filename:=fiche, FileFormat:= _
xlNormal, Password:="", WriteResPassword:="",
ReadOnlyRecommended:úlse _
, CreateBackup:úlse
Cells.Select
Selection.Copy
ActiveWindow.WindowState = xlMinimized
Windows("otomatic.xls").Activate
ActiveWindow.WindowState = xlMaximized
Sheets("transfert" & i).Select
Range("A1").Select
ActiveSheet.Paste
Range("A1").Select
Windows(f & "c" & i & ".xls").Activate
Application.CutCopyMode = False
ActiveWindow.WindowState = xlNormal
Range("A1").Select
ActiveWindow.Close
Windows("otomatic.xls").Activate
ActiveWindow.WindowState = xlMaximized
Sheets("report").Select
Range("A1").Select
Kill fiche



End If

erreur:

Next i
End If
End If
End If


UserForm1.Hide

Application.DisplayAlerts = True


End Sub











Avatar
philippelaschet
Merci beaucoup !

@++


Bonjour philippelaschet,

Avant de vouloir travailler sur un fichier, il faut tester si le chemin et
fichier existe vraiment et pour ce faire, tu peux

utiliser ce test pour chacun des fichiers dans ta boucle. Comme ça, si le
fichier n'existe pas, ta procédure va se contenter de

passer au suivant !

Exemple :
'--------------------------------
Dim Chemin As String
Fichier As String

Chemin = "C:Excel"
Fichier = "Denis.xls"

If Dir(Chemin & Fichier) <>"" then
'si ce fichier existe vraiment... qu'est-ce que tu fais

Else
Msgbox "Ce fichier n'existe pas dans ce répertoire."
'si il n'existe pas ... qu'est-ce que tu veux faire !
End If
'--------------------------------


Salutations!


"philippelaschet" a écrit dans le
message de news:

Re Bonjour,

merci, mon problème reste que c'est pas trop un resume next qui fera
passer

au i = 2 ou i = 3
, peut-être, un truc dans le genre ... if not exist ... telFichier.txt ..
then next i
... et là , je vois pas trop comment faire.
Le problème ne se pose pas si les 5 fichiers . txt requis se trouvent dans
le repertoire, par contre, s'il en manque un ,
ça continue à planter.

merci d'avance

Philippe


---------------------



Bonjour Corona,

Personnellement je m'aurai contenté "d'effacer" l'erreur générée le cas
échéaant comme ceci :


2 exemples différentes de gérer une erreur :

'------------------------------
Sub toto()

Dim GestionErreur As String
Dim i As Integer, B As String
On Error Resume Next
For i = 1 To 5
B = Shapes(1).Name
If Err <> 0 Then
MsgBox Err.Number & " " & Err.Description
Err = 0
'Autre instruction si nécessaire
End If
Next
End Sub
'------------------------------


Voici un exemple avec Resume Next

Pour les besoins de l'exemple, essaie cela sur une
feuille qui n'a pas de Shapes
'--------------------------------
Sub toto()

Dim GestionErreur As String

Dim b As String
On Error GoTo GestionErreur
For i = 1 To 5
b = Shapes(1).Name
Next
Exit Sub
GestionErreur:
MsgBox Err.Number & " " & Err.Description
Resume Next

End Sub
'--------------------------------


Salutations!






"Corona" <Philippe Tulliez> a écrit dans le message de news:
%23KkC%

Bonjour,
L'étiquette erreur: doit contenir l'instruction Resume. (par
exemple


Resume Next qui renvoie à l'instruction qui suit immédiatement
l'instruction

oùm s'est produit l'erreur).
Il est préférable d'isoler erreur: du reste de ton code.
Exemple
sub toto()
for i = 1 to 5
instructions
next
exit sub
erreur:
resume next
end sub
Philippe

"philippelaschet" a écrit dans le
message de news:


Bonjour tlm,

en utilisant un userform pour "scanner" , ouvrir et copier des données
d'éventuels .txt contenus dans un répertoire "C:Dossierfiches",
en débogage "pas à pas" , au premier passage, la variable i = 1 ( For
i



1
To 5 ) ne trouvant pas le fichier .txt en question,

"On Error GoTo" fonctionne bien ...... après en passant à i = 2 ....
erreur
1004 pour un .txt qui n'existe pas non plus
... pourquoi "On Error GoTo" ne fonctionne pas cette fois-ci ? , alors
que


pour le premier inexistant il a fonctionné !
"On Error Resume Next" ne semble pas réagir à des fichiers inexistant
...


Merci pour vos lumières .
Philippe


"Private Sub CommandButton1_Click()

Dim x As Variant
Dim y As Variant
Dim z As Variant
Dim f As Variant
Dim d As String
Dim i As Integer
Dim fiche As Variant

Label1.Caption = ComboBox1.Value
Label2.Caption = ComboBox2.Value
Label3.Caption = ComboBox3.Value

If UserForm1.Label1 = "" Then
MsgBox "STOP" & Chr(10) & "faut saisir un Nom
!!!



"
Else: GoTo prenom

prenom:


If UserForm1.Label2 = "" Then
MsgBox "STOP" & Chr(10) & "faut saisir un
Prénom



!!!
"

Else: GoTo adresse
adresse:

If UserForm1.Label3 = "" Then
MsgBox "STOP" & Chr(10) & "faut saisir une
Adresse


!!! "


Else



For i = 1 To 5

d = "C:Dossierfiches"
x = UserForm1.Label1.Caption & "_"
y = UserForm1.Label2.Caption & "_"
z = UserForm1.Label3.Caption & "_"
f = x & y & z
fiche = d & f & "c" & i & ".xls"

If fiche = True Then

Kill fiche

Else


Application.DisplayAlerts = False

On Error GoTo erreur



Workbooks.OpenText Filename:=d & f & "c" & i & ".txt",
Origin:=xlWindows, StartRow:=1, DataType:=xlDelimited,
TextQualifier:=xlDoubleQuote, _
ConsecutiveDelimiter:úlse, Tab:=True, Semicolon:úlse,
Comma:úlse _
, Space:úlse, Other:úlse, FieldInfo:=Array(Array(1, 1),
Array(2,
1), _
Array(3, 1), Array(4, 1), Array(5, 1), Array(6, 1), Array(7,
1),



Array(8, 1), Array(9, 1), _
Array(10, 1), Array(11, 1), Array(12, 1), Array(13, 1),
Array(14,



1), Array(15, 1)), _
TrailingMinusNumbers:=True
ActiveWorkbook.SaveAs Filename:=fiche, FileFormat:= _
xlNormal, Password:="", WriteResPassword:="",
ReadOnlyRecommended:úlse _
, CreateBackup:úlse
Cells.Select
Selection.Copy
ActiveWindow.WindowState = xlMinimized
Windows("otomatic.xls").Activate
ActiveWindow.WindowState = xlMaximized
Sheets("transfert" & i).Select
Range("A1").Select
ActiveSheet.Paste
Range("A1").Select
Windows(f & "c" & i & ".xls").Activate
Application.CutCopyMode = False
ActiveWindow.WindowState = xlNormal
Range("A1").Select
ActiveWindow.Close
Windows("otomatic.xls").Activate
ActiveWindow.WindowState = xlMaximized
Sheets("report").Select
Range("A1").Select
Kill fiche



End If

erreur:

Next i
End If
End If
End If


UserForm1.Hide

Application.DisplayAlerts = True


End Sub