Gestion d'erreur

Bonjour chers tous

J'ai élaboré un code par lequel il s'agit de sélectionner un fichier au choix et renseigner la première feuille à partir du classeur actif.

Le code fonctionne mais je sais pas trop comment seront gérées les erreurs.

Merci

Sub TRANSF()
    Dim fichier As Variant
    Dim classeur As Workbook

    Application.ScreenUpdating = False

'On Error GoTo erreur

        fichier = Application.GetOpenFilename(Title:="Selectionnez le Fichier à renseigner", filefilter:="Fichier Excel (*.xls*),*xlsx*", buttontext:="Cliquez")

        If fichier <> False Then
            Set classeur = Application.Workbooks.Open(fichier)
            classeur.Sheets(1).Range("A1:A10") = ""
            classeur.Sheets(1).Range("A1:A10") = ThisWorkbook.Sheets("feuillesource").Range("A1:A10").Value
            classeur.Close True
        End If
'erreur:
        'classeur.Close False
        'Sheets("feuillesource").Activate
        'MsgBox "OUPS! il semble que vous n'avez pas  le bon fichier." & Chr(10) & Chr(10) & "Veuillez réessayer SVP", Title:="INFORMATION"

End Sub
9source.xlsm (17.50 Ko)

Bonjour KTM, bonjour le forum,

Quel genre d'erreur peut-il arriver ?

Car avec ton code, quel que soit le fichier ouvert, il aura forcément un onglet et par conséquent, la plage A1:A10 du premier onglet du fichier choisi, récupèrera la valeur de la plage A1:A10 de l'onglet feuillesource. Tu n'auras jamais d'erreur sauf si le premier onglet est protégé (je n'ai même pas testé d'ailleurs...).

Pour générer un erreur il te faudrait un condition qui caractérise le fichier à ouvrir (nom, Nom onglet, Nombre d'onglets, valeur d'une cellule, etc.)

Dans ce cas le code serait :

Sub TRANSF()
Dim fichier As Variant
Dim classeur As Workbook

Application.ScreenUpdating = False
On Error GoTo erreur
fichier = Application.GetOpenFilename(Title:="Selectionnez le Fichier à renseigner", filefilter:="Fichier Excel (*.xls*),*xlsx*", buttontext:="Cliquez")
If fichier <> False Then
    Set classeur = Application.Workbooks.Open(fichier)
    classeur.Sheets(1).Range("A1:A10") = ClearContents
    classeur.Sheets(1).Range("A1:A10") = ThisWorkbook.Sheets("feuillesource").Range("A1:A10").Value
    classeur.Close True
End If
Sheets("feuillesource").Activate
Exit Sub<----- Hé oui il faut sortir
erreur:
classeur.Close False
MsgBox "OUPS! il semble que vous n'avez pas  le bon fichier." & Chr(10) & Chr(10) & "Veuillez réessayer SVP", Title:="INFORMATION"
End Sub

Grand Merci de me rassurer !!!

Rechercher des sujets similaires à "gestion erreur"