Je voudrais que l'apparence finale une fois que mon VBA soit terminé, soit vide de sélection - aucune cellule ou plage sur une feuille de couleur (si elle était sélectionnée) ou dans une zone de ligne en gras (tout ce qui a été sélectionné). Pupose: présenter au client une apparence finale soignée.
J'ai cherché et je ne trouve pas comment faire cela. Il existe un Unselect selon MS, mais il ne semble rien faire.
Sélectionnez une cellule et désactivez CutCopy
:
Range("A1").Select
Application.CutCopyMode = False
Il y a une façon délicate de le faire.
Créez un objet tel qu'un bouton. Sélectionnez ce bouton, puis masquez-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.
Excel a toujours quelque chose de sélectionné. Un travail est nécessaire. La sélection d'une cellule en dehors de l'écran définira le focus là-bas, de sorte que cela ne fonctionnera pas en soi. Ce code place le curseur en dehors de l'écran, puis fait défiler la feuille pour afficher A1
.
Sub NoSelect()
Range("BB100").Select
ActiveWindow.SmallScroll up:=100
ActiveWindow.SmallScroll ToLeft:=44
End Sub
Si vous ne voulez vraiment rien sélectionner, vous pouvez utiliser VBA pour protéger la feuille à la fin de l'exécution de votre code, ce qui empêchera la sélection. Vous pouvez soit ajouter ceci à une macro ou le mettre directement dans votre VBA.
Sub NoSelect()
With ActiveSheet
.EnableSelection = xlNoSelection
.Protect
End With
End Sub
Dès que la feuille n'est plus protégée, le curseur activera une cellule.
En fonction de la taille de votre sélection, pour vous débarrasser de tout artefact (je ne sais pas si c'est également un problème dans Excel 2013, mais sur Mac c'était une douleur constante pour moi), vous pouvez simplement parcourir cellule par cellule et sélectionnez chacun.
En désactivant la mise à jour de l'écran avant de sélectionner une cellule, faire défiler les cellules sélectionnées est temporairement désactivé.
Ce code vérifie les cellules actuellement visibles et sélectionne la première cellule située en dessous de la plage visible qui n’est pas visible. Par exemple, lorsque je l’essaie: la plage Visble est A1: BC79. Ce code sélectionne donc A80 et fait défiler la liste vers le bas, puis vers la droite, puis la réexécute révèle que Excel choisit la première cellule NON visible en dessous de la première colonne visible.
Dim r As Range Application.ScreenUpdating = False Définir r = Application.ActiveWindow.VisibleRange R (r.Cells.Count + 1). Sélectionnez Application.ScreenUpdating = True
Très vieille question, mais ma réponse pour référence:
Vous pouvez utiliser
With ActiveSheet
.EnableSelection = xlNoSelection
.Protect
End With
La seule réponse est de tricher.
Masquer la colonne A
et la ligne 1
Placez le curseur dans A1
. Il y aura un petit point dans le coin de B2
Le code source de cette est une réponse à une question différente sur ce site.