2012-09-03 22:07:34 +0000 2012-09-03 22:07:34 +0000
9
9

Excel VBA "Unselect" recherché

J'aimerais que l'apparence finale de mon VBA soit vide de toute sélection - qu'il n'y ait aucune cellule ou plage sur une feuille colorée (si elle a été sélectionnée) ou dans une case de ligne en gras (tout ce qui a été sélectionné). Pupose : pour présenter au client une apparence finale soignée.

J'ai cherché et je ne trouve pas comment faire. Il y a une Désélection selon MS, mais elle ne semble rien faire.

Réponses (8)

10
10
10
2013-11-25 13:31:37 +0000

Sélectionnez n'importe quelle cellule et désactivez CutCopy :

Range("A1").Select
  Application.CutCopyMode = False
2
2
2
2012-09-05 18:38:48 +0000

Excel a toujours quelque chose de sélectionné. Un contournement est nécessaire. La sélection d'une cellule hors de l'écran va y mettre le focus, ce qui ne fonctionnera pas en soi. Ce code place le curseur hors écran et fait ensuite défiler la feuille vers le haut pour afficher A1.

Sub NoSelect()    
  Range("BB100").Select
  ActiveWindow.SmallScroll up:=100
  ActiveWindow.SmallScroll ToLeft:=44
End Sub

Si vous voulez vraiment que “rien ne soit sélectionné”, vous pouvez utiliser VBA pour protéger la feuille à la fin de l'exécution de votre code, ce qui fera que rien ne sera sélectionné. Vous pouvez soit l'ajouter à une macro, soit la placer directement dans votre VBA.

Sub NoSelect()
   With ActiveSheet
   .EnableSelection = xlNoSelection
   .Protect
   End With
End Sub

Dès que la feuille est non protégée, le curseur active une cellule.

2
2
2
2014-09-04 13:06:33 +0000

Il y a une manière délicate de le faire.

Créez un objet tel qu'un bouton. Sélectionnez ce bouton, puis cachez-le, et aucune cellule ne sera sélectionnée.

ActiveSheet.Shapes("Button 1").Visible = True

ActiveSheet.Shapes("Button 1").Select

ActiveSheet.Shapes("Button 1").Visible = False

C'est tout.

1
1
1
2018-12-20 12:44:14 +0000

Très vieille question, mais ma réponse pour référence :

Vous pouvez utiliser

With ActiveSheet
    .EnableSelection = xlNoSelection
    .Protect
End With
1
1
1
2015-02-22 19:00:40 +0000

En fonction de la taille de votre sélection, pour vous débarrasser de tout artefact (je ne sais pas si c'est aussi un problème en 2013 Excel, mais sur Mac c'était une douleur constante pour moi) vous pouvez simplement passer en boucle dans chaque cellule et les sélectionner.

1
1
1
2016-04-11 07:18:46 +0000

En désactivant la mise à jour de l'écran avant de sélectionner une cellule, le défilement vers les cellules sélectionnées est temporairement désactivé.

Ce code vérifie quelles cellules sont actuellement visibles et sélectionne la première cellule en dessous de la plage visible qui n'est pas en vue. Par exemple, quand je l'essaie : La plage visible est A1:BC79, donc ce code sélectionne A80 et en faisant défiler vers le bas et vers la droite et en le parcourant à nouveau, l'excel sélectionne la première cellule NON visible en dessous de la première colonne visible.

Dim r As Range Application.ScreenUpdating = False Set r = Application.ActiveWindow.VisibleRange r(r.Cells.Count + 1).Select Application.ScreenUpdating = True
1
1
1
2012-09-05 17:56:56 +0000

La seule réponse est de tricher.

Cacher la colonne A et la ligne 1

Mettre le curseur dans A1. Il y aura un tout petit point dans le coin de B2

0
0
0
2016-10-11 16:29:56 +0000

Utilisez une astuce : Ajoutez une forme, puis sélectionnez-la et cachez-la.

Code source de ce est la réponse à une autre question sur ce site.