On peut sélectionner plusieurs cellules Excel (contiguës ou non) en utilisant le raccourci clavier Ctrl+ Cliquez.
Comment désélectionner une ou plusieurs de ces cellules précédemment sélectionnées?
En utilisant les touches SHIFT et/ou CTRL, vous pouvez sélectionner des plages non contiguës. Toutefois, si vous sélectionnez une cellule ou une zone par erreur, il n'existe aucun moyen intégré de la supprimer de la sélection sans perdre la sélection entière et sans devoir recommencer. Cette page décrit les procédures VBA, UnSelectActiveCell et UnSelectCurrentArea qui vont supprimer la cellule active ou la zone contenant la cellule active de la sélection en cours. Toutes les autres cellules de la sélection resteront sélectionnées.
Le mieux serait d’ajouter ces éléments à votre classeur de macros personnelles afin qu’ils soient disponibles pour tous les classeurs ouverts dans Excel.
Cette procédure supprimera la cellule active de la sélection .
Sub UnSelectActiveCell()
Dim R As Range
Dim RR As Range
For Each R In Selection.Cells
If StrComp(R.Address, ActiveCell.Address, vbBinaryCompare) <> 0 Then
If RR Is Nothing Then
Set RR = R
Else
Set RR = Application.Union(RR, R)
End If
End If
Next R
If Not RR Is Nothing Then
RR.Select
End If
End Sub
Cette procédure supprimera la zone contenant la cellule active de la sélection.
Sub UnSelectCurrentArea()
Dim Area As Range
Dim RR As Range
For Each Area In Selection.Areas
If Application.Intersect(Area, ActiveCell) Is Nothing Then
If RR Is Nothing Then
Set RR = Area
Else
Set RR = Application.Union(RR, Area)
End If
End If
Next Area
If Not RR Is Nothing Then
RR.Select
End If
End Sub
Un moyen plus robuste de désélectionner plusieurs cellules est décrit dans cet article d'ExtendOffice . Il inclut une invite supplémentaire, mais vous pouvez désélectionner un nombre arbitraire de cellules/sélections à la fois (au lieu de ne désélectionner que la cellule ou la zone active).
Je poste le script ici, avec une légère amélioration de la convivialité (suppression conditionnelle du premier message de sollicitation redondant du message d'origine):
Sub DeselectCells()
Dim rng As Range
Dim InputRng As Range
Dim DeleteRng As Range
Dim result As Range
xTitleId = "Deselect Cells"
Set InputRng = Application.Selection
If InputRng.Count <= 1 Then
Set InputRng = Application.InputBox("Range :", xTitleId, InputRng.Address, Type:=8)
End If
Set DeleteRng = Application.InputBox("Delete Range", xTitleId, Type:=8)
For Each rng In InputRng
If Application.Intersect(rng, DeleteRng) Is Nothing Then
If result Is Nothing Then
Set result = rng
Else
Set result = Application.Union(result, rng)
End If
End If
Next
result.Select
End Sub
Pour l'utiliser, vous effectuez une sélection, appelez la macro DeselectCells
(qu'il est préférable d'enregistrer dans votre carnet de macros personnelles et d'assigner à un raccourci) et de sélectionner les cellules à de sélectionné dans la fenêtre qui apparaît:
Il est maintenant possible de désélectionner avec CTRL une cellule sélectionnée par erreur. C'est une nouvelle fonction intégrée dans Office 365 ou les versions récentes. Finalement!