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
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 !!!