Microsoft 365 Macro masquer des lignes

Céline49

XLDnaute Junior
Bonjour,
J'aurais besoin d'un peu d'aide sur une macro.
Je souhaite masquer les lignes 12 à 19 lorsque la cellule B3 = Trimestrielle. Si la cellule B3= Mensuelle, alors conserver toutes les lignes existantes.
Ma macro ne s'exécute pas pas et je n'ai pas de message d'erreur, je ne sais pas d'où provient le problème.
Quelqu'un pourrait-il m'aider?
Un grand merci par avance pour l'aide apportée
 

Pièces jointes

  • Ca3 pb macro.xlsm
    22.7 KB · Affichages: 6
Solution
Bonjour,

Une proposition :
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
'
    If Target.Address = "$B$3" And Target.Value = "Trimestrielle" Then
        Rows("12:19").EntireRow.Hidden = True
    Else
        Rows("12:19").EntireRow.Hidden = False
    End If

End Sub

TooFatBoy

XLDnaute Barbatruc
Bizarre je suis devenu transparent lol
Z'avez pas vu le #post 4 ?

Toi t'as pas dû voir #7...

Hé si, je l'ai vu et ça m'intéresse car chez moi, aucun souci :)
J'aimerais bien que tu me montres le problème :)

Qui a dit qu'il y avait un problème par rapport à #7 ???

Moi je dis juste que ta macro de #4 est dans son fichier de #7, donc ton message #4 a forcément été vu.
Logique ! Non ??? 🤔
 

Usine à gaz

XLDnaute Barbatruc
NON Marcel problème par rapport au #post4
tu as dit :
"Remarque : je ne te conseille pas la macro de #4 car elle va s'exécuter à chaque modification du contenu d'une cellule de la feuille et en plus elle risque de modifier la hauteur de tes lignes."

Pourrais-tu me dire ce qui ne vas pas dans la solution que j'ai proposé.
Pour mon évolution, ça m'intéresse lol :)
 

Usine à gaz

XLDnaute Barbatruc
"Hélas, je ne vois pas comment être plus clair puisque j'ai déjà décrit les deux points qui me chagrinent. ;)"

Je ne vois pas bien la différence d'exécution entre ton code et le mien.
Et techniquement ça m'intéresse pour évoluer ...
Mais si tu ne sais pas, c'est pas grave :)
 

TooFatBoy

XLDnaute Barbatruc
Mais si tu ne sais pas, c'est pas grave :)
C'est pas que je ne sais pas, c'est que je ne peux que répéter ce que j'ai déjà dit :

- le code à l'intérieur de la macro va s'exécuter à chaque modification du contenu de n'importe quelle cellule de la feuille,
- elle risque de modifier la hauteur des lignes (si jamais il décide d'utiliser des lignes d'une hauteur différente de la hauteur codée en dur dans la macro).

Franchement, je ne vois pas quoi dire de plus.
Et ce n'est que mon propre avis personnel à moi, et donc ça n'engage que oim ! ;)
 

TooFatBoy

XLDnaute Barbatruc
C'est pourtant pas compliqué :
- quelle que soit la cellule modifiée dans la feuille, tu vas passer dans ta macro et modifier la hauteur des lignes,
- si l'utilisateur change la hauteur des lignes, ta macro va remettre la hauteur à 19,5.


Si tu n'as toujours pas compris, ben dommage, je ne peux pas faire mieux. :(
@+
 

TooFatBoy

XLDnaute Barbatruc
Tu as bien fait d'insister : je viens de regarder ce que j'ai posté en #2, et j'ai vu que je m'étais gouré en postant la macro en #2...

Tu as raison, ma macro fait la même chose : lors de la modification d'une cellule quelconque de la feuille on passe aussi systématiquement dans ma macro.
Et en plus
mon code démasque les lignes quand il ne faudrait pas les démasquer !!!
(erreur que ne commet pas ton code !)
Du coup j'ai édité #10... ;)

Donc je corrige et remplace par ceci :
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
'
    If Target.Address = "$B$3" Then Rows("12:19").EntireRow.Hidden = (Target.Value = "Trimestrielle")

End Sub
 
Dernière édition:

Discussions similaires

Réponses
14
Affichages
471
Réponses
12
Affichages
460

Statistiques des forums

Discussions
314 635
Messages
2 111 453
Membres
111 144
dernier inscrit
shura_77