Comment réactiver une feuille Excel sans passer par son nom de l’onglet?
Utilisateur anonyme
-
yg_be Messages postés 23541 Date d'inscription Statut Contributeur Dernière intervention -
yg_be Messages postés 23541 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
Comment réactiver une feuille sans passer par son nom de l’onglet?
Exemple :
J’ai une feuille Excel nommée « STOCK » je l’active avec les codes VBA
Je copie cette feuille « STOCK » et je nomme cette copie « TRAVAIL »
J’active la feuille « TRAVAIL » puis j’exécute certaines taches sur cette copie… puis je voudrais, toujours en code VBA, réactiver la feuille « STOCK » mais sans passer par son nom de l’onglet qui est « STOCK ».
Est-ce possible dans VBA, et suis-je assez clair?
merci
Comment réactiver une feuille sans passer par son nom de l’onglet?
Exemple :
J’ai une feuille Excel nommée « STOCK » je l’active avec les codes VBA
Je copie cette feuille « STOCK » et je nomme cette copie « TRAVAIL »
J’active la feuille « TRAVAIL » puis j’exécute certaines taches sur cette copie… puis je voudrais, toujours en code VBA, réactiver la feuille « STOCK » mais sans passer par son nom de l’onglet qui est « STOCK ».
Est-ce possible dans VBA, et suis-je assez clair?
merci
A voir également:
- Comment réactiver une feuille Excel sans passer par son nom de l’onglet?
- Feuille de pointage excel - Télécharger - Tableur
- Comment trier par ordre alphabétique sur excel - Guide
- Liste déroulante excel - Guide
- Reactiver compte facebook - Guide
- Déplacer une colonne excel - Guide
2 réponses
yg_be
Messages postés
23541
Date d'inscription
Statut
Contributeur
Dernière intervention
Ambassadeur
1 584
bonjour, ta question commencera à avoir un sens quand tu expliqueras pourquoi tu veux éviter d'utiliser le nom de la feuille.
Bonjour,
Pour éviter que la macro plante quand une personne,pour x raisons, renomme la feuille active.
On peut sûrement créer des sécurités pour empêcher de renommer cette feuille Active, mais je voudrais éviter cette méthode?
Mais le 'hic' pour moi, c'est que je ne sais pas comment présenter ce code avec "CodeName".
Alors si vous avez une idée, merci d'avance :)
@+
Pour éviter que la macro plante quand une personne,pour x raisons, renomme la feuille active.
On peut sûrement créer des sécurités pour empêcher de renommer cette feuille Active, mais je voudrais éviter cette méthode?
Mais le 'hic' pour moi, c'est que je ne sais pas comment présenter ce code avec "CodeName".
Alors si vous avez une idée, merci d'avance :)
@+
cela reste un peu mystérieux, comment fais-tu pour l'activer la première fois sans utiliser son nom?
si tu veux éviter d'avoir le nom "en dur" dans le programme, il suffit de mémoriser l'identité de la feuille au départ, et de réutiliser cette identité ensuite.
je pense à trois options permettant de faire cela:
1) mémoriser le nom de la feuille dans une cellule
2) mémoriser le nom de la feuille dans une variable "string"
3) mémoriser la référence de la feuille dans une variable "worksheet"
je pourrais être plus précis si tu montrais ton code.
un exemple de la technique 3:
à noter qu'il est fortement déconseillé d'utiliser Select et Activate en VBA.
si tu veux éviter d'avoir le nom "en dur" dans le programme, il suffit de mémoriser l'identité de la feuille au départ, et de réutiliser cette identité ensuite.
je pense à trois options permettant de faire cela:
1) mémoriser le nom de la feuille dans une cellule
2) mémoriser le nom de la feuille dans une variable "string"
3) mémoriser la référence de la feuille dans une variable "worksheet"
je pourrais être plus précis si tu montrais ton code.
un exemple de la technique 3:
Private Sub memoriserfeuille() Dim lafeuille As Worksheet Set lafeuille = ActiveSheet '... lafeuille.Activate End Sub
à noter qu'il est fortement déconseillé d'utiliser Select et Activate en VBA.
c'est déconseillé parce que c'est difficile à maîtriser par programme et que cela produit souvent des erreurs.
par ailleurs, c'est presque toujours inutile et facile à éliminer.
que faire à la place? cela dépend de ton code.
pourquoi veux-tu réactiver la feuille « STOCK »? si c'est parce que le programme a fini et veux que l'utilisateur se retrouve avec la bonne feuille sélectionnée, alors Activate est ok.
par ailleurs, c'est presque toujours inutile et facile à éliminer.
que faire à la place? cela dépend de ton code.
pourquoi veux-tu réactiver la feuille « STOCK »? si c'est parce que le programme a fini et veux que l'utilisateur se retrouve avec la bonne feuille sélectionnée, alors Activate est ok.
Donc de la feuille active je peux connaitre son CodeName?
Vais voir ton lien... :)
@+
Geoffroy
Bonjour,
Désolé de ne pas être expert en VBA et de poser des questions sûrement "idiotes" pour votre niveau.
Vous avez sûrement BAC +5 en programmation, si ce n'est pas plus
Tandis que moi j'ai plutôt BAC - 5 ...
Et j'avais posé ma question 'idiote' avant d'aller voir votre lien, cher Monsieur.
Bonne Soirée Monsieur