Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Macro VBA - Masquer en fonction d'un pourcentag

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

GuillaumA

XLDnaute Occasionnel
Bonjour à tous,
Je suis actuellement à la recherche d'une macro capable de masquer des lignes en fonction d'un pourcentage intégré dans la cellule A1.e

En gros, si % < 50% alors lignes 2 à 10 sont masqué
et si % > 50% alors lignes démasqués.
Une idée?

Merci de votre considération et bonne journée à vous tous.

Cordialement,
Guillaume A.

Notice: Le tout sur une même feuil1


Notice 2: Voila ce que j'ai réussi à me faire. Je pense ne pas être loin même si je sais que c'est faux vu que je ne connais pas le VBA (ou a peine)... Mais j'essaie!
Public Sub Masquer

Application.ScreenUpdating = False
For i = 2 To 10
Rows(i).Hidden = Cells(A1).Value = ">50%"
Next i
Application.ScreenUpdating = True

For i = 2 To 10
If Cells(A1).Value="<50%"
Then
Cells.EntireRow.Hidden = False


End Sub
 
Dernière édition:
Re : Macro VBA - Masquer en fonction d'un pourcentag

Bonjour,

et si = 50% ???

Le pourcentage est-il issu d'une formule, ou une entrée manuelle?

Si formule :

Code:
Private Sub Worksheet_Calculate()
Rows("2:10").Hidden = Range("A1") < 0.5
End Sub

Si entrée manuelle :

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
If Target.Address = "$A$1" Then Rows("2:10").Hidden = Target < 0.5
End Sub

Remplace < par <= si 50% doit également masquer les lignes

Bonne journée

Edit : Bonjour Pierrot
 
Re : Macro VBA - Masquer en fonction d'un pourcentag

Bonjour Pierrot, bonjour bhbh,
Et bien! Toujours les même qui me sauve ! 🙂


Merci à vous deux pour vos réponses, je m'en vais tester vos macros!

Ps: Il s'agit d'une entrée manuel avec valeur = à 50% doit être aussi masqué. Excellente précision de ta part bhbh, je l'avais complètement oublié!

Ps2: Peut-on avoir une même macro pour plusieurs cellules d'entrée des pourcentages ou faut t'il que je fasse autant de macro que de cellules d'intégration % ?

Cordialement,
Guillaume A.
 
Dernière édition:
Re : Macro VBA - Masquer en fonction d'un pourcentag

Re-,

Pour définir plusieurs cellules, tu as sûrement du voir des codes du style :

Code:
If Not Intersect(Target, Range("A1:F1")) Is Nothing Then
    Rows("2:10").Hidden = Target <= 0.5
End If

Regarde l'aide, sur Intersect

Bonne journée
 
Re : Macro VBA - Masquer en fonction d'un pourcentag

Re bhbh,
Voila ce que j'ai utilisé et cela marche très bien. En espérant que cela ne soit pas trop lourd!


Cependant je n'arrive pas à déterminer comment faire pour plusieurs lignes séparés... Oui je sais...Surement la fatigue...

Cordialement,
Guillaume A.
 
Dernière édition:
Re : Macro VBA - Masquer en fonction d'un pourcentag

Re-,

En plus de F1, surtout n'hésite pas à abuser de l'enregistreur de macro...

Code:
Range("28:28[COLOR="Red"][B],[/B][/COLOR]30:30[COLOR="Red"][B],[/B][/COLOR]32:32").EntireRow.Hidden =.....

Bonne journée
 
Re : Macro VBA - Masquer en fonction d'un pourcentag

Re bonjour

J'ai oublié de préciser qu'à chaque fois que c'est 0% cela ne doit pas s'effacer. Comment rajouter çela dans la formule car je n'ai pas l'impression qu'il est ai la fonction Et/And et je n'arrive pas à rajouter <>0 ?

Ex:
If Target.Address = "$C$27" Then Rows("28:28;30:30;32:32").Hidden = Target <= 0.5 Et <> 0

Merci de votre considération.

Cordialement,
Guillaume A.
 
Re : Macro VBA - Masquer en fonction d'un pourcentag

Salut GuillaumA, Pierrot 🙂, bh² 🙂, le Forum

Peut-être comme cela

Code:
If Target.Address = "$C$27" And Target.Value <> 0 Then Rows("28:28,30:30,32:32").Hidden

Bonne Journée
 
Re : Macro VBA - Masquer en fonction d'un pourcentag

Re, bonjour Dull🙂

aarf, pas compris la même chose....

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$C$27" Then Range("28:28,30:30,32:32").EntireRow.Hidden = _
    (Target <= 0.5 And Target > 0)
End Sub
bon après midi
@+
 
Re : Macro VBA - Masquer en fonction d'un pourcentag

Bonjour,
De retour sur cette macro j'aimerai la modifier un peu (partie rouge)

Private Sub Worksheet_Change(ByVal Target As Range)

If Target.Count > 1 Then Exit Sub
If Target.Address = "$C$20" Then Range("22:22,24:24,26:27").EntireRow.Hidden = Target > 0

Ne sachant pas encore très bien les fonctions VBA, j'aimerai écrire l'équivalent de ceci:
If Target.Count > 1 Then Exit Sub
If Target.Address = "$C$20" Then
Range(Lignes entre 21 et 30, de la colonne 16, dans lesquelles s'affiches la valeur ML).EntireRow.Hidden = Target > 0

Puis je vous demander encore de l'aide? Ou ai-je épuisé mon quotas journalier 🙁

Cordialement,
Guillaume A.
 
- 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
5
Affichages
832
Réponses
15
Affichages
636
Réponses
8
Affichages
744
Réponses
4
Affichages
688
Réponses
7
Affichages
341
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…