Nom de la feuille automatique par rapport à une cellule
Résolu/Fermé
Liitch
Messages postés
73
Date d'inscription
lundi 15 juin 2015
Statut
Membre
Dernière intervention
3 novembre 2022
-
1 août 2017 à 10:08
Liitch Messages postés 73 Date d'inscription lundi 15 juin 2015 Statut Membre Dernière intervention 3 novembre 2022 - 4 août 2017 à 16:57
Liitch Messages postés 73 Date d'inscription lundi 15 juin 2015 Statut Membre Dernière intervention 3 novembre 2022 - 4 août 2017 à 16:57
A voir également:
- Nom onglet excel automatique
- Liste déroulante excel - Guide
- Formule excel - Guide
- Message automatique thunderbird - Guide
- Nom de l'adresse ✓ - Forum Réseaux sociaux
- Si et excel - Guide
1 réponse
Bonjour Liitch,
Fichier Excel 2007 : https://mon-partage.fr/f/g4NMpjlz/
Il y a 15 feuilles de "01" à "15" ; sur la 1ère feuille, saisis en C1 :
2 => "02" à "16"
3 => "03" à "17"
45 => "45" à "52", puis "01" à "07"
⚠ En C1 de la 1ère feuille du classeur, tu dois saisir un nombre,
sinon la macro plante ; tu dois saisir un nombre entre 1 et 52 ;
ça ne vérifie pas si ton nombre est correct.
Alt F11 pour voir la macro, puis revenir sur Excel.
-----------------------------------------
Dans ton vrai classeur :
⚠ Si ta 1ère feuille se nomme "01" (par exemple), la formule en C1 de la
feuille "02" ne doit pas être ='01'!C1+1 mais : =MOD('01'!C1;52)+1
Formule en C1 de la feuille "03" : =MOD('02'!C1;52)+1
Formule en C1 de la feuille "04" : =MOD('03'!C1;52)+1
Formule en C1 de la feuille "05" : =MOD('04'!C1;52)+1
etc...
Ce code VBA est à mettre dans le code de la 1ère feuille du classeur :
Ça renomme en 2 temps pour éviter l'erreur de renommage
d'une feuille par une autre déjà existante.
Merci de me donner ton avis.
Cordialement
Fichier Excel 2007 : https://mon-partage.fr/f/g4NMpjlz/
Il y a 15 feuilles de "01" à "15" ; sur la 1ère feuille, saisis en C1 :
2 => "02" à "16"
3 => "03" à "17"
45 => "45" à "52", puis "01" à "07"
⚠ En C1 de la 1ère feuille du classeur, tu dois saisir un nombre,
sinon la macro plante ; tu dois saisir un nombre entre 1 et 52 ;
ça ne vérifie pas si ton nombre est correct.
Alt F11 pour voir la macro, puis revenir sur Excel.
-----------------------------------------
Dans ton vrai classeur :
⚠ Si ta 1ère feuille se nomme "01" (par exemple), la formule en C1 de la
feuille "02" ne doit pas être ='01'!C1+1 mais : =MOD('01'!C1;52)+1
Formule en C1 de la feuille "03" : =MOD('02'!C1;52)+1
Formule en C1 de la feuille "04" : =MOD('03'!C1;52)+1
Formule en C1 de la feuille "05" : =MOD('04'!C1;52)+1
etc...
Ce code VBA est à mettre dans le code de la 1ère feuille du classeur :
Option Explicit Private Sub Worksheet_SelectionChange(ByVal Target As Range) Dim FX As Byte, k As Byte If Target.Address = "$C$1" Then Application.ScreenUpdating = False: k = Worksheets.Count For FX = 1 To k: Worksheets(FX).Name = "T" & FX: Next FX For FX = 1 To k Worksheets(FX).Name = Format(Worksheets(FX).[C1], "00") Next FX End If End Sub
Ça renomme en 2 temps pour éviter l'erreur de renommage
d'une feuille par une autre déjà existante.
Merci de me donner ton avis.
Cordialement
Modifié le 1 août 2017 à 15:33
Merci pour ta réponse !
Ca fonctionne mais quand je change le premier n° de semaine et que je re-clique dessus pour que les onglets se renomment (le 2e temps que tu as mentionné). Une fenêtre s'ouvre et marque :
Erreur d'exécution '1004':
Erreur définie par l'application ou par l'objet
Avec comme possibilité de cliquer sur "Fin", "Débogage" et "Aide"
Quand je clique sur "Débogage", ça m'ouvre la fenêtre pour visualiser le code et une partie du code est surlignée en jaune :
1 août 2017 à 15:55
Non, quand j'ai écris : « Ça renomme en 2 temps », c'est seulement parce que
dans le code VBA, il y a d'abord la ligne #8 : ça renomme avec "T" devant
(j'ai choisi "T" car c'est l'initiale de "Temporaire") ; ceci est le 1er renommage ;
ensuite le 2ème renommage est fait par la ligne #10.
Sur la 1ère feuille de ton classeur Excel, il faut juste entrer en C1 un nombre
entre 1 et 56 ; dès que tu fais Entrée, c'est ok : tu n'as pas besoin de faire un
double-clic sur le nombre ! ;)
Merci de me dire si après ces nouvelles infos, ton problème est réglé ;
si oui, merci de passer le sujet en résolu ; sinon, à te lire.
Modifié le 1 août 2017 à 16:14
Par contre, quand je rentre un nombre entre 1 et 52 en C1 dans la 1ère feuille du classeur et que je fais Entrée. Ca ne renomme pas directement l'ensemble des onglets.
Il faut que je clique (1 seul clic pas un double-clic) pour que ça actualise les noms des onglets.
Et quand je clique sur C1, là ça m'ouvre un message d'erreur avec écrit :
Erreur d'exécution '1004':
Erreur définie par l'application ou par l'objet
Avec comme possibilité de cliquer sur "Fin", "Débogage" et "Aide"
Et quand je clique sur "Débogage", là je remarque que la ligne de code :
est surlignée en jaune
Alors peut être que le fait d'avoir une macro avant change quelque chose ?
Parce que du coup ça me donne ça avec mes deux macros :
Mais sinon ça marche, c'est juste le message d'erreur qui s'affiche, donc il doit y avoir un petit problème quelque part, non ?
1 août 2017 à 17:46
Sur mon fichier Excel, après avoir saisi un nombre en C1 et validé par Entrée,
ça renomme aussitôt l'ensemble des onglets ; sur ce même fichier Excel que
j'ai transmis dans mon message de 12:31, ça ne le fait pas ?
---------------------------------------------------
Dans ton vrai fichier, tu as bien mis mon code uniquement à l'emplacement
du code de la 1ère feuille, n'est-ce pas ? tu ne dois pas le faire pour toutes
les feuilles du classeur.
Alt F11 ; côté gauche et en haut, juste sous la ligne "Microsoft Excel Objets",
clique sur la 1ère feuille que tu vois, puis fais Entrée => ça ouvre à droite
la bonne page : c'est là que tu dois placer ma macro, et seulement là =>
si tu l'as mis ailleurs, il faut l'enlever !
---------------------------------------------------
Ce que j'ai fait est indépendant de Worksheet_BeforeDoubleClick()
mais regarde ta ligne temp = Array("ü", "") ; on dirait qu'il manque
un caractère ! cette sub est pour un double-clic en colonne B ;
ma sub est pour un changement en C1.
---------------------------------------------------
Qu'une macro soit placée avant une autre ou après n'a pas d'incidence
sur l'exécution du code : même résultat ; mais personnellement, si une
sub A() est appelée par une sub B(), je préfère mettre A() avant B().
D'autre part, regarde ta ligne isolée entre tes deux macros :
Option Explicit doit être tout en haut du module => en haut
de ta page.
2 août 2017 à 09:16
---------------------------------------------------------
Oui, je l'ai bien mise sur une seule feuille. La première.
---------------------------------------------------------
Oui je sais, c'est une macro que moi j'ai ajouté. Et non il ne manque pas de caractère c'est pour qu'on puisse "décocher" en effectuant un deuxième double-clic
---------------------------------------------------------
J'ai pas compris avec tes sub A() & sub B()
Du coup j'ai fait le changement pour Option Explicit, mais ça fait exactement pareil :
- Obligé de resélectionner la cellule C1 (celle où j'ai entré un chiffre entre 1 et 52) pour renommer l'ensemble des onglets
- Message d'erreur qui s'affiche quand je sélectionne C1
- La ligne de code est toujours surligné en jaune
Pourtant je comprends pas, j'ai fait un copier coller de ta macro...
J'ai regardé dans les options d'Excel, mais je n'ai rien trouvé qui aurait pu me bloquer.