Renommer onglet par macro ?
Résolu/Fermé
waea
Messages postés
42
Date d'inscription
lundi 18 janvier 2010
Statut
Membre
Dernière intervention
31 août 2015
-
6 févr. 2010 à 19:29
Bidouilleu_R Messages postés 1181 Date d'inscription mardi 27 mai 2008 Statut Membre Dernière intervention 12 juillet 2012 - 11 févr. 2010 à 14:34
Bidouilleu_R Messages postés 1181 Date d'inscription mardi 27 mai 2008 Statut Membre Dernière intervention 12 juillet 2012 - 11 févr. 2010 à 14:34
A voir également:
- Renommer onglet par macro ?
- Renommer plusieurs fichiers - Guide
- Macro word - Guide
- Macro logiciel - Télécharger - Organisation
- Renommer iphone - Guide
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
20 réponses
tompols
Messages postés
1273
Date d'inscription
jeudi 29 juillet 2004
Statut
Contributeur
Dernière intervention
25 novembre 2013
435
9 févr. 2010 à 22:20
9 févr. 2010 à 22:20
Bonjour tt le monde,
j'ai hésité mais bon allez jm'en mele......si et seulement si tu nous donnes les bonnes infos waea !!!
Je te cite : "j'adapte avec mon application parent, mais seulement au niveau des cellules, ou de petites choses qui (je crois) n'ont aucune incidence" => bah c ptet bien là qu'est tout le problème, tout ceux qui te donnent du code ici l'ont testé...mais avec les parametres que tu donnes ! Le noms, changent régulièrement, on te fais un code pour une cellule, elle bouge (B7 => C13 et pareil sur d'autres posts) etc....A tous les coups tu as inséré/ supprimé des onglets et le CodeName de ce que tu appelles 3e onglet n'est pas Feuil3....
Alors voilà, soit tu dis tout et même mieux tu postes ton classeur de travail, soit tu fais "galérer" tout les gens compétents et de bonne volonté qui essaient de t'aider.....
tu as des problèmes simples mais tu compliques la vie de ceux qui veulent t'aider, c pas cool franchement....et c'est pas la première fois comme l'as dit eric.....
j'ai hésité mais bon allez jm'en mele......si et seulement si tu nous donnes les bonnes infos waea !!!
Je te cite : "j'adapte avec mon application parent, mais seulement au niveau des cellules, ou de petites choses qui (je crois) n'ont aucune incidence" => bah c ptet bien là qu'est tout le problème, tout ceux qui te donnent du code ici l'ont testé...mais avec les parametres que tu donnes ! Le noms, changent régulièrement, on te fais un code pour une cellule, elle bouge (B7 => C13 et pareil sur d'autres posts) etc....A tous les coups tu as inséré/ supprimé des onglets et le CodeName de ce que tu appelles 3e onglet n'est pas Feuil3....
Alors voilà, soit tu dis tout et même mieux tu postes ton classeur de travail, soit tu fais "galérer" tout les gens compétents et de bonne volonté qui essaient de t'aider.....
tu as des problèmes simples mais tu compliques la vie de ceux qui veulent t'aider, c pas cool franchement....et c'est pas la première fois comme l'as dit eric.....
Bidouilleu_R
Messages postés
1181
Date d'inscription
mardi 27 mai 2008
Statut
Membre
Dernière intervention
12 juillet 2012
289
10 févr. 2010 à 11:48
10 févr. 2010 à 11:48
met une copie sur ci-joint.fr et colle le lien dans un post.
Enlève les données confidentielles et tout et tout.
parce que moi je n'ai pas d'erreur.... la variable nomFeuille ne serait pas renseignée
parceque la méthode à droite du signe = n'est pas correct.
as-tu corrigé le nom de la feuille - utilise copier / coller ( ça supprime la dyslexie)
le post 31 aurait dû te renseigner....
Enlève les données confidentielles et tout et tout.
parce que moi je n'ai pas d'erreur.... la variable nomFeuille ne serait pas renseignée
parceque la méthode à droite du signe = n'est pas correct.
as-tu corrigé le nom de la feuille - utilise copier / coller ( ça supprime la dyslexie)
le post 31 aurait dû te renseigner....
Bidouilleu_R
Messages postés
1181
Date d'inscription
mardi 27 mai 2008
Statut
Membre
Dernière intervention
12 juillet 2012
289
10 févr. 2010 à 08:59
10 févr. 2010 à 08:59
j'ai tout fait et la touche F8 ne donne rien...............;;rien ne se passe
ce que tu dis n'es pas possible...
le code fait ceci.
1) récupère le futur nom de l'onglet et le stock dans nomFeuille.
2) si la cellule C13 en feuille("Accueil") est vide on quitte
Ah! oui! on écrit accueil et pas acceuil (phonétiquement ça donne asseuil) perso j'ai fait un copié collé de ton post 21
donc chez moi il y a accueil partout.
Attention les charactère spéciaux qui sont interdits pour une feuille ne sont pas gérés
3) pour chaque feuille (sh) de ton classeur
faire a) si le nom de code de la feuille est "Feuil3" alors on la nomme avec ce que l'on a dans nomFeuille
4) sinon on ne fait rien
5) si on a rien trouvé ( aucune feuille correspondante) on ne touche à rien....
donc dans tous les cas, sauf charactère spéciaux interdits pour les noms de feuille, ça marche.
ce que tu dis n'es pas possible...
le code fait ceci.
1) récupère le futur nom de l'onglet et le stock dans nomFeuille.
2) si la cellule C13 en feuille("Accueil") est vide on quitte
Ah! oui! on écrit accueil et pas acceuil (phonétiquement ça donne asseuil) perso j'ai fait un copié collé de ton post 21
donc chez moi il y a accueil partout.
Attention les charactère spéciaux qui sont interdits pour une feuille ne sont pas gérés
3) pour chaque feuille (sh) de ton classeur
faire a) si le nom de code de la feuille est "Feuil3" alors on la nomme avec ce que l'on a dans nomFeuille
4) sinon on ne fait rien
5) si on a rien trouvé ( aucune feuille correspondante) on ne touche à rien....
donc dans tous les cas, sauf charactère spéciaux interdits pour les noms de feuille, ça marche.
bonjour,
en refaisant la procédure d'hier, j'ai avec l'espion ceci :
Break : : nomFeuille : <Argument ou appel de procédure incorrect> : Empty : Module1.vers_class1 (si je choisi arrêt si la valeur est vraie) il y a une main avec un post it dessus!
est-ce que cela peut vous renseigner parce que moi, je coule !
A+
en refaisant la procédure d'hier, j'ai avec l'espion ceci :
Break : : nomFeuille : <Argument ou appel de procédure incorrect> : Empty : Module1.vers_class1 (si je choisi arrêt si la valeur est vraie) il y a une main avec un post it dessus!
est-ce que cela peut vous renseigner parce que moi, je coule !
A+
Gord21
Messages postés
918
Date d'inscription
samedi 21 novembre 2009
Statut
Membre
Dernière intervention
20 mars 2013
289
6 févr. 2010 à 21:03
6 févr. 2010 à 21:03
Bonjour,
En supposant que tu travailles avec Excel, la réponse est oui.
Sheets("Feuil2").Name = "Bidulle"
Est-ce que Bidulle est le nom de te cellule ou sa valeur ?
En supposant que tu travailles avec Excel, la réponse est oui.
Sheets("Feuil2").Name = "Bidulle"
Est-ce que Bidulle est le nom de te cellule ou sa valeur ?
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Bidouilleu_R
Messages postés
1181
Date d'inscription
mardi 27 mai 2008
Statut
Membre
Dernière intervention
12 juillet 2012
289
6 févr. 2010 à 21:24
6 févr. 2010 à 21:24
oui! c'est possible!
premier bouton
sub renomme()
sheets(2).name="Bidule" la feuille portant l'index 2 sera renommée ( à la création du classeur c'était la feuille 2)
End sub
deuxieme bouton
premier bouton
sub renomme()
sheets(2).name="Bidule" la feuille portant l'index 2 sera renommée ( à la création du classeur c'était la feuille 2)
End sub
deuxieme bouton
Sub initialise() Dim sh As Variant Dim i As Integer i = 0 For Each sh In Worksheets i = i + 1 sh.Name = "Feuil" & i Next End Sub
Bonjour et merci d'avoir pris le temps de répondre
mais serait-il possible d'avoir quelques explications sur le code ?
par ex, à quoi correspond sh, et i ? ce sont des variables c'est ça ?
il est toujours intéressant de comprendre ce que vous, les experts nous donner !
encore merci, je vais tester le code et vous tenir au courant
A+
waea
mais serait-il possible d'avoir quelques explications sur le code ?
par ex, à quoi correspond sh, et i ? ce sont des variables c'est ça ?
il est toujours intéressant de comprendre ce que vous, les experts nous donner !
encore merci, je vais tester le code et vous tenir au courant
A+
waea
waea
Messages postés
42
Date d'inscription
lundi 18 janvier 2010
Statut
Membre
Dernière intervention
31 août 2015
>
waea
6 févr. 2010 à 23:03
6 févr. 2010 à 23:03
Par ailleurs, en ce qui concerne la 1ère macro, il faudrait, si cela est possible que le nom de l'onglet soit celui, qui peut changer, dans une cellule
par ex en B7 j'ai une cellule où je j'écris bidulle, mais une fois que je réiniitalise les onglets, je voudrais pouvoir de nouveau changer le nom qui reviendrait de nouveau dans le même onglet;
est-ce que tout cela est clair pour vous ????
voilà un petit plus!
merci encore
par ex en B7 j'ai une cellule où je j'écris bidulle, mais une fois que je réiniitalise les onglets, je voudrais pouvoir de nouveau changer le nom qui reviendrait de nouveau dans le même onglet;
est-ce que tout cela est clair pour vous ????
voilà un petit plus!
merci encore
waea
Messages postés
42
Date d'inscription
lundi 18 janvier 2010
Statut
Membre
Dernière intervention
31 août 2015
>
waea
Messages postés
42
Date d'inscription
lundi 18 janvier 2010
Statut
Membre
Dernière intervention
31 août 2015
7 févr. 2010 à 11:58
7 févr. 2010 à 11:58
Encore qq petites questions :
voilà, j'ai 7 feuilles dans le classeur, et la 1ère feuille renommée est la 3e, puis la 4e, etc....
je souhaiterais que la macro de ré initialisation des onglets ne débute qu'à la 3e feuille (les deux premières étant nommer à titre définitif).
cela est-il possible et comment ?
2nd question : la macro qui renomme les onglets doit permettre d'ouvrir directement la feuille. J'essaye d'inclure un code mais je coince!!!!!!
quelqu'un peut-il me venir en aide
merci d'avance
voilà, j'ai 7 feuilles dans le classeur, et la 1ère feuille renommée est la 3e, puis la 4e, etc....
je souhaiterais que la macro de ré initialisation des onglets ne débute qu'à la 3e feuille (les deux premières étant nommer à titre définitif).
cela est-il possible et comment ?
2nd question : la macro qui renomme les onglets doit permettre d'ouvrir directement la feuille. J'essaye d'inclure un code mais je coince!!!!!!
quelqu'un peut-il me venir en aide
merci d'avance
Gord21
Messages postés
918
Date d'inscription
samedi 21 novembre 2009
Statut
Membre
Dernière intervention
20 mars 2013
289
>
waea
7 févr. 2010 à 14:58
7 févr. 2010 à 14:58
Bonjour,
Oui, sh et i sont des variables. Dim permet de déclarer les variables et As est suivi du type (Variant, entier, ...)
Par contre, par rapport à la solution de Bidoulleu_R, je te proposerais plutôt
Le nom réinitialisé est celui qu'avait la feuille à sa création, indépendamment de l'ordre des feuilles dans le classeur : tout dépend de ton besoin. Par exemple, tu as un classeur de 3 feuilles, tu déplaces la feuille 3 entre les feuilles 1 et 2. Tu renommes tes feuilles. La macro de Bidouilleu_R te retournera dans l'ordre Feuil1, Feuil2, Feuil3, la mienne te donnera Feuil1, Feuil3, Feuil2.
Ton post 4 n'est pas clair pour moi :par ex en B7 j'ai une cellule où je j'écris bidulle, mais une fois que je réiniitalise les onglets, je voudrais pouvoir de nouveau changer le nom qui reviendrait de nouveau dans le même onglet; = dans quel onglet ? Après réinitialisation, comment se nomme ton onglet Bidulle ?
Dans le post 5 la macro qui renomme les onglets doit permettre d'ouvrir directement la feuille= de quelle feuille parles-tu ?
Oui, sh et i sont des variables. Dim permet de déclarer les variables et As est suivi du type (Variant, entier, ...)
Par contre, par rapport à la solution de Bidoulleu_R, je te proposerais plutôt
Sub initialise() Dim sh As Worksheet For Each sh In Worksheets sh.Name = sh.CodeName Next sh End Sub
Le nom réinitialisé est celui qu'avait la feuille à sa création, indépendamment de l'ordre des feuilles dans le classeur : tout dépend de ton besoin. Par exemple, tu as un classeur de 3 feuilles, tu déplaces la feuille 3 entre les feuilles 1 et 2. Tu renommes tes feuilles. La macro de Bidouilleu_R te retournera dans l'ordre Feuil1, Feuil2, Feuil3, la mienne te donnera Feuil1, Feuil3, Feuil2.
Ton post 4 n'est pas clair pour moi :par ex en B7 j'ai une cellule où je j'écris bidulle, mais une fois que je réiniitalise les onglets, je voudrais pouvoir de nouveau changer le nom qui reviendrait de nouveau dans le même onglet; = dans quel onglet ? Après réinitialisation, comment se nomme ton onglet Bidulle ?
Dans le post 5 la macro qui renomme les onglets doit permettre d'ouvrir directement la feuille= de quelle feuille parles-tu ?
waea
Messages postés
42
Date d'inscription
lundi 18 janvier 2010
Statut
Membre
Dernière intervention
31 août 2015
>
Gord21
Messages postés
918
Date d'inscription
samedi 21 novembre 2009
Statut
Membre
Dernière intervention
20 mars 2013
7 févr. 2010 à 16:07
7 févr. 2010 à 16:07
Bonjour et merci d'avoir répondu;
je vais expliquer un peu plus
j'ai une cellule ex: B7 dans laquelle je note bidulle.....
avec un bouton et la macro correspondante, l'onglet n° 3 devient bidulle .............et la feuille devrait s'ouvrir à l'écran
après ré initialisation, la feuille 3 devient Feuil3 (comme à l'origine), alors que les feuilles 1 ET 2 ont déjà été renommées (et je souhaiterais qu'elles ne soient pas touchées par la réinitialisation) ! ex la feuille 1 est "accueil" et la feuille "type".
voilà je l'espère une explication plus claire de ce que je souhaiterais.
de mon côté je fais des essais mais sans succés
merci de m'aider
waea
je vais expliquer un peu plus
j'ai une cellule ex: B7 dans laquelle je note bidulle.....
avec un bouton et la macro correspondante, l'onglet n° 3 devient bidulle .............et la feuille devrait s'ouvrir à l'écran
après ré initialisation, la feuille 3 devient Feuil3 (comme à l'origine), alors que les feuilles 1 ET 2 ont déjà été renommées (et je souhaiterais qu'elles ne soient pas touchées par la réinitialisation) ! ex la feuille 1 est "accueil" et la feuille "type".
voilà je l'espère une explication plus claire de ce que je souhaiterais.
de mon côté je fais des essais mais sans succés
merci de m'aider
waea
eriiic
Messages postés
24570
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
23 avril 2024
7 215
7 févr. 2010 à 18:47
7 févr. 2010 à 18:47
Bonjour,
Par curiosité pourrais-tu dire qu'est-ce qui te pousse à changer le nom de l'onglet pour le retablir ensuite ?
Peut-être qu'il y a une autre façon de faire...
eric
Par curiosité pourrais-tu dire qu'est-ce qui te pousse à changer le nom de l'onglet pour le retablir ensuite ?
Peut-être qu'il y a une autre façon de faire...
eric
waea
Messages postés
42
Date d'inscription
lundi 18 janvier 2010
Statut
Membre
Dernière intervention
31 août 2015
7 févr. 2010 à 19:23
7 févr. 2010 à 19:23
Bonjour,
tout simplement parce que comme ça je retrouverais le bon onglet parmi tous les autres;
et pour la seconde question, c'est une solution pour retrouver mon classeur dans son état d'origine sans avoir à tout remettre moi même.
le classeur sera "nettoyé" et prêt à une nouvelle utilisation
j'espère avoir répondu à vos questions............mais si je peux me permettre je piaffe d'impatience d'avoir des petites réponses pour faire avancer mon projet.
merci d'avoir pris connaissance de mon post
waea
tout simplement parce que comme ça je retrouverais le bon onglet parmi tous les autres;
et pour la seconde question, c'est une solution pour retrouver mon classeur dans son état d'origine sans avoir à tout remettre moi même.
le classeur sera "nettoyé" et prêt à une nouvelle utilisation
j'espère avoir répondu à vos questions............mais si je peux me permettre je piaffe d'impatience d'avoir des petites réponses pour faire avancer mon projet.
merci d'avoir pris connaissance de mon post
waea
eriiic
Messages postés
24570
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
23 avril 2024
7 215
7 févr. 2010 à 19:33
7 févr. 2010 à 19:33
comme ça je retrouverais le bon onglet parmi tous les autres
Qcq chose m'échappe encore... C'est au cas où qcq renomme l'onglet ?
Qu'il s'appelle 'toto' ou 'tata' qu'est-ce que ça change ?
Si personne ne le renomme tu le retrouves, si qcq'un le renomme c'est perdu pareil...
Eventuellement mémorise les name et les codename (qui ne changent jamais même si tu renommes l'onglet ou le déplace) et rétabli ensuite
eric
Qcq chose m'échappe encore... C'est au cas où qcq renomme l'onglet ?
Qu'il s'appelle 'toto' ou 'tata' qu'est-ce que ça change ?
Si personne ne le renomme tu le retrouves, si qcq'un le renomme c'est perdu pareil...
Eventuellement mémorise les name et les codename (qui ne changent jamais même si tu renommes l'onglet ou le déplace) et rétabli ensuite
eric
Bidouilleu_R
Messages postés
1181
Date d'inscription
mardi 27 mai 2008
Statut
Membre
Dernière intervention
12 juillet 2012
289
8 févr. 2010 à 09:30
8 févr. 2010 à 09:30
Bonjour à tous,
Merci à Gord21 pour sh.Name = sh.CodeName et pour le suivi. de plus les remarques
du post 6 et 8 (eriic) sont pertinentes... on a souvent tendance à "coder" tout et n'importe quoi
Ce n'est pas parce qu'il est possible de le faire que c'est la meilleure solution.
Merci à Gord21 pour sh.Name = sh.CodeName et pour le suivi. de plus les remarques
du post 6 et 8 (eriic) sont pertinentes... on a souvent tendance à "coder" tout et n'importe quoi
Ce n'est pas parce qu'il est possible de le faire que c'est la meilleure solution.
waea
Messages postés
42
Date d'inscription
lundi 18 janvier 2010
Statut
Membre
Dernière intervention
31 août 2015
8 févr. 2010 à 10:24
8 févr. 2010 à 10:24
Bonjour,
excusez moi tous, mais si je peux me permettre, il me semble que la pertinence de ma demande ne doit pas rentrer en ligne de compte !
si cela m'intéresse, je ne vois pas pourquoi je ne pourrais pas essayer !
si je vous demande votre aide c'est parce que vous êtes plus qualifiés que moi............et je constate que l'esprit ouvert des gens de l'informatique laisse un peu à désirer.
si vous prenez le temps de me répondre, pourquoi ne pas vouloir me donner un petit coup de main ??????
excusez moi tous, mais si je peux me permettre, il me semble que la pertinence de ma demande ne doit pas rentrer en ligne de compte !
si cela m'intéresse, je ne vois pas pourquoi je ne pourrais pas essayer !
si je vous demande votre aide c'est parce que vous êtes plus qualifiés que moi............et je constate que l'esprit ouvert des gens de l'informatique laisse un peu à désirer.
si vous prenez le temps de me répondre, pourquoi ne pas vouloir me donner un petit coup de main ??????
Bidouilleu_R
Messages postés
1181
Date d'inscription
mardi 27 mai 2008
Statut
Membre
Dernière intervention
12 juillet 2012
289
8 févr. 2010 à 11:19
8 févr. 2010 à 11:19
ne t'offusque pas wea,
Les remarques de eriic et de Gord21 sont appropriées, elles sont sutout faites dans le but de t'aider.
Ce n'est pas une critique négative. Le fait est que la plus part du temps, l'utilisateur a une vision personnelle de
la situation, cela ne signifie pas qu'elle soit négative ou erronée. Poser la question du besoin permet à
l'utilisateur de lever certaines ambiguités, en l'abscence de réponse on peut se retrouver dans une situation
ou on fini par programmer quelque chose qui existe déjà mais que l'utilisateur ne connaissait pas et que le programmeur n'a pas suggeré.
Ici tu trouveras toujours de l'aide, sans moquerie, sans esprit pédant, du partage de connaissance simplement.
Si donc tu as besoin de précision supplémentaire pour ton besoin. je reste là.
A+
R
Les remarques de eriic et de Gord21 sont appropriées, elles sont sutout faites dans le but de t'aider.
Ce n'est pas une critique négative. Le fait est que la plus part du temps, l'utilisateur a une vision personnelle de
la situation, cela ne signifie pas qu'elle soit négative ou erronée. Poser la question du besoin permet à
l'utilisateur de lever certaines ambiguités, en l'abscence de réponse on peut se retrouver dans une situation
ou on fini par programmer quelque chose qui existe déjà mais que l'utilisateur ne connaissait pas et que le programmeur n'a pas suggeré.
Ici tu trouveras toujours de l'aide, sans moquerie, sans esprit pédant, du partage de connaissance simplement.
Si donc tu as besoin de précision supplémentaire pour ton besoin. je reste là.
A+
R
Bon, alors maintenant on peut peut-être avancé un peu !
mes demandes restent les mêmes !
dans les messages précédents j'ai expliqué (je l'espère clairement) ce qui me posais problème.
1 l'onglet renommé ne s'ouvre pas directement.............;et je le souhaiterais.
je sais ouvrir une feuille, mais lorsqu'elle a été renommée et que ce nom peut changer, je ne troouve pas le code.
2 de plus au niveau de la ré initialisation des onglets, le code part de la 1ère feuille (normal) mais je souhaiterais qu'elle parte de la 3e feuille, pour que les 2 premières restent comme figées.
voilà, voilou !
un petit coup de main?
merci
waea
mes demandes restent les mêmes !
dans les messages précédents j'ai expliqué (je l'espère clairement) ce qui me posais problème.
1 l'onglet renommé ne s'ouvre pas directement.............;et je le souhaiterais.
je sais ouvrir une feuille, mais lorsqu'elle a été renommée et que ce nom peut changer, je ne troouve pas le code.
2 de plus au niveau de la ré initialisation des onglets, le code part de la 1ère feuille (normal) mais je souhaiterais qu'elle parte de la 3e feuille, pour que les 2 premières restent comme figées.
voilà, voilou !
un petit coup de main?
merci
waea
Bidouilleu_R
Messages postés
1181
Date d'inscription
mardi 27 mai 2008
Statut
Membre
Dernière intervention
12 juillet 2012
289
8 févr. 2010 à 13:38
8 févr. 2010 à 13:38
premier bouton
place ce bouton sur la feuille qui contient le nom de la feuille (bidule)
place le code ci-dessous dans un module .
Deuxième bouton
place ce code dans le même module
les feuille 1 et 2 ne seront pas renomées.
tu dis si cela convient et si oui met en résolu s'il te plait.
place ce bouton sur la feuille qui contient le nom de la feuille (bidule)
place le code ci-dessous dans un module .
Sub TrouveFeuille() Dim nomFeuille As String ' variable qui va contenir "bidule" : le nouveau nom de la feuille Dim sh As Worksheet ' nomFeuille = ActiveSheet.Range("b7") ' la cellule B7 contient ton nom de feuille If nomFeuille="" then nomFeuille="Feuil3" ' si il y a n'importe quoi dans la cellule... For Each sh In Worksheets If sh.CodeName = "Feuil3" Then sh.Name = nomFeuille sh.Select Exit For ' on a trouvé on quitte End If Next sh End Sub
Deuxième bouton
place ce code dans le même module
les feuille 1 et 2 ne seront pas renomées.
Sub initialise() Dim sh As Worksheet For Each sh In Worksheets If (sh.CodeName <> "Feuil1") And (sh.CodeName <> "Feuil2") Then sh.Name = sh.CodeName End If Next sh End Sub
tu dis si cela convient et si oui met en résolu s'il te plait.
waea
Messages postés
42
Date d'inscription
lundi 18 janvier 2010
Statut
Membre
Dernière intervention
31 août 2015
8 févr. 2010 à 15:06
8 févr. 2010 à 15:06
Bonjour,
merci tout d'abord de me donner des éléments concrets !
en ce qui concerne le 2nd code, j'ai essayé mais en fait se sont les 2 premières feuilles qui se ré initialisent et pas les autres.
la 1ère s'appelle accueil et la seconde type............les autres (qui ont été renommées) doivent reprendre leur aspect initial Feuil3, feuil4, etc....;
en ce qui concerne le 1er code, il bloque au niveau de sh.Name = nomFeuille qui apparait en surbrillance ?
j'adapte avec mon application parent, mais seulement au niveau des cellules, ou de petites choses qui (je crois) n'ont aucune incidence.
je suis désolé mais j'ai encore besoin d'aide !
merci
waea
merci tout d'abord de me donner des éléments concrets !
en ce qui concerne le 2nd code, j'ai essayé mais en fait se sont les 2 premières feuilles qui se ré initialisent et pas les autres.
la 1ère s'appelle accueil et la seconde type............les autres (qui ont été renommées) doivent reprendre leur aspect initial Feuil3, feuil4, etc....;
en ce qui concerne le 1er code, il bloque au niveau de sh.Name = nomFeuille qui apparait en surbrillance ?
j'adapte avec mon application parent, mais seulement au niveau des cellules, ou de petites choses qui (je crois) n'ont aucune incidence.
je suis désolé mais j'ai encore besoin d'aide !
merci
waea
Bidouilleu_R
Messages postés
1181
Date d'inscription
mardi 27 mai 2008
Statut
Membre
Dernière intervention
12 juillet 2012
289
8 févr. 2010 à 15:59
8 févr. 2010 à 15:59
pour la deuxième macro
la feuille qui se nomme accueil ne sera pas renommée
idem pour type
pour la deuxième partie,
As-tu renseignée la feuille contenant le bouton en B7 avec le nom bidule ou autre?
sinon quel est l'erreur? le numero? parceque moi ça marche.
la feuille qui se nomme accueil ne sera pas renommée
idem pour type
Sub initialise() Dim sh As Worksheet For Each sh In Worksheets If (sh.Name = "type") And (sh.CodeName = "accueil") Then ' le nom de tes feuilles else sh.Name = sh.CodeName End If Next sh End Sub
pour la deuxième partie,
As-tu renseignée la feuille contenant le bouton en B7 avec le nom bidule ou autre?
sinon quel est l'erreur? le numero? parceque moi ça marche.
waea
Messages postés
42
Date d'inscription
lundi 18 janvier 2010
Statut
Membre
Dernière intervention
31 août 2015
8 févr. 2010 à 19:44
8 févr. 2010 à 19:44
re bonjour,
bon alors ....
en ce qui concerne le code pour ré initialiser : en appliquant votre code j'ai erreur 1004 : impossible de renommer une feuille comme une autre !
la Feuil2 prend la place de la feuille accueil
la Feuil1 prend la place de la feuille type
et la feuille 3 qui a été renommée bidulle, reste bidulle
la Feuil4, reste 4
etc;;;;
et en ce qui concerne le code pour afficher la feuille il bloque aussi et voiçi ce que j'ai écrit C13 est la cellule qui peut changer de nom
Dim nomFeuille As String
Dim sh As Worksheet
nomFeuille = ActiveSheet.Range("C13") ' la cellule C13 contient ton nom de feuille
If nomFeuille = "" Then nomFeuille = "Feuil3" ' si il y a n'importe quoi dans la cellule...
For Each sh In Worksheets
If sh.CodeName = "Feuil3" Then
sh.Name = nomFeuille ça bloque là !
sh.Select
Exit For ' on a trouvé on quitte
End If
Next sh
End Sub
voilà !
merci de continuer à me coacher
waea
bon alors ....
en ce qui concerne le code pour ré initialiser : en appliquant votre code j'ai erreur 1004 : impossible de renommer une feuille comme une autre !
la Feuil2 prend la place de la feuille accueil
la Feuil1 prend la place de la feuille type
et la feuille 3 qui a été renommée bidulle, reste bidulle
la Feuil4, reste 4
etc;;;;
et en ce qui concerne le code pour afficher la feuille il bloque aussi et voiçi ce que j'ai écrit C13 est la cellule qui peut changer de nom
Dim nomFeuille As String
Dim sh As Worksheet
nomFeuille = ActiveSheet.Range("C13") ' la cellule C13 contient ton nom de feuille
If nomFeuille = "" Then nomFeuille = "Feuil3" ' si il y a n'importe quoi dans la cellule...
For Each sh In Worksheets
If sh.CodeName = "Feuil3" Then
sh.Name = nomFeuille ça bloque là !
sh.Select
Exit For ' on a trouvé on quitte
End If
Next sh
End Sub
voilà !
merci de continuer à me coacher
waea
eriiic
Messages postés
24570
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
23 avril 2024
7 215
8 févr. 2010 à 19:42
8 févr. 2010 à 19:42
excusez moi tous, mais si je peux me permettre, il me semble que la pertinence de ma demande ne doit pas rentrer en ligne de compte !
Au contraire, permet nous de juger (bien ou mal) la pertinence des demandes et de ne vouloir travailler dessus que si ça nous parait pertinent justement.
Tu n'es pas au boulot où tu peux sans doute de permettre des 'je ne vous demande pas de reflechir mais d'executer!'
et je constate que l'esprit ouvert des gens de l'informatique laisse un peu à désirer.
Parce que questionner pour valider ou non une solution (alors qu'il en existe sans aucun doute plusieurs) c'est se montrer fermé ??
Et bien moi je te trouve fat de penser avoir trouvé LA solution.
De plus ce n'est pas le premier post où tu te conduis ainsi...
Bonne continuation des tes problèmes
eric
Au contraire, permet nous de juger (bien ou mal) la pertinence des demandes et de ne vouloir travailler dessus que si ça nous parait pertinent justement.
Tu n'es pas au boulot où tu peux sans doute de permettre des 'je ne vous demande pas de reflechir mais d'executer!'
et je constate que l'esprit ouvert des gens de l'informatique laisse un peu à désirer.
Parce que questionner pour valider ou non une solution (alors qu'il en existe sans aucun doute plusieurs) c'est se montrer fermé ??
Et bien moi je te trouve fat de penser avoir trouvé LA solution.
De plus ce n'est pas le premier post où tu te conduis ainsi...
Bonne continuation des tes problèmes
eric
Bidouilleu_R
Messages postés
1181
Date d'inscription
mardi 27 mai 2008
Statut
Membre
Dernière intervention
12 juillet 2012
289
9 févr. 2010 à 08:32
9 févr. 2010 à 08:32
bonjour,
heu! j'ai fais une erreur... on ne peut pas renommer une feuille par son nom.
mon boulot c'est de prédire le comportement des gens, des objets, des animaux....
en te l'appliquant j'en es déduit que tu ne suivrait pas les instructions que l'on te transmettrait et que
tu développerais une forme de paranoïa protectioniste ( oui je sais ça passe mal mais c'est humain)
ça s'explique comme ça : je te dis pas tout parce que c'est moi qui décide mais c'est une mauvaise interpretation du pouvoir décisionnel . celui qui détient l'information ne prend pas forcément la décision....
Fin de leçon.
Tu as dis j'ai une cellule "B7" elle se transforme en C13 ( c'est ton droit je discute pas)
j'ai une feuille "bidule" (Utilisation d'un mot inutile pour cacher ou commettre une erreur)
j'ai dit :"place ce bouton sur la feuille qui contient le nom de la feuille (bidule) "
peut-être pas clair... tu places ton bouton sur la feuille que tu veux ( pas la peine de me donner le nom..
la methode ActiveSheet ( feuille Active, c'est celle que tu utilises) saisira les information en B7 ou C13 (comme tu veux) MAIS il faut écrire bidule en C13 ou B7 ce que tu n'a pas fait.
Explication: tu as clicker sur le bouton avec un vide en C13 et la ligne ..
If nomFeuille = "" Then nomFeuille = "Feuil3" ' si il y a n'importe quoi dans la cellule...
nomFeuille a pris la valeur "Feuil3". La boucle suivante a trouvé la Feuille3 et a voulu la renommée en Feuil3,
mais ce nom existe déjà.....
Dim nomFeuille As String
Dim sh As Worksheet
nomFeuille = ActiveSheet.Range("C13") ' la cellule C13 contient ton nom de feuille
If nomFeuille = "" Then exit sub ' si il y a un vide on quitte
For Each sh In Worksheets
If sh.CodeName = "Feuil3" Then
sh.Name = nomFeuille
sh.Select
Exit For ' on a trouvé on quitte
End If
Next sh
End Sub
heu! j'ai fais une erreur... on ne peut pas renommer une feuille par son nom.
mon boulot c'est de prédire le comportement des gens, des objets, des animaux....
en te l'appliquant j'en es déduit que tu ne suivrait pas les instructions que l'on te transmettrait et que
tu développerais une forme de paranoïa protectioniste ( oui je sais ça passe mal mais c'est humain)
ça s'explique comme ça : je te dis pas tout parce que c'est moi qui décide mais c'est une mauvaise interpretation du pouvoir décisionnel . celui qui détient l'information ne prend pas forcément la décision....
Fin de leçon.
Tu as dis j'ai une cellule "B7" elle se transforme en C13 ( c'est ton droit je discute pas)
j'ai une feuille "bidule" (Utilisation d'un mot inutile pour cacher ou commettre une erreur)
j'ai dit :"place ce bouton sur la feuille qui contient le nom de la feuille (bidule) "
peut-être pas clair... tu places ton bouton sur la feuille que tu veux ( pas la peine de me donner le nom..
la methode ActiveSheet ( feuille Active, c'est celle que tu utilises) saisira les information en B7 ou C13 (comme tu veux) MAIS il faut écrire bidule en C13 ou B7 ce que tu n'a pas fait.
Explication: tu as clicker sur le bouton avec un vide en C13 et la ligne ..
If nomFeuille = "" Then nomFeuille = "Feuil3" ' si il y a n'importe quoi dans la cellule...
nomFeuille a pris la valeur "Feuil3". La boucle suivante a trouvé la Feuille3 et a voulu la renommée en Feuil3,
mais ce nom existe déjà.....
Dim nomFeuille As String
Dim sh As Worksheet
nomFeuille = ActiveSheet.Range("C13") ' la cellule C13 contient ton nom de feuille
If nomFeuille = "" Then exit sub ' si il y a un vide on quitte
For Each sh In Worksheets
If sh.CodeName = "Feuil3" Then
sh.Name = nomFeuille
sh.Select
Exit For ' on a trouvé on quitte
End If
Next sh
End Sub
waea
Messages postés
42
Date d'inscription
lundi 18 janvier 2010
Statut
Membre
Dernière intervention
31 août 2015
9 févr. 2010 à 10:35
9 févr. 2010 à 10:35
OK,
en ce qui concerne le bouton, j'ai effectivement oublié de le mettre sur la feuille active.........tout simplement par ce que je suis resté sur mon idée que :
le bouton qui ouvre une feuille renommé se situe en fait sur la feuille accueil.
je n'ai pas bien décortiqué votre code et en est déduit que cela ne fonctionnait pas. Et c'est vrai............;pour cause !
si je fais ça, est-ce que ça peut marcher ?
nomFeuille = sheet("acceuil").Range("C13")
en fait tous les boutons dont il est question depuis le début, se trouvent sur la feuille accueil.
OUPS ! j'ai l'impression que tout cela vous énerve beaucoup !
si vous voulez arrêter dites le! je me ferais une raison
en ce qui concerne le bouton, j'ai effectivement oublié de le mettre sur la feuille active.........tout simplement par ce que je suis resté sur mon idée que :
le bouton qui ouvre une feuille renommé se situe en fait sur la feuille accueil.
je n'ai pas bien décortiqué votre code et en est déduit que cela ne fonctionnait pas. Et c'est vrai............;pour cause !
si je fais ça, est-ce que ça peut marcher ?
nomFeuille = sheet("acceuil").Range("C13")
en fait tous les boutons dont il est question depuis le début, se trouvent sur la feuille accueil.
OUPS ! j'ai l'impression que tout cela vous énerve beaucoup !
si vous voulez arrêter dites le! je me ferais une raison
Bidouilleu_R
Messages postés
1181
Date d'inscription
mardi 27 mai 2008
Statut
Membre
Dernière intervention
12 juillet 2012
289
9 févr. 2010 à 10:41
9 févr. 2010 à 10:41
nomFeuille = sheets("acceuil").Range("C13")
OUPS ! j'ai l'impression que tout cela vous énerve beaucoup !
si vous voulez arrêter dites le! je me ferais une raison
pas du tout!
j'ai toujours estimé que si la somme des efforts déployés pour se facher étaient consacrés
à améliorer les relations on aurait la paix dans lemonde. : )
OUPS ! j'ai l'impression que tout cela vous énerve beaucoup !
si vous voulez arrêter dites le! je me ferais une raison
pas du tout!
j'ai toujours estimé que si la somme des efforts déployés pour se facher étaient consacrés
à améliorer les relations on aurait la paix dans lemonde. : )
waea
Messages postés
42
Date d'inscription
lundi 18 janvier 2010
Statut
Membre
Dernière intervention
31 août 2015
9 févr. 2010 à 10:56
9 févr. 2010 à 10:56
Amen :)
j'avais déjà essayé cette solution,mais.......ça coince encore là !
sh.Name = nomFeuille
j'avoue que je cale là !
j'ai l'impression qu'on va pas y arriver
on est bien toujours sur le code qui ouvre la feuille renommée, n'est-ce pas ?
j'avais déjà essayé cette solution,mais.......ça coince encore là !
sh.Name = nomFeuille
j'avoue que je cale là !
j'ai l'impression qu'on va pas y arriver
on est bien toujours sur le code qui ouvre la feuille renommée, n'est-ce pas ?
Bidouilleu_R
Messages postés
1181
Date d'inscription
mardi 27 mai 2008
Statut
Membre
Dernière intervention
12 juillet 2012
289
9 févr. 2010 à 11:22
9 févr. 2010 à 11:22
je crois qu'on est au bout!
Sub test() Dim nomFeuille As String Dim sh As Worksheet nomFeuille = Sheets("acceuil").Range("C13").Value ' le nom de la feuille est récupéré là If nomFeuille = "" Then Exit Sub ' si il y a un vide on quitte For Each sh In Worksheets If sh.CodeName = "Feuil3" Then sh.Name = nomFeuille sh.Select Exit For ' on a trouvé on quitte End If Next sh End Sub
Bidouilleu_R
Messages postés
1181
Date d'inscription
mardi 27 mai 2008
Statut
Membre
Dernière intervention
12 juillet 2012
289
9 févr. 2010 à 15:15
9 févr. 2010 à 15:15
moi je n'ai pas d'erreur.
As-tu rajouté .value derrière .Range("C13") ?
Ajoute un espion :
Click de droit sur nomFeuille choisi Ajouter un espion
puis utilise F8 pour executer le code en pas à pas
chaque sera marquée en jaune avant d'être executée
Regarde l'état de nomFeuille avant de rentrer dans la boucle, puis quand tu rentre dans la boucle.
n'oublie pas 90% des problèmes informatiques se situe entre la chaise et le clavier : )
Sub test()
Dim nomFeuille As String
Dim sh As Worksheet
nomFeuille = Sheets("acceuil").Range("C13").Value ' le nom de la feuille est récupéré là
If nomFeuille = "" Then Exit Sub ' si il y a un vide on quitte
For Each sh In Worksheets
If sh.CodeName = "Feuil3" Then
sh.Name = nomFeuille
sh.Select
Exit For ' on a trouvé on quitte
End If
Next sh
End Sub
As-tu rajouté .value derrière .Range("C13") ?
Ajoute un espion :
Click de droit sur nomFeuille choisi Ajouter un espion
puis utilise F8 pour executer le code en pas à pas
chaque sera marquée en jaune avant d'être executée
Regarde l'état de nomFeuille avant de rentrer dans la boucle, puis quand tu rentre dans la boucle.
n'oublie pas 90% des problèmes informatiques se situe entre la chaise et le clavier : )
Sub test()
Dim nomFeuille As String
Dim sh As Worksheet
nomFeuille = Sheets("acceuil").Range("C13").Value ' le nom de la feuille est récupéré là
If nomFeuille = "" Then Exit Sub ' si il y a un vide on quitte
For Each sh In Worksheets
If sh.CodeName = "Feuil3" Then
sh.Name = nomFeuille
sh.Select
Exit For ' on a trouvé on quitte
End If
Next sh
End Sub
Bon, j'ai beaucoup ri à la formule des 90%..................
là je commence à avoir une grosse envie d'envoyer tout balader
j'ai copié votre code et je l'ai associé au bouton = erreur encore
j'ai essayé votre solution de l'espion = je n'y arrive pas
voilà exactement le code que j'ai écrit :
Dim nomFeuille As String ' variable qui va contenir "le nom choisi" : le nouveau nom de la feuille
Dim sh As Worksheet '
nomFeuille = Sheets("accueil").Range("C13").Value ' la cellule C13 contient ton nom de feuille
If nomFeuille = "" Then Exit Sub ' si il y a n'importe quoi dans la cellule...
For Each sh In Worksheets
If sh.CodeName = "Feuil3" Then
sh.Name = nomFeuille
sh.Select
Exit For ' on a trouvé on quitte
End If
Next sh
End Sub
rien n'y fait !
je craque
là je commence à avoir une grosse envie d'envoyer tout balader
j'ai copié votre code et je l'ai associé au bouton = erreur encore
j'ai essayé votre solution de l'espion = je n'y arrive pas
voilà exactement le code que j'ai écrit :
Dim nomFeuille As String ' variable qui va contenir "le nom choisi" : le nouveau nom de la feuille
Dim sh As Worksheet '
nomFeuille = Sheets("accueil").Range("C13").Value ' la cellule C13 contient ton nom de feuille
If nomFeuille = "" Then Exit Sub ' si il y a n'importe quoi dans la cellule...
For Each sh In Worksheets
If sh.CodeName = "Feuil3" Then
sh.Name = nomFeuille
sh.Select
Exit For ' on a trouvé on quitte
End If
Next sh
End Sub
rien n'y fait !
je craque
Bidouilleu_R
Messages postés
1181
Date d'inscription
mardi 27 mai 2008
Statut
Membre
Dernière intervention
12 juillet 2012
289
9 févr. 2010 à 15:37
9 févr. 2010 à 15:37
fais ceci s'il te plait
Alt F11 (VBE)
insertion /module
un module sera créé automatiquement
copie et colle le code du post 26
au besoin renomme le en test2
puis click droit sur nomFeuille choisis dans la liste Ajouter un espion... Click Ok
maintenant tu dois avoir une fenêtre en dessous le code supplémentaire où il y a nomFeuille avec une paire de lunettes et à côté <hors du contexte>
Appui sur F8 et dis moi l'état de la variable avant la boucle for et dans la boucle for
avec ça je te corrige ton problème d'interface.... sinon va boire un café ( le thé est accepté)
Alt F11 (VBE)
insertion /module
un module sera créé automatiquement
copie et colle le code du post 26
au besoin renomme le en test2
puis click droit sur nomFeuille choisis dans la liste Ajouter un espion... Click Ok
maintenant tu dois avoir une fenêtre en dessous le code supplémentaire où il y a nomFeuille avec une paire de lunettes et à côté <hors du contexte>
Appui sur F8 et dis moi l'état de la variable avant la boucle for et dans la boucle for
avec ça je te corrige ton problème d'interface.... sinon va boire un café ( le thé est accepté)
waea
Messages postés
42
Date d'inscription
lundi 18 janvier 2010
Statut
Membre
Dernière intervention
31 août 2015
10 févr. 2010 à 14:43
10 févr. 2010 à 14:43
voiçi l'exemple "vide"
https://www.cjoint.com/?ckoPaeJqJO
j'espère que vous allez "faire des miracles".
PS : votre humour est rafraîchissant
bon courage
waea
https://www.cjoint.com/?ckoPaeJqJO
j'espère que vous allez "faire des miracles".
PS : votre humour est rafraîchissant
bon courage
waea
Bidouilleu_R
Messages postés
1181
Date d'inscription
mardi 27 mai 2008
Statut
Membre
Dernière intervention
12 juillet 2012
289
10 févr. 2010 à 20:14
10 févr. 2010 à 20:14
http://www.cijoint.fr/cjlink.php?file=cj201002/cijz9KXYVF.xlsm
probleme réglé
A+
probleme réglé
A+
Bidouilleu_R
Messages postés
1181
Date d'inscription
mardi 27 mai 2008
Statut
Membre
Dernière intervention
12 juillet 2012
289
11 févr. 2010 à 14:34
11 févr. 2010 à 14:34
ben sinon... tu reviens... ^_^