Macro affichage ou non de cellules

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

acrosby

XLDnaute Nouveau
Bonjour à tous,

Assez à l'aise sur Excel mais n'ayant jamais touché à une macro de ma vie, je commence doucement.

J'ai créé une macro pour faire apparaitre ou disparaitre des lignes en fonction de cases Oui/non cochées dans la feuille.

Première question : Comment faire pour que la macro s'éxécute que lorsque la cellule oui/non change ? Pour l'instant j'ai le code suivant et la macro s'éxécute donc à chaque changement de cellule, ce qui n'est pas très agréable pour l'utilisateur.

Private Sub Worksheet_Change(ByVal Target As Range)

If Range("c1") = "Privée" Then
Rows("5:31").Select
Selection.EntireRow.Hidden = True
Rows("32:60").Select
Selection.EntireRow.Hidden = False
Else
Rows("5:31").Select
Selection.EntireRow.Hidden = False
Rows("32:60").Select
Selection.EntireRow.Hidden = True
End If

End Sub

Deuxième question. Je souhaiterais rajouter des conditions à l'intérieur des macros de ce type, un peu comme la fonction SI, mais si je mets des if then à l'intérieur d'autres if then ca marche pas...
En gros ce que je veux faire : si oui en C1, alors si oui en C2 afficher lignes 5 à 31 , si non en C2 afficher 5 à 20 et si non en C1 ne pas afficher lignes 5 à 31 mais 32 à 60.

Dernière question : ce joujou étant destiné à des clients, je souhaiterais que lorsqu'ils ouvrent ce fichier, ils soient directement en plein écran. Y a t-il une macro qui peut faire ca ??

Merci beaucoup pour votre aide
 
Re : Macro affichage ou non de cellules

Bonjour,

pour les macros événementielles, il faut toujours préciser les cellules (via "Target") qui vont déclencher la macro "Change" dans ce cas précis car sinon comme tu le souligne, elle s'exécute pour n'importe qu'elle cellule modifiée.
En début de code il faut dire:
si la cellule modifiée se trouve dans la plage "C1:C2" alors..., en VBA ça donne ceci:
Code:
If Not Intersect(Target, Range("C1:C2")) Is Nothing Then

Voir la PJ pour le résultat, suis pas sur que c'est ce que tu veux.

Bon week-end
 

Pièces jointes

Re : Macro affichage ou non de cellules

Bonjour,

Avec ces 2 codes :
Code:
Private Sub Workbook_Open()
Application.DisplayFullScreen = True
End Sub
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Application.DisplayFullScreen = False
End Sub
Codes à placer en VBA dans THISWORBOOK.

Tu peux aussi modifier ton code comme suit :

Code:
....
If Range("c1") = "Privée" Then
Rows("5:31").EntireRow.Hidden = True
Rows("32:60").EntireRow.Hidden = False
Else
Rows("5:31").EntireRow.Hidden = False
Rows("32:60").EntireRow.Hidden = True
End If
....

Amicalement

Dan
 
- 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
14
Affichages
249
Réponses
7
Affichages
165
Retour