web-dev-qa-db-fra.com

Comment désélectionner Excel Cell à l'aide du raccourci clavier?

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?

13
ahmednabil88

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
5
duDE

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:

Deselect cells

2
Giovanni

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!

1
Steve