Re: Copie feuille excel => Gestion d'Erreur / ErrorHandler
Bonsoir Riri, le Forum,
On pourrait aussi boucler sur les feuilles existantes, mais je te propose un gestionnaire d'erreur, plus rapide si tu as beaucoup de feuilles (vu que tu gères des Comptes, j'imagine qu'il y en aura beaucoup)
Private Sub ComdValider_Click()
'Si le TextBox égale rien alors on envois un message
If TextBoxNouveauCompte = "" Then MsgBox "VEUILLER SAISIR LE NOM DU NOUVEAU COMPTE", vbOKOnly + vbInformation, " Saisie Incomplète": Exit Sub
'Ici on crée la copie du Modèle
Worksheets("Modèle").Copy after:=Worksheets("Modèle")
'On donne le Nom du nouveau compte à la nouvelle feuille
'mais on place un gestionnaire d'erreur
On Error GoTo ErrorHandler
ActiveSheet.Name = UCase(Me.TextBoxNouveauCompte)
'si tutti va bene ... On décharge le UserForm2
Unload Me
'Si il y a erreur
ErrorHandler:
'si l'erreur est bien le même nom de feuille (erreur 1004)
If Err = 1004 Then
MsgBox "La Feuille " & TextBoxNouveauCompte & " existe déjà ", vbCritical
'on remet le Focus en sélectionnant le text dans la TextBox
With Me.TextBoxNouveauCompte
.SetFocus
.SelStart = 0
.SelLength = Len(Me.TextBoxNouveauCompte)
End With
Else
'si c'est une autre erreur...
MsgBox "Une erreur non gérée c'est produite " & Err.Number & " " & Err.Source & " " & Err.Description
End If
End Sub
Il est interressant de noter qu'un gestionnaire d'erreur devrait toujours être prévu de la sorte, avec ce IF err = Num de l'erreur puis un ELSE, car si une autre erreur se produit on peut ainsi être alerté....
Bonne Nuit
@+Thierry