Afficher / Masquer en fonction des variables colonne/ligne

Messages postés
2
Date d'inscription
jeudi 12 septembre 2019
Statut
Membre
Dernière intervention
13 septembre 2019
-
Bonjour à tous,

je souhaite faire une fonction qui me permet de cacher des lignes dans une seule colonne avec 2 variables.
Une variable pour la ligne et une variable pour la colonne (afin de pouvoir étendre facilement dans mes x colonnes)

Aujourd'hui le code se déroule du début à la fin MAIS il ne me cache pas ou ne m'affiche pas les lignes.
J'ai inclus des "message boxes" pour voir si la boucle.
La boucle s'exécute mais pas le "masquage" ou "l'affichage" et pourtant l'action se passe sans encombre.

Je viens donc vers vous pour m'éclairer sur l'erreur que j'ai pu faire.

J'ai écrit cela:

Public Function HIDE(cellule_test As Range, n As Integer)
Dim a, b, i As Variant
Dim c As Integer
    If cellule_test.Count > 1 Then Exit Function            'si plusieurs cellules sont sélectionnées on quitte la procédure
    c = 0                                                   'Remise à 0 de c
    b = cellule_test.Column                                 'b prend la valeur de la colonne
    a = cellule_test.Row                                    'a prend la valeur de la colonne
        If cellule_test.Address = Cells(a, b).Address Then  'vérification que la modification se passe dans la cellule(a,b)
        i = cellule_test.Value                              'i prend la valeur de la cellule sélectionnée
        a = a + n                                           'a prend la valeur de la colonne + un décalage
            If i = "Not_hide" Then                          'si la valeur de i est "not_hide" alors:
            'MsgBox "pas caché"
                Do While a <= 16                            'boucle tant que "a" n'a pas atteind la valeur 16
                Rows(a).EntireRow.Hidden = False            'on affiche la ligne avec la valeur de a
                a = a + 1                                   'incrémentation de a
                Loop                                        'bouclage do while
            Else: i = "Hide"                                'dans le cas où i à la valeur "Hide"
                    Do While a <= 16                        'boucle tant que "a" n'a pas atteind la valeur 16
                        If IsEmpty(Cells(a, b)) = True Then 'si la cellule(a,b) est vide alors
                        MsgBox "dans le if 2 boucle " & Cells(a, b).Address 'affichage de msgbox pour vérifier que ça fonctionne
                        Rows(a).EntireRow.Hidden = True     'on masque la ligne avec la valeur de a
                        MsgBox "la ligne " & a & " est cachée"              'affichage de msgbox pour vérifier que ça fonctionne
                        c = c + 1                           'j'incrémente la valeur c à chaque fois que je cache une ligne
                        End If
                    a = a + 1                               'incrémentation de a
                    Loop                                    'bouclage do while
            MsgBox "There are " & c & " lines hidden"       ' affichage du nombre de lignes cachées
            End If
        End If
End Function


Je vous remercie pour votre aide,

Bien cordialement
Ha_lio le noob
Afficher la suite 

2 réponses

Messages postés
14715
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
13 septembre 2019
1171
0
Merci
Bonjour,

Chez moi ca masque/demasque les lignes

Faudrait votre fichier pour avoir le contexte
Commenter la réponse de f894009
Messages postés
2
Date d'inscription
jeudi 12 septembre 2019
Statut
Membre
Dernière intervention
13 septembre 2019
0
Merci
Bonjour F894009,

Merci pour ta réponse.
Je ne peux malheureusement pas partager en public le fichier.

Cependant, je peux te le partager en privée si c'est possible.

Cordialement
Ha_Lio
f894009
Messages postés
14715
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
13 septembre 2019
1171 -
Bonjour,

Messagerie privee de ccm
Commenter la réponse de ha_lio