Fin d'une macro et retour à Excel

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

zazou5908

XLDnaute Nouveau
Bonjour à tous les as d'excel !

Avec l'aide de ce forum, j'ai fait une petite macro qui cache ou qui affiche des lignes en fonction du contenu des cellules de la colonne R.

Voici la macro:

Private Sub ToggleButton1_Click()

Dim cell As Range
Dim maplage As Range


If ToggleButton1 = True Then
ToggleButton1.Caption = "Masquer lignes vides"
ActiveSheet.Rows.Hidden = False
Else
ToggleButton1.Caption = "Afficher tout"
Set maplage = Feuil2.Range("R1:R7416")
For Each cell In maplage
If cell.Value = 0 Then cell.EntireRow.Hidden = True

Next

End If

End Sub


Tout marche comme je veux mais je souhaiterais l'améliorer.

1) y a -t-il moyen d'éviter le raffaraîchissement de l'écran pendant l'opération de masquages des lignes. Cela donne un effet de vague assez "laid" et remplacer cela par un message du style "Masquage des lignes en cours" et le faire disparaître quand c'est terminé.

2) quand la macro est terminée, on ne le voit pas et il faut cliquer dans une cellule pour récupérer le curseur et la main ! Y'a-t-il moyen que cette opération se fasse automatiquement à la fin de la macro ?

D'avance merci pour l'aide

Jean
 
Re : Fin d'une macro et retour à Excel

Bonjour Jean

pour éviter le raffraichissement d'écran utilises la ligne de code ci dessous en début de macro :

Code:
Application.ScreenUpdating = False

a remmettre à "True" à la fin.

pour ta 2ème question, si j'ai bien compris, peut être sélectionner une cellule à la fin :

Code:
Range("A1");Select

bonne journée
@+
 
Re : Fin d'une macro et retour à Excel

Bonjout tout le monde,
Salut Zazou5908,

Ce qui donne en clair
Code:
Private Sub ToggleButton1_Click()
Dim cell As Range
Dim maplage As Range

If ToggleButton1 = True Then
  ToggleButton1.Caption = "Masquer lignes vides"
  ActiveSheet.Rows.Hidden = False
Else
  ToggleButton1.Caption = "Afficher tout"
  [COLOR=blue]Application.ScreenUpdating = False
[/COLOR]  Set maplage = Feuil2.Range("R1:R7416")
  For Each cell In maplage
    If cell.Value = 0 Then cell.EntireRow.Hidden = True
  Next
  [COLOR=blue]Application.ScreenUpdating = True[/COLOR]
[COLOR=blue]  Range("A1").Select[/COLOR]
[COLOR=blue]  msgbox "C'est Terminé !"
[/COLOR]End If
End Sub

Voilà
 
Et bien, comme d'habitude vous êtes génaiux !

Cela fonctionne bien. J'ai aussi rajouté le message 'c'est terminé" pour quand je réaffiche toutes les lignes.

Et tant qu'à faire, y - a t'il moyen de faire apparaître un message pendant le masquage des lignes mais de le faire disparaître automatiquement sans devoir cliquer sur "OK" quand c'est terminé.
......
......
......
Set maplage = Feuil2.Range("R1:R7416")
msgbox "Masquage des lignes en cours"
For Each cell In maplage
If cell.Value = 0 Then cell.EntireRow.Hidden = True
Next
Application.ScreenUpdating = True
Range("a1").Select
MsgBox "C'est terminé"
......
......
......

Encore un grand merci pour votre coup de main hyper rapide !

Jean
 
Re : Fin d'une macro et retour à Excel

Et tant qu'à faire, y - a t'il moyen de faire apparaître un message pendant le masquage des lignes mais de le faire disparaître automatiquement sans devoir cliquer sur "OK" quand c'est terminé

Oui tu peux le faire mais avec un USF (UserForm), est-ce que tu connais ?

A+
 
Re: Re : Fin d'une macro et retour à Excel

BrunoM45 à dit:
Oui tu peux le faire mais avec un USF (UserForm), est-ce que tu connais ?

A+

Bonjour BrunoM45

Eh non je ne connais pas encore !🙁
Si cela ne te prend pas trop de temps, j'accepte avec plaisir mais sinon je ferai sans !

Merci pour ton aide et tes conseils que l'on retrouve souvent sur ce forum (comme beaucoup d'autres d'ailleurs).
 
Re : Fin d'une macro et retour à Excel

Zazou,

Une petite astuce, pour l'USF, tu fais un clique droit dessus -> Exporter
Tu l'enregistre dans le dossier "Mes Documents" (par exemple)

Dans ton vrai fichier, tu fais "Fichier" -> "Importer un fichier"

Pour le code un copier/coller en remplaçant les lignes CheckBox par Togglebutton

Voilà 😉
 
- 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

Réponses
1
Affichages
452
Réponses
10
Affichages
639
Retour