Bonjour Sonata, bonjour le forum,
Peut-être comme ça :
Sub Macro1()
Dim DL As Integer 'déclare la variable DL (Dernière Ligne)
Dim I As Long 'déclare la variable I (Incrément)
Dim TL() As Integer 'déclare le tableau de variables TL (Tableau de Lignes)
Dim K As Long 'déclare la variable K (incrément)
DL = Cells(Application.Rows.Count, 2).End(xlUp).Row 'définit la dernière ligne éditée DL de la colonne 2 (=B)
For I = 1 To DL 'boucle sur toutes les ligne éditées de 1 à DL
If Cells(I, 2).Value <> "" Then 'condition : si la valeur de la cellule ligne I colonne 2 n'est pas vide
ReDim Preserve TL(K) 'redimensionne le tableau de lignes TL
TL(K) = I 'stocke dans la variable indéxée TL(K) le numéro de la ligne I
K = K + 1 'incrémente K
End If 'fin de la condition
Next I 'prochaine ligne de la boucle
Rows.Hidden = True 'masque toutes les lignes du tableau
For I = 0 To UBound(TL) 'boucle sur toutes les valeurs du tableau de lignes TL
Rows(TL(I)).Hidden = False 'affiche la ligne de la boucle
Next I 'prochaine ligne de la boucle
Range("A1").Select 'sélectionne la cellule A1
End Sub
Je pense qu'un expert en formules te donnera une manière bien plus simple / rapide / efficace...