Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Document aux nombreux onglets

  • Initiateur de la discussion Initiateur de la discussion Pomponette
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

P

Pomponette

Guest
Bonjour à tous,

Je me lance sur Excel, et je sollicite votre aide car je ne suis pas vraiment à l'aise avec la programmation ! Du coup, pour avoir parcouru ce forum, je sais que ce que je vais vous soumettre ici a déjà été traité mais, j'ai vraiment du mal à appliquer ce que j'ai pu trouver à mon cas :

J'ai 2 onglets :
- le 1er : "SOMMAIRE" contenant une liste de noms en colonne (A1:A180)
- le 2nd : "MODELE" étant un tableau "type"

J'aimerai créer des onglets :

- dont les noms correspondent aux valeurs de ma colonne A de la feuille SOMMAIRE
ex : nom de l'onglet 1 = Labo1, ... nom de l'onglet 180 = Labo 180
Si cela est possible, j'aimerais que lorsque je modifie une valeur dans ma liste, le nom de l'onglet correspondant se modifie de lui-même.

- dont le contenu soit celui de la feuille MODELE

Ultime requête : avoir dans ma feuille SOMMAIRE la liste de mes onglets en lien hypertexte.

J'espère avoir été assez précise dans la description de mon problème...

Un grand merci par avance pour votre aide qui me sera très précieuse !
 

Pièces jointes

Re : Document aux nombreux onglets

Bonjour à toutes et à tous,

Bienvenue sur XLD, Pomponette 🙂,

Une suggestion à tester dans le fichier joint.

Je ne sais 🙁 pas gérer ceci :

Si cela est possible, j'aimerais que lorsque je modifie une valeur dans ma liste, le nom de l'onglet correspondant se modifie de lui-même.

Toutefois, la modification de nom(s) d'onglet(s) est bien prise en compte dans la liste figurant dans "SOMMAIRE".

A bientôt.
 

Pièces jointes

Re : Document aux nombreux onglets

Bonsoir Pomponette et bienvenue, Doublezéro, bonsoir le forum,

Une aute proposition avec :

Trois macros événementielles (SelectionChange, Change et Activate), un bouton Onglets :
Code:
Private Sub Worksheet_Activate() 'à l'activation de l'onglet
Range("B1").Select 'permet d'avoir un ancien nom
End Sub
 
Private Sub Worksheet_SelectionChange(ByVal Target As Range) 'au changement de sélection dans l'onglet
If Target.Column = 1 Then 'condition : si le changement à lieu dans la colonne A
    If Target.Value <> "" Then an = Target.Value 'si la cellule sélectionnée n'est pas vide, définit la variable publique na
End If 'fin de la condition
End Sub
 
Private Sub Worksheet_Change(ByVal Target As Range) 'au changement dans l'onglet
If Target.Column = 1 Then 'condition : si le changement à lieu dans la colonne A
    nn = Target.Value 'définit la variable publique nn
    Sheets(an).Name = nn 'renomme l'onglet
    'actualise le lien hypertexte
    ActiveSheet.Hyperlinks.Add Anchor:=Target, Address:="", SubAddress:= _
    "'" & Target.Value & "'!A1", TextToDisplay:=Target.Value
End If 'fin de la condition
End Sub
 
Private Sub CommandButton1_Click() 'bouton "Onglets"
Range("B1").Select 'enlève le focus au bouton
Module1.creaOnglet 'lance la procédure "creaOnglet" du module "Module1"
End Sub
Deux variables publiques (an et nn) et la procédure du bouton :
Code:
Public an As String 'déclare la variable an (Ancien Nom)
Public nn As String 'déclare la variable nn (Nouveau Nom)
 
Sub creaOnglet()
Dim dico As Object 'déclare la variable dico (DICtiOnary)
Dim pl As Range 'déclare la variable pl (PLage)
Dim cel As Range 'déclare la variable cel (CELlule)
Dim tsd As Variant 'déclare la variable tsd (Tableau Sans Doublons)
Dim i As Integer 'déclare la variable i (incrément)
 
'création d'un tableau sans doublons
Set dico = CreateObject("scripting.dictionary") 'définit la variable dico
With Sheets("SOMMAIRE") 'prend en compte l'onglet "SOMMAIRE"
    Set pl = .Range("A1:A" & .Cells(Application.Rows.Count, 1).End(xlUp).Row) 'définit la plage pl
End With 'fin de la prise en compte de ...
For Each cel In pl 'boucle sur toutes les cellules cel de la plage pl
    dico(cel.Value) = "" 'alimente le dictionnaire
Next cel 'prochaine cellule de la boucle
tsd = dico.keys 'alimente le tableau tsd d'une liste dans doublons
 
'création des onglets
For i = 0 To UBound(tsd, 1) 'boucles sur toutes les valeurs du tableau tsd
    Sheets("Modele").Copy After:=Sheets(Sheets.Count) 'copie l'onglet "Modèle" en dernier
    On Error Resume Next 'gestion des erreurs (passe à la ligne suivante si une erreur est générée)
    ActiveSheet.Name = tsd(i) 'renomme l'onglet (génère une erreur si un onglet porte déjà ce nom)
    If Err > 0 Then 'condition : si une erreur a été générée
        Err = 0 'annule l'erreur
        Application.DisplayAlerts = False 'masque les messages d'Excel
        ActiveSheet.Delete 'supprime l'onglet actif
        Application.DisplayAlerts = True 'affiche les messages d'Excel
    End If 'fin de la condition
    On Error GoTo 0 'annule la gestion des erreurs
Next i 'prochaine valeur de la boucle
Sheets("SOMMAIRE").Activate 'active l'onglet "SOMMAIRE"
 
'liens hypertexte
For Each cel In pl 'boucle sur toutes les cellules cel de la plage pl
    'ajoute un lien hypertexte à la cellule
    ActiveSheet.Hyperlinks.Add Anchor:=cel, Address:="", SubAddress:= _
        "'" & cel.Value & "'!A1", TextToDisplay:=cel.Value
Next cel 'prochaine cellule de la boucle
End Sub
Le fichier :
 

Pièces jointes

Dernière édition:
Re : Document aux nombreux onglets

Wahou !! C'est super, vous êtes trop forts !
En plus, grâce aux commentaires de Robert, j'arrive à comprendre beaucoup mieux ce que tout cela veut dire !
Merci beaucoup à tous les deux ! Je vais pouvoir me mettre au travail ;-)
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
1
Affichages
457
Compte Supprimé 979
C
Réponses
3
Affichages
504
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…