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 !