Trouver une ligne en fonction de la valeur de la première cellule

Bonjour,

Voilà j'ai une macro qui permet de masquer/afficher des colonnes en fonction de la valeur d'une cellule dans la colonne.

Sub Affichercolonne()
Dim rng As Range
For Each rng In [D141:T141]
If rng.Value = 0 Then rng.EntireColumn.Hidden = Not rng.EntireColumn.Hidden
Next rng
End Sub

Dans cette macro, il va chercher la valeur des cellules de la ligne 141

Mais si quelqu'un ajoute une ligne au tableau alors bien évidemment cela ne marche plus.

L'idée serait de pouvoir trouver la ligne concernée en considérant que la première cellule de cette ligne contient la valeur : "999"

Auriez vous une idée ?

Merci à vous et belle journée

Bonjour,
A tester et adapter.
Cdlt.

Sub AfficherColonne()
Dim lastCol As Long, lastRow As Long, lCol As Long
Dim Cell As Range
Dim rw

    Application.ScreenUpdating = False

    With ActiveSheet
        lastCol = .Cells(1, .Columns.Count).End(xlToLeft).Column
        lastRow = .Cells(.Rows.Count, 1).End(xlUp).Row
        On Error Resume Next
        rw = Application.Match(999, .Cells(1).Resize(lastRow), 0)
        If Not IsError(rw) Then
            For lCol = lastCol To 2 Step -1
                If .Cells(rw, lCol).Value = 0 Then .Cells(lCol).EntireColumn.Hidden = Not Cells(lCol).EntireColumn.Hidden
            Next lCol
        Else
            MsgBox "Il rw'y a pas de données correspondants !...", 64, "Information"
        End If
    End With

End Sub

bonjour à vous deux,

A mon tour de poser une question car j'ai un doute sur la compréhension d"une ligne :

If .Cells(rw, lCol).Value = 0 Then .Cells(lCol).EntireColumn.Hidden = Not Cells(lCol).EntireColumn.Hidden

Le 'Then" signifie-t-il que si la colonne est masquée alors il faut la démasquer ? Et si c'est bien cela que se passe-t-il si elle est démasquée ? Je ne comprends pas bien, personnellement j'aurais utilisé les instructions "EntireColumn.Hidden = True ou False

Bonne journée

Jacky

Merci Jean-Eric, mais en fait cela ne fait rien .... J'ai essayé en changeant le 999 par une chaine de caractères mais rien non plus :-(

Jacky, si la colonne est masquée, alors il l'a démasque et si elle est démasquée, il l'a masque ....

Bonjour Bruno0510,

merci d'avoir accepté de m'éclairer. Il est vrai que je ne connaissais pas cette procédure, personnellement je serais passé par un " If .. Else"

Cordialement

Jacky

Rechercher des sujets similaires à "trouver ligne fonction valeur premiere"