Ajouter un onglet sous condition
Bonjour tt le monde,
voici ma fonction pour tester si le nom de l'onglet existe ou pas :
Function FeuilExiste(F As String) As Boolean
On Error Resume Next
FeuilExiste = Not Sheets(F) Is Nothing
End Function
Je veux creer un onglet, si le nom existe deja je souhaite arreter la macro avec un message d'erreur, sinon il ajoute l'onglet avec le nom que j'ai choisi, ci-join mon code :
If UserForm1.ComboBox1.Value = "X1" Then
Workbooks("test").Sheets(Workbooks("test").Sheets.Count).Name = "X1"
ElseIf UserForm1.ComboBox1.Value = "T1" Then
Workbooks("test").Sheets(Workbooks("test").Sheets.Count).Name = "T1"
End If
'
Dim Feuil As String
Feuil = Workbooks("test").Sheets(Workbooks("test").Sheets.Count).Name
If FeuilExiste(Feuil) Then
MsgBox "L'onglet " & Feuil & " existe déjà dans le classeur actif."
Exit Sub
Else
MsgBox "L'onglet " & Feuil & " n'existe pas dans le classeur actif."
End If
du coup je cherche un code qui fusionne les deux dernieres macro en prennant en compte les conditions que j'ai mis en haut.
Merci d'avance
Bonjour Achraf, bonjour le forum,
Peut-être comme ça :
Sub Macro1()
Dim CL As Workbook 'déclare la variable CL (CLasseur)
Dim NO As Worksheet 'déclare la variable NO (Nouvel Onglet)
Set CL = Workbooks("test.xlsm") 'définit la classeur CL
On Error Resume Next 'gestion des erreurs (en cas d'erreur passe à la ligne suivante)
Set NO = CL.Worksheets(userform1.ComboBox1.Value) 'définit l'onglet NO (génere un erreur si l'onglet n'existe pas)
If Err > 0 Then 'condition : si une erreur a été générée
Err.Clear 'supprime l'erreur
MsgBox "cet onglet n'existe pas dans le classeur actif !" 'message
CL.Worksheets.Add After:=CL.Worksheets(CL.Sheets.Count) 'ajoute un onglet vierge en dernière position
Set NO = ActiveSheet 'définit l'onglet NO
NO.Name = UserForm1.ComboBox1.Value 'renomme l'onglet NO
End If 'fin de la condition
On Error GoTo 0 'annule la gestion des erreurs
End Sub