0/5 (14 avis)
Vue 37 403 fois - Téléchargée 530 fois
'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
16 juin 2006 à 23:22
J'ai bien compris ton problème. Mais je ne connais pas la solution pour l'intant. Mais je te promet de chercher lundi !
Je reviens vers toi dès que j'ai du nouveau.
à lundi !
16 juin 2006 à 20:12
Petite question ici, j'en demande à ton expérience en VBA. J'utilise la méthode "Delete" pour supprimer une feuille (un onglet) Excel à l'intérieur de mon application (si on peut appeller du Excel/VBA une "application") et je me retrouve avec un problème un peu enmerdant. Voici la séquence d'opération:
- Une feuille cachée sert de "template" pour la création de nouveaux bordereaux d'expédition.
- À la création d'un nouveau bordereau, je copie cette feuille, le rend visible, en change le nom et le remplis. L'onglet copié contiens du code pour une raison très précise et est ainsi copié.
- Quand j'annule un de ces bordereau, j'utilise la méthode "Delete" pour l'onglet...
Le problème surviens alors: la feuille Excel est réèlement supprimé en bonne et due forme, mais le module de code créé pour cette feuille demeure et DE PLUS il n'est pas supprimable manuellement dans l'éditeur VBA.
Aurait-tu déjà fait face à ce problème? Si oui: connais-tu une facon de le contourner?
Merci :)
16 mars 2006 à 09:30
Pour intégrer le module dans ton projet, tu clique sur :
Fichier > Importer un fichier...
Et tu sélectionne le module. Il sera ainsi intégré à ton projet.
15 mars 2006 à 19:35
Cependant je suis débutant en vb et je n'ai pas su comment exécuter cette phrase :
"Il vous suffit d'intégrer ce module dans votre projet VB ou VBA"
merci de bien vouloir me répondre..
migmag1
12 août 2005 à 16:13
Seulement 6 ??? ok ok c'est pas un code révolutionnaire mais quand même ! Ne soyez pas trop sévères !
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.