Je sais numéroter des lignes de 1 à ... en partant d'une ligne donné avec la commande
Code:
Ligne()
, mais je voudrais pouvoir numeroter que les lignes visible et non pas les lignes qui sont masqué qui me provoque un trou dans la numérotation, qui me fait sauter la numerotation de deux crans si je masque deux lignes.
Je pense qu'il serai faisable de faire ça avec une foncfion vba mais je vois pas comment, si quelqu'un peut m'aider.
Merci d'avance, en esperant que je suis comprehensible.
Public Function LigneVisible(cellule As Range) As Long
Application.Volatile
Dim i As Long
For i = cellule(1, 1).Row - 1 To 0 Step -1
If cellule(1, 1).Offset(-i, 0).EntireRow.Hidden = False Then LigneVisible = LigneVisible + 1
Next i
End Function
la fonction prend une cellule (de la même ligne) en référence.
=LigneVisible(B1)
Ta fonction marche correctement, mais pas si je masque apres avoir copier les cellules vers le bas il faut que je refasse une copie vers le bas pour que ça ce reactualise.
Aurais tu une solution pour que l'actualisation se fasse automatiquement.
il y aurait un moyen "un peu barbare" : forcer le calcul à chaque changement de sélection sur ta feuille.
Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Application.Calculate
End Sub
tu caches tes lignes, et dès que tu sélectionne une autre cellule, ça devrait se mettre à jour.
un inconvénient (qui peut être de taille) : si tu as beaucoup de formules dans ton fichier, il risque de ramer (tout recalculer à chaque changement de sélection)...
Je pense que c'est un probleme de version, avec la 2002 ça ne passe pas (à moins que ça fonctionne chez quelqu'un d'autre), et le recalcul a chaque selection de cellule je trouve ça un peu trop barbare.
Merci encore, meme si j'ai pas la solution definitive.