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

XL 2010 Erreur masquage lignes avec Select

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 !

Orson83

XLDnaute Impliqué
Bonjour à tous,
Le nombre de ligne à masquer ne correspond pas à la valeur du Select quand on choisi 12 locations. En effet, les lignes 16 et 17 disparaissent.
Merci pour votre aide à la correction de la macro en feuille 1 qui est jointe à ce post.
Tchotchodu31
 

Pièces jointes

Solution
Avec votre structure vous avez toujours des lignes à masquer. Mais quand vous voulez tout le tableau vous êtes coincé.
Alors faites un test :
VB:
If y < 17 Then Range(y & ":16").EntireRow.Hidden = True 'Masque des lignes
Bonsoitr Tchotchodu31,
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
Application.ScreenUpdating = False
Rows("5:16").Hidden = True 'masque tout
If Val(Range("E4")) Then Rows(5).Resize(Val(Range("E4"))).Hidden = False
End Sub
A+
 
Bonsoir le fil,
Dans votre code quand x=12 alors y=17 donc il y a un problème pour :
VB:
Range(y & ":16").EntireRow.Hidden = True
C'est mieux avec :
Code:
Range(y & ":17").EntireRow.Hidden = True
 
Avec votre structure vous avez toujours des lignes à masquer. Mais quand vous voulez tout le tableau vous êtes coincé.
Alors faites un test :
VB:
If y < 17 Then Range(y & ":16").EntireRow.Hidden = True 'Masque des lignes
 

Pièces jointes

Bonjour,
Afin de compléter ce post, voici un complément réalisé par sylvanu, ceci est lié à la solution proposée par job75.
L'idée étant que la macro ne perturbe pas les éventuelles autres Select de la même page.
Voici le code :
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Count > 1 Then Exit Sub
    If Not Intersect(Target, Range("E37")) Is Nothing Then
        Application.ScreenUpdating = False
        Rows("38:49").Hidden = True 'masque tout
        If Val(Range("E37")) Then Rows(38).Resize(Val(Range("E37"))).Hidden = False
    End If
End Sub
Bon week-end à tous.
 
- 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
2
Affichages
423
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…