Macro utilisant une feuille cachée

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

J

JM

Guest
Bonjour,
si une macro a dans une ligne de commande une sélection d'une feuille cachée, la macro "bugge". J'ai essayé de rendre la feuille visible le temps d'executer la macro, mais il y a peut-être plus simple, mais là, je ne sais pas comment faire.
Quelqu'un pourrait-il m'aider ?
Merci et bon dimanche
JM
 
Bonjour
Il n'est pas toujours nécessaire d'effectuer une sélection (d'ailleurs ça prends plus de temps d'exécution) : tu peux te référer à des plages d'une feuilles sans les sélectionner.
Sinon il faut effectivement "démasquer" la feuille le temps de la macro puis la remasquer.
Chris
 
Salut Jm !

En effet, pour utiliser Select, il faut que la feuille soit visible.

Donc, il faut modifier ta macro en utilisant "Activate" ou rien.

Pour imager :

Quand tu "Select", tu tiens l'objet dans ta main.

Quand tu "Activate", tu l'allumes avec une télécommande.

Quand tu lui donnes un ordre sans Activate ni Select, tu lui donne directement l'ordre, avec une télécommande.

Comment modifier ta macro en conséquence ?

Prenons une macro simple, avec "Select" :

Sub Macro1()
Sheets("Feuil2").Select
Range("B4:C7").Select
With Selection.Interior
.ColorIndex = 6
.Pattern = xlSolid
End With
End Sub

Devient avec "Activate" :

Sub Macro2()
Sheets("Feuil2").Activate
Range("B4:C7").Interior.ColorIndex = 6
End Sub

Sans "Select" ni "Activate" :

Sub Macro3()
Sheets("Feuil2").Range("B4:C7").Interior.ColorIndex = 6
End Sub

Dans la macro1, la feuille foit être visible, dans les macros 2 et 3, elle peut-être masquée.

Un autre Exemple, simple aussi, fait avec l'enregistreur de macro :

Sub Macro4()
Sheets("Feuil1").Select
Range("B3😀7").Select
Selection.Copy
Sheets("Feuil2").Select
Range("E5").Select
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
End Sub

Deviendra :

Sub Macro5()
Sheets("Feuil2").Range("E5:G9") = Sheets("Feuil1").Range("B3😀7").Value
End Sub


Bonne jouréne à toi

@ +

Moa
 
- 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

D
  • Question Question
Réponses
5
Affichages
79
Didierpasdoué
D
Retour