Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Récupérer les numéros des lignes sélectionnées

  • Initiateur de la discussion Initiateur de la discussion caritijak
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

C

caritijak

Guest
Bonjour,

Je cherche à faire avec une macro l'équivalent des filtres, mais en horizontal (masquer certaines colonnes).

L'interface que je prévois est que l'utilisateur pourra sélectionner une ou plusieurs lignes et en déclenchant la macro celle-ci ira masquer les colonnes pour lesquelles un critère défini se trouvera à l'intersection ligne/colonne.

Ca c'était juste pour planter le décor, ce que je n'arrive pas à trouver c'est comment en VBA en balayant les lignes savoir celles qui sont sélectionnées ou mieux celles sur lesquelles au moins une cellule est sélectionnée.

C'est clair ?

Merci de votre aide
 
Re : Récupérer les numéros des lignes sélectionnées

Bonjour,

Non, pas tout à fait : l'utilisateur va cliquer sur une ou plusieurs cellules (avec shit ou CTRL) et je veux récupérer les lignes sur lesquelles il a sélectionné une cellule.
 
Re : Récupérer les numéros des lignes sélectionnées

Et avec cette macro ?
Code:
Sub Macro1()
Dim p As Range, a, i As Byte
Set p = Selection
a = Split(p.Address(0, 0), ",")
For i =0 To UBound(a)
MsgBox a(i)
Next i
End Sub
 
Dernière édition:
Re : Récupérer les numéros des lignes sélectionnées

Modifiée pour avoir les numéros de ligne:
Code:
Sub Macro2()
Dim p As Range, a, i As Byte
Set p = Selection
a = Split(p.Address, ",")
For i = 0 To UBound(a)
MsgBox Range(a(i)).Row
Next i
End Sub
 
Re : Récupérer les numéros des lignes sélectionnées

Bonjour caritijak, TempusFugit,

Cette solution :

- limite la recherche des lignes au UsedRange

- permet la sélection multiple de plages constituées de plusieurs lignes

- ne prend pas en compte les lignes en doublon.

Code:
Sub Lignes()
Dim sel As Range, d As Object
Set sel = Intersect(Selection.EntireRow, ActiveSheet.UsedRange)
If sel Is Nothing Then Exit Sub
Set d = CreateObject("Scripting.Dictionary")
For Each sel In sel.Rows
  d(sel.Row) = sel.Row
Next
MsgBox "N° des lignes sélectionnées :" & vbLf & vbLf & Join(d.keys, "-")
End Sub
A+
 
Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…