Merci Xxxaaavvv pour tes orientations qui m'ont été utiles et m'ont permis d'avancer.
Je joins un extrait d'une base de données test que j'ai dans un onglet Excel. Mon tableau est filtré et n'apparaissent à l'écran que les lignes visibles.
Avec ma programmation, le curseur se positionne automatiquement sur la dernière cellule visible de mon tableau (C'est déjà bien !). Mais ensuite, je n'arrive pas à sélectionner directement par programmation la première nouvelle ligne supérieure visible. En effet, les lignes masquées sont lues également ce qui ralentira l'exécution du programme sur un tableau beaucoup plus important.
Voici mon extrait de code Vba pour Excel 2003 :
Sub SelectionLignesVisiblesUniquement()
Dim f As Integer
' Retrouve la dernière cellule.
ActiveSheet.Cells.SpecialCells(xlCellTypeLastCell).Activate
MsgBox "La sélection en cours correspond à : " & ActiveCell.Value, vbInformation
For f = 1 To 31 'Boucles max dans mon tableau.
If ActiveSheet.Rows(ActiveCell.Row).EntireRow.Hidden = False Then 'Ligne non cachée.
MsgBox "La ligne active " & ActiveCell.Row & " n'est pas cachée !", vbExclamation
ActiveCell.Offset(-1, 0).Select
ElseIf ActiveSheet.Rows(ActiveCell.Row).EntireRow.Hidden = True Then
'MsgBox "Ligne cachée à ne pas lire !" & Chr(10) & "DECALER VERS LE HAUT !"
ActiveCell.Offset(-1, 0).Select
End If
Next f
End
Donc, par quel code je dois remplacer :
selection.offset(-1,0).select
pour que la prochaine ligne visible soit automatiquement sélectionnée, sans le moindre passage des boucles sur mes lignes masquées ?
Merci d'avance.