Sélectionnez une plage de cellules dans une macro VBA à l'aide de la souris ou du clavier

Table des matières

Sélectionnez la plage de cellules dans une macro VBA à l'aide de la souris ou du clavier et renvoyez-la comme résultat variable

Les plages de cellules sont traitées dans de nombreuses macros. Cherchez-vous un moyen pratique de laisser l'utilisateur sélectionner une zone à partir d'une macro ? Ensuite, vous pouvez utiliser la commande INPUTBOX.

La figure suivante montre quelle fenêtre de saisie vous pouvez inclure dans vos macros avec cette commande :

Une fois la fenêtre affichée, vous pouvez utiliser la souris ou le clavier pour sélectionner une zone dans un tableau. Excel insère automatiquement la référence appropriée dans le champ de saisie. La macro suivante montre comment intégrer de telles fenêtres :

Sous-MarqueZone ()
En cas d'erreur Reprendre ensuite
Zone obscurcie As Range
Définir la zone = Application.InputBox ("Veuillez sélectionner une zone", _
"Sélectionner la zone",,,,,,, 8)
MsgBox "Vous avez sélectionné la zone suivante :" & _
Area.AddressLocal (False, False)
En cas d'erreur GoTo 0
Fin du sous-marin

Après avoir démarré la macro, Excel affiche d'abord la fenêtre. Lorsque vous avez sélectionné une plage de cellules, Excel affiche la plage précédemment sélectionnée dans une fenêtre de message :

Au lieu de la fenêtre de message, utilisez le code de programme dans vos macros avec lequel vous souhaitez traiter les cellules dans la plage de cellules précédemment sélectionnée. Comme la commande INPUTBOX renvoie un objet de type RANHGE, vous pouvez traiter immédiatement la plage de cellules sélectionnée, par exemple dans une boucle POUR-CHAUD.

Pour entrer dans la macro, appuyez sur ALT F11 dans Excel pour afficher l'éditeur VBA. Utilisez la commande INSERER - MODULE pour insérer une feuille de module vide. Pour démarrer la macro directement à partir d'Excel, utilisez la combinaison de touches ALT F8.

Vous contribuerez au développement du site, partager la page avec vos amis

wave wave wave wave wave