Ce module contient deux fonctions qui permettent de créer et de supprimer facilement des onglets dans un fichier Excel déjà ouvert. Il vous suffit d'intégrer ce module dans votre projet VB ou VBA et de faire appel à ses fonctions comme cela est décris dans le module. Les fonctions renvoient une valeur True ou une valeur False pour prévenir votre programme que la création ou la suppression c'est bien déroulée ou non.
Source / Exemple :
'Module créé par Squall____ pour VBFrance.com
'
'Si vous voullez me contacter, faites le à partir du site www.vbfrance.com
'------------------------------------------------------------------------------------------------
'
'Utilisation du module :
'
'Méthode pour créer un onglet :
'
'If CreerOnglet(Nom_Du_Fichier_Excel, Nom_De_Longlet_A_Creer, False) = True Then
' Action à faire quand l'onglet est bien créé
'else
' Action à faire quand l'onglet n'as pas été créé
'end if
'
'Si vous ne voullez pas gérer les erreurs, vous pouvez toujours créer l'onglet en utilisant simplement cette commande :
'
'Call CreerOnglet(Nom_Du_Fichier_Excel, Nom_De_Longlet_A_Creer, False)
'
'Le dernier argument de la fonction CreerOnglet étant à False, le programme ne demanderas pas à l'utilisateur si il donne son accord pour écraser l'onglet déjà existant qui porte le même nom que l'onglet qu'on lui demande de créer (si il en existe un bien sur)
'Le nom du fichier Excel que l'on donne comme premier argument n'est pas le chemin complet de celui-ci mais juste son nom de type "Toto.xls"
'
'------------------------------------------------------------------------------------------------
'
'Méthode pour supprimer un onglet :
'
'If SupprimerOnglet(Nom_Du_Fichier_Excel, Nom_De_Longlet_A_Supprimer, False) = True Then
' Action à faire quand l'onglet est bien supprimé
'else
' Action à faire quand l'onglet n'as pas été supprimé
'end if
'
'Si vous ne voullez pas gérer les erreurs, vous pouvez toujours créer l'onglet en utilisant simplement cette commande :
'
'Call SupprimerOnglet(Nom_Du_Fichier_Excel, Nom_De_Longlet_A_Creer, False)
'
'Le dernier argument de la fonction CreerOnglet étant à False, le programme ne demanderas pas à l'utilisateur si il donne son accord pour supprimer l'onglet visé.
'Le nom du fichier Excel que l'on donne comme premier argument n'est pas le chemin complet de celui-ci mais juste son nom de type "Toto.xls"
'Le nom de l'onglet à supprimer peut être aussi bien son nom comme "Feuil3" mais aussi son index, c'est à dire son numéro. Il faut savoir que les onglets son en fait indexé et numérotés par excel de gauche à droite. L'onglet numéro 1 sera donc le premier onglet le plus à gauche.
'
'------------------------------------------------------------------------------------------------
Public Function CreerOnglet(Nom_Classeur, Nom_Onglet, ModeSilence As Boolean) As Boolean
CreerOnglet = False
On Error GoTo ErreurCreation
Workbooks(Nom_Classeur).Activate
For i = 1 To Workbooks(Nom_Classeur).Sheets.Count
If Workbooks(Nom_Classeur).Sheets(i).Name = Nom_Onglet Then
If ModeSilence = False Then
If MsgBox("L'onglet " & Nom_Onglet & " existe déjà." & Chr(10) & "Voulez-vous écraser l'onglet existant ?", vbYesNo, "Ecraser ?") = vbNo Then
MsgBox "Action annulée.", vbInformation, "Annulé"
Exit Function
Else
Application.DisplayAlerts = False
Workbooks(Nom_Classeur).Sheets(Nom_Onglet).Delete
Application.DisplayAlerts = True
Exit For
End If
Else
Application.DisplayAlerts = False
Workbooks(Nom_Classeur).Sheets(Nom_Onglet).Delete
Application.DisplayAlerts = True
Exit For
End If
End If
Next
Workbooks(Nom_Classeur).Sheets.Add , Workbooks(Nom_Classeur).Sheets(Workbooks(Nom_Classeur).Sheets.Count)
Workbooks(Nom_Classeur).Sheets(Workbooks(Nom_Classeur).Sheets.Count).Name = Nom_Onglet
CreerOnglet = True
ErreurCreation:
End Function
Public Function SupprimerOnglet(Nom_Classeur, Nom_Onglet, ModeSilence As Boolean) As Boolean
SupprimerOnglet = False
On Error GoTo ErreurSuppression
Workbooks(Nom_Classeur).Activate
For i = 1 To Workbooks(Nom_Classeur).Sheets.Count
If Workbooks(Nom_Classeur).Sheets(i).Name = Nom_Onglet Then
If ModeSilence = False Then
If MsgBox("L'onglet " & Nom_Onglet & " vas être supprimé." & Chr(10) & "Voulez-vous vraiment supprimer cet onglet ?", vbYesNo, "Supprimer ?") = vbNo Then
MsgBox "Action annulée.", vbInformation, "Annulé"
Exit Function
Else
Application.DisplayAlerts = False
Workbooks(Nom_Classeur).Sheets(Nom_Onglet).Delete
Application.DisplayAlerts = True
Exit For
End If
Else
Application.DisplayAlerts = False
Workbooks(Nom_Classeur).Sheets(Nom_Onglet).Delete
Application.DisplayAlerts = True
Exit For
End If
End If
Next
SupprimerOnglet = True
ErreurSuppression:
End Function
Conclusion :
J'attend vos commentaires et vos appréciations !
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.