Gestion d'une Erreur

seb.m

XLDnaute Nouveau
Bonjour,

Je souhaiterais savoir comment gerer une Erreur

En rouge l'endroit ou ca plante Efectivement de temps en temps je peux avoir un nom de classeur erroné, je souhaiterais sortir de la Sub lorsque la macro plante


Voici mon code

Sub RecuperationKM()
ActiveCell.Offset(0, 1).Range("A1").Select
ActiveCell.FormulaR1C1 = ClasseurName
ActiveCell.Replace What:="CO04", Replacement:="DO01"
ActiveCell.Replace What:=".xls", Replacement:=".csv"
ActiveCell.Offset(0, 1).Range("A1").Select
ActiveCell.Offset(0, -1).Range("A1").Select
ClasseurKmName = ActiveCell.Value
ICI ca plante si le nom de classeur n'est pas bon
Application.Workbooks.Open Filename:="\\b660917\_IPEDATA\80001077\CSV\" & ClasseurKmName, ReadOnly:=True
Set wbkKm = ActiveWorkbook
Range("au38").Select
Selection.End(xlDown).Select
ActiveCell.Copy
Windows("Extraction Donnée STT.xls").Activate
ActiveSheet.Paste
ActiveCell.Offset(0, 1).Range("A1").Select
ActiveCell.FormulaR1C1 = _
"=RIGHT(RC[-1],LEN(RC[-1])-FIND(""*"",SUBSTITUTE(RC[-1],"" "",""*"",LEN(RC[-1])-LEN(SUBSTITUTE(RC[-1],"" "","""")))))"
Selection.Copy
ActiveCell.Offset(0, -1).Range("A1").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
ActiveCell.Offset(0, 1).Range("A1").Select
Application.CutCopyMode = False
Selection.ClearContents
wbkKm.Close (False)
End Sub
 

Pierrot93

XLDnaute Barbatruc
Re : Gestion d'une Erreur

Bonjour Seb,

essaye avec la fonction "dir", un exemple ci-dessous :

Code:
Dim monclasseur As String
monclasseur = "C:\MesDocs\Excel\Test\test.xls"
If Dir(monclasseur, vbDirectory) <> "" Then
    Workbooks.Open monclasseur
Else
    MsgBox "classeur absent..."
    Exit Sub
End If

bonne journée
@+
 

seb.m

XLDnaute Nouveau
Re : Gestion d'une Erreur

Bonjour,

Merci pour vos reponse n'ayant pas vu vos reponse avant j'ai fait ca qu'en pensé vous?

Sub RecuperationKM()
ActiveCell.Offset(0, 1).Range("A1").Select
ActiveCell.FormulaR1C1 = ClasseurName
ActiveCell.Replace What:="CO04", Replacement:="DO01"
ActiveCell.Replace What:=".xls", Replacement:=".csv"
ActiveCell.Offset(0, 1).Range("A1").Select
ActiveCell.Offset(0, -1).Range("A1").Select
ClasseurKmName = ActiveCell.Value
On Error Resume Next
Workbooks.OpenText Filename:="\\b660917\_IPEDATA\80001077\CSV\" & ClasseurKmName, DataType:=1, Semicolon:=True, local:=True
If Err <> 0 Then
Exit Sub
Else

Set wbkKm = ActiveWorkbook
Range("ax38").Select
Selection.End(xlDown).Select
ActiveCell.Copy
Windows("Extraction Donnée STT.xls").Activate
ActiveSheet.Paste
Application.CutCopyMode = False
wbkKm.Close (False)
End If

End Sub
 

Pierrot93

XLDnaute Barbatruc
Re : Gestion d'une Erreur

Re, bonjour Masterdisco

je le ferais peut être ainsi alors :

Code:
On Error Resume Next
Workbooks.OpenText Filename:="\\b660917\_IPEDATA\80001077\CSV\" & ClasseurKmName, DataType:=1, Semicolon:=True, local:=True
If Err <> 0 Then Exit Sub
On Error GoTo 0
'suite de ton code

"On Error GoTo 0" permet de désactiver la gestion d'erreur, car avec cette ligne "On Error Resume Next" ton code continuerait même s'il rencontrerait d'autres erreurs...

Mais ma préférence va tout de même à la fonction "dir"....

bon après midi
@+
 

Statistiques des forums

Discussions
312 592
Messages
2 090 063
Membres
104 358
dernier inscrit
TOGOLA