43 votes

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

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

47voto

Michael Points 830

Selection est son propre objet dans VBA. Il fonctionne à peu près comme un Range objet.

Cependant, la sélection et la plage ne partagent pas toutes les mêmes propriétés et méthodes. Par conséquent, pour faciliter l'utilisation, il peut être judicieux de créer une plage et de la rendre égale à la sélection, puis de la traiter par programme comme n'importe quelle autre plage.

Dim myRange as Range
Set myRange = Selection

Pour en savoir plus, consultez le site Article de MSDN .

35voto

Miyagi Coder Points 2377

Vous pouvez parcourir en boucle 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

21voto

Peter Majko Points 630

Cela dépend de ce que vous entendez par "obtenir la gamme de sélection". Si vous voulez dire obtenir la gamme adresse (comme "A1:B1"), utilisez alors la propriété Address de l'objet Selection - comme Michael l'a dit, l'objet Selection ressemble beaucoup à un objet Range, donc la plupart des propriétés et méthodes fonctionnent sur lui.

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

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X