1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
| Sub Test()
Dim Plage As Range, Deb As String, Derlig As String, cell As Range
'Si la sélection couvre plusieurs colonnes, on sort.
If Split(Selection.Address, "$")(1) <> Split(Selection.Address, "$")(3) then exit sub
If Selection.Cells.Count > 1 Then
Deb = Split(Selection.Address, ":")(0) 'adresse du début de colonne ou de sélection.
Derlig = Split(Selection.Address, "$")(4) 'Dernière ligne de la plage ou de la colonne
'Ici on a trois possibilités :
'1 - Derlig > à la dernière ligne renseignée de la colonne :
' La colonne entière a été sélectionnée => On prend la dernière ligne renseignée à la place de DerLig
'2 - Derlig < à la dernière ligne renseignée de la colonne :
' La totalité des cellules renseignées de la colonne n'est pas sélectionnée => On garde Derlig
'3 - dernière ligne renseignée de la colonne = Dernière ligne sélectionnée dans la colonne
If ActiveCell.SpecialCells(xlCellTypeLastCell).Row < Derlig Then
Set Plage = Range(Deb & ":" & Split(ActiveCell.Address, "$")(1) & ActiveCell.SpecialCells(xlCellTypeLastCell).Row)
Else
Set Plage = Range(Deb & ":" & Split(ActiveCell.Address, "$")(1) & Derlig)
End If
For Each cell In Plage
MsgBox cell
Next
else
'la sélection ne couvre qu'une cellule
End If
End Sub |
Partager