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

Usine à gaz

XLDnaute Barbatruc
Supporter XLD
Bonjour Céline49 :)
Peut-être comme ça :
code dans la feuille :
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
If [b3] = "Trimestrielle" Then
Rows("12:19").RowHeight = 0
Else
Rows("12:19").RowHeight = 19.5
End If
End Sub
Affiche ou masque les lignes selon que vous sélectionnez "Mensuelle" ou Trimestrielle"
Fichier joint,
lionel :)
 

Pièces jointes

  • Ca3 pb macro.xlsm
    27.8 KB · Affichages: 6

Céline49

XLDnaute Junior
Bon mon problème doit venir d'ailleurs car quand je ne recopie sur mon bon fichier, cela ne fonctionne pas. En fait je n'ai pas le bouton activé la macro alors que mon fichier est bien enregistré sous format "classeur excel (prenant en charge les macros)"
 

TooFatBoy

XLDnaute Barbatruc
La macro que je t'ai proposée se met dans la feuille concernée et non dans un module. ;)

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.

[edit]
En fait, c'est surtout la macro de #2 que je te déconseille car elle ne fait pas le boulot correctement !
[/edit]
 
Dernière édition:

TooFatBoy

XLDnaute Barbatruc
Pas facile à expliquer...
Je dirais que les macros qui sont dans les modules peuvent être appelées de n'importe où.
En revanche, les PRIVATE sub des feuilles ne peuvent être appelées que dans la feuille.

Ici on utilise la macro Worksheet_Change.
Elle sera exécutée quand le contenu d'une cellule de la feuille dans laquelle se trouve la macro changera.
 

Discussions similaires

Statistiques des forums

Discussions
311 711
Messages
2 081 789
Membres
101 817
dernier inscrit
carvajal