XL 2013 Expliciter une selection multiple

bob_denard

XLDnaute Nouveau
Salut à tous.

Dans mon exemple, en maintenant la touche Ctrl, j'ai sélectionné les plages successives A2:C3, puis C4:C6, et enfin D5.
Quand j'appelle une Sub, la variable Selection.Address contient logiquement "$A$2:$C$3,$C$4:$C$6,$D$5".
J'aimerais expliciter cette sélection multiple et aboutir à un tableau de type String contenant "A2", "B2", "C2", "A3", "B3", "C3", "C4", "C5", "C6", "D5", c'est à dire la liste exhaustive de toutes les cellules de la sélection.
Ma question : existe-t-il dans VBA une fonction permettant d'expliciter une sélection multiple, quelque soit le nombre de sous-sélections qui la compose ?

Merci
Cordialement
Bob
1585230594198.png
 

Staple1600

XLDnaute Barbatruc
Re

Alors amuses toi avec ceci ;)
VB:
Sub Le_Confinement_me_fait_faire(Optional de_ces_trucs_de_Ouf)
Dim i&, j&, t$, vArr
For i = 1 To Range("A2:C3,C4:C6,D5").Areas.Count
For j = 1 To Range("A2:C3,C4:C6,D5").Areas(i).Count
t = t & "," & Range("A2:C3,C4:C6,D5").Areas(i).Item(j).Address(0, 0)
Next j
Next i
vArr = Split(Mid(t, 2), ",")
MsgBox vArr(3)
MsgBox vArr(LBound(vArr))
MsgBox vArr(UBound(vArr))
End Sub
 

Staple1600

XLDnaute Barbatruc
Re

Une autre version
VB:
Sub Sans_Split_et_Sans_Bananes()
Dim i&, S_election As Range, t$
Set S_election = Range("A2:C3,C4:C6,D5"): On Error Resume Next: i = 1
If S_election.Areas.Count > 1 Then
For Each ar In S_election.Areas: For Each c In ar: t = t & "," & c.Address(0, 0): Next: i = i + 1: Next
End If
MsgBox Mid(t, 2)
End Sub
;)
 

Discussions similaires

Statistiques des forums

Discussions
312 305
Messages
2 087 077
Membres
103 455
dernier inscrit
saramachado