web-dev-qa-db-fra.com

Obtenir la plage sélectionnée par l'utilisateur

Comment obtenir une plage de cellules sélectionnée via la souris de l'utilisateur pour un traitement ultérieur à l'aide de VBA?

33
Talguy

Vous pouvez parcourir l'objet Sélection pour voir ce qui a été sélectionné. Voici un extrait de code de Microsoft (http://msdn.Microsoft.com/en-us/library/aa203726(office.11).aspx):

Sub Count_Selection()
    Dim cell As Object
    Dim count As Integer
    count = 0
    For Each cell In Selection
        count = count + 1
    Next cell
    MsgBox count & " item(s) selected"
End Sub
28
Miyagi Coder

Selection est son propre objet dans VBA. Cela fonctionne beaucoup comme un objet Range.

Selection et Range ne partagent pas toutes les mêmes propriétés et méthodes, cependant, pour une facilité d'utilisation, il peut être judicieux de créer une plage et de la définir égale à la Sélection. Vous pourrez alors la traiter par programmation comme toute autre plage.

Dim myRange as Range
Set myRange = Selection

Pour en savoir plus, consultez le article MSDN .

33
Michael

Cela dépend de ce que vous entendez par "obtenir la plage de sélection". Si vous voulez obtenir la plage address (comme "A1: B1"), utilisez la propriété Address de l'objet Selection. Comme Michael l'a déclaré, l'objet Selection ressemble beaucoup à un objet Range. La plupart des propriétés et méthodes fonctionnent ainsi: il.

Sub test()
    Dim myString As String
    myString = Selection.Address
End Sub
12
Peter Majko