Microsoft 365 RESOLU - Afficher nombre de ligne en fonction d'une valeur dans une cellule (VBA)

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

reyjak

XLDnaute Nouveau
Bonjour à tous,

Je pédale sévère sur ma requête que je vous soumets,
Autant sur un tas d'autres macro j'ai pu trouver différentes aides que j'ai pu combiner.
Autant celle-là, le néant.


Je suis à la recherche d'une macro qui peut me masquer un nombre de ligne en fonction d'une valeur.

Info :
Je vais de 1 à 20 de B2;B21
En C1 , ma valeur, avec un onglet déroulant allant de 1 à 19.

Je souhaite que, en fonction de ma valeur je n'affiche pas les nombres supérieurs:

Ex:
Si je sélectionne : 4
Il ne s'affiche que les 4 premières lignes, sans pour autant cacher les valeurs se trouvant à partir de B22.
(j'avais trouvé une équivalence mais pas réussi à l'adapter à ce que je cherchais).

Je pense que la solution est simple, mais je n'arrive pas à la poser...

Merci par avance de votre lecture, de votre temps et de vos idées.

Reyjak.

PS : je peux joindre un fichier, mais pour ce qu'il y a sur la feuille excel je n'ai pas jugé cela utile.
 
Bonjour Reyjak, JHA,
Un essai en PJ avec cette macro dans un fichier basé sur celui de JHA :
VB:
Sub Worksheet_Change(ByVal Target As Range)
    If Target.Count > 1 Then Exit Sub
    If Not Intersect(Target, [C1]) Is Nothing Then
        If [C1] > 0 And [C1] < 21 Then
            Rows("2:21").EntireRow.Hidden = True
            Rows("2:" & [C1] + 1).EntireRow.Hidden = False
        End If
    End If
End Sub
 

Pièces jointes

Bonjour reyjak, JHA, sylvanu,
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
With [C1]
    If Intersect(Target, .Cells) Is Nothing Then Exit Sub
    Application.ScreenUpdating = False
    Rows(2).Resize(20).Hidden = True
    If .Value Then Rows(2).Resize(.Value).Hidden = False
End With
End Sub
A+
 

Pièces jointes

Re,

JHA, Sylvanu, job75, merci à vous pour votre retour rapide.
J'ai testé les différentes solutions, avec vos documents et sur vos documents cela fonctionne très bien.
Lorsque je bouge les valeurs (du code vba) de place, cela fonctionne aussi.

Après, je suis confronté à problème qui est propre à la version de mon entreprise, qui fait que lorsque je l'exécute dans mon dossier j'ai une erreur de compilation dû à une référence manquante.
Et si je l'ignore cela ne fonctionne pas.

En tout cas, encore un grand merci encore pour votre aide,

Je vois pour clore le sujet.

Reyjak.
 
Dernière édition:
- 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

Retour