XL 2016 VBA: Sélectionner puis désélectionner toutes les feuilles

  • Initiateur de la discussion Initiateur de la discussion Aloha
  • 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 !

Aloha

XLDnaute Accro
Bonjour,

Je voulais enregistrer l'action de sélectionner toutes les feuilles, mais l'enregistreur n'a rien enregistré

Quel petit code me permettrait de sélectionner toutes les feuilles d'un fichier?
Et lequel pour les désélectionner à nouveau?
Cela ne peut pas être une seule Sub, puisqu'entre l'action de sélectionner et celle de désélectionner il y a d'autres Sub.

Bonne soirée
Aloha
 
Bonsoir le fil, le forum

@Aloha
On peut utiliser la même sub pour la sélection et la déselection
Voir le petit exemple ci-dessous
Pour tester lancer la macro nommée Test
VB:
Sub Test()
'On sélectionne toutes les feuilles
WS_Selection
MsgBox "Pause"
'On desélectionne toutes les feuilles
WS_Selection True
End Sub
Sub WS_Selection(Optional Tout As Boolean = False)
'macro unique pour la sélection et la désleection
Dim s As Worksheet
For Each s In Worksheets
s.Select Tout
Next
End Sub
 
Re

@Calvus
Je n'ai rien perdu, je suis juste tracassé
(voir le fil que je viens de créer dans le forum ce soir)

PS: Ta syntaxe est bien pour sélectionner
mais ceci ne fonctionne pas (pour ce qui est de la déselection)
Sub WS_Selection(Optional Tout As Boolean = False)
ThisWorkbook.Sheets.Select Tout
End Sub
 
Bonsoir et merci pour vos messages.

Je viens de me rendre compte que la partie de ma tâche pour laquelle il me faut de l'aide ne se résume pas à sélectionner et à désélectionner.

J'explique mon projet à l'aide d'un exemple:

Dans un fichier Fichier destination avec un certain nombre de feuilles à la structure identique j'ai 9 formules qui vont chercher des données dans un autre fichier nommé Base moyennant la "maudite" fonction INDIRECT().
Qui plus est, dans le fichier source les données ne sont pas accessibles directement; je dois mettre (dans cet exemple) SERVICE 3 en A1 de la feuille "Personnel" et des formules vont chercher les données de base dans la feuille SERVICE 3 et d'autres formules font plein de calculs avec.

Vu la volatilité des formules INDIRECT, je dois ouvrir le fichier "Fichier destination", je sélectionne toutes les feuilles, je copie les cellules contenant les formules INDIRECT et je les recolle comme valeurs pour ensuite désélectionner les fiches, enregistrer le fichier et le fermer .

Comme le fichier sera modifié au cours de l'année et que les valeurs produites par les formules INDIRECT peuvent changer, je dois donc remettre les formules à l'ouverture du fichier, et ainsi de suite.

La suite des opérations:
1. vérifier si le fichier Base est ouvert, sinon l'ouvrir
2. ouvrir le fichier Fichier destination
3. inscrire SERVICE 3 en A1 de la feuille Personnel du fichier Base
4. sélectionner toutes les feuilles du fichier de destination
5. mettre les formules dans B6:E8 de toutes les feuilles
6. remplacer les formules (qui viennent de récolter les informations dans l'autre fichier depuis que SERVICE 3 a été mis en A1 de Personnel; dans mon exemple il n'y a que des N/A; il faut les considérer comme des valeurs) par leurs valeurs
7. désélectionner les feuilles
8. fermer le fichier en le sauvegardant

Donc la tâche ne se limite pas à mon énoncé initial.
Bonne soirée
Aloha
 

Pièces jointes

Re

@Aloha
Mon code se rapporte à l’énoncé initial.
Par conséquent à mon niveau mission accomplie.

Je passe à la main à mes petits camarades de jeux immunisés contre ces questions à tiroirs 😉

NB: On se demande bien pourquoi le dernier message d'Aloha n'est pas le premier message de cette discussion?
(Car on y trouve des explications détaillées et un fichier exemple...)
 
Re

@Aloha
perseverare diabolicum 😉

NB:
Pourquoi n'as-tu pas tenté d'utiliser l'enregistreur de macros pour certaines actions?
Pourquoi joindre des fichier *.xlsx (et pas des *.xlsm) ?
(ce qui indique qu'on y trouvera pas les codes VBA précédemment déposés par Calvus ou moi, ni tes différents essais de macros)
 
Re,
J‘ai beaucoup utilisé l‘enregistreur: voir mon premier message.
La brève histoire de ces deux fichiers exemples: j‘ai travaillé sur mes fichiers réels où j‘ai essayé d‘intégrer l‘une de vos macros et je me suis rendu compte que les choses ne sont pas si simples que je ne croyais. Voilà pourquoi j‘ai imaginé les deux fichiers reproduisant la situation réelle pour faire comprendre. Voilà!
Salve
Aloha
 
- 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

Discussions similaires

  • Question Question
XL 2019 VBA
Réponses
10
Affichages
1 K
Réponses
5
Affichages
542
Réponses
4
Affichages
645
Réponses
12
Affichages
1 K
Retour