Selectionner la deuxième cellule visible d'une colonne - VBA

Bonjour à tous,

Je souhaite faire quelque chose que j’ai simplifié au maximum : renvoyer la valeur de la deuxième cellule visible d’une colonne dans excel.

J’ai regardé dans de nombreux forums, et ça semble marcher pour les autres utilisateurs avec cette formule : Range(XXX).SpecialCells(xlCellTypeVisible).Cells(2), mais je n’y arrive pas.

J’ai un tableau très simple en colonnes A et B et lignes 1 à 3 :

Fruit Nombre

Légumes 50

Carottes 60

Je filtre sur carottes.

J’ai écrit ce code :

Sub test()

For Each cl In Sheets("Feuil1").Range("B1:B3").SpecialCells(xlCellTypeVisible)

Debug.Print cl.Value

Next cl

Debug.Print Range("B1:B3").SpecialCells(xlCellTypeVisible).Cells(2)

Debug.Print Range("B1:B3").SpecialCells(xlCellTypeVisible).Address

Debug.Print Range("B1:B3").SpecialCells(xlCellTypeVisible).Cells(2).Address

End Sub

Et ça me renvoie :

Nombre

60

50

$B$1,$B$3

$B$2

===> On voit bien que la première formule fonctionne et que Sheets("Feuil1").Range("B1:B3").SpecialCells(xlCellTypeVisible) renvoie bien B1 et B3 uniquement sans B2, mais pourtant quand je veux sélectionner la deuxième cellule VISIBLE de ce range, il me donne la deuxième cellule du tableau qui n’est pas visible.

J’ai beau cherché sur les forums, ils donnent toujours la formule que j’utilise donc c’est bizarre que ça ne marche pas !

Merci beaucoup d’avance !

Je crois avoir trouvé la réponse sur un énième forum en anglais :

activesheet.AutoFilter.Range.offset(1).SpecialCells(xlCellTypeVisible).Cells(1, 2).select

je ne comprends pas comment autant de gens aient pu résoudre leur problème avec la première formule qui ne marche pas pour moi, mais celle-ci a l’air de bien fonctionner ! Je trouve cette formule un peu alambiquée par contre, de offset sur un range en entier et ensuite de choisir Cells(1,2)… mais ça fait le boulot !

Si ça peut aider d’autres gens !

Rechercher des sujets similaires à "selectionner deuxieme visible colonne vba"