Récupère La Plage Sélectionnée Par L'Utilisateur

Comment puis-je obtenir une plage de cellules sélectionnées via l'entrée de la souris utilisateur pour un traitement ultérieur en utilisant VBA?

23
demandé sur JackOrangeLantern 2010-11-02 21:10:19

3 réponses

Vous pouvez parcourir l'objet Selection 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
22
répondu Miyagi Coder 2010-11-02 18:19:27

Selection est son propre objet dans VBA. Il fonctionne un peu comme un objet Range.

La sélection et la plage ne partagent pas toutes les mêmes propriétés et méthodes, donc pour faciliter l'utilisation, il peut être logique de créer une plage et de la définir égale à la sélection, alors vous pouvez la gérer par programme comme n'importe quelle autre plage.

Dim myRange as Range
Set myRange = Selection

Pour en savoir plus, consultez l'article MSDN .

28
répondu Michael 2010-11-02 18:25:25

Cela dépend de ce que vous entendez par "obtenir la plage de sélection". Si vous voulez dire obtenir la plage adresse (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, donc la plupart des propriétés et méthodes y travaillent.

Sub test()
    Dim myString As String
    myString = Selection.Address
End Sub
9
répondu Peter Majko 2015-02-04 10:57:47