Bonjour à toutes et à tous,
Je pensais qu’avec l’instruction Application.CutCopyMode = False, on pouvait supprimer le grisé d’une sélection.
Malheureusement, ça reste sans effet dans mon code : quand je retourne dans les feuilles concernées, je constate que la zone reste bel et bien grisée ….
Mais étonnement, alors que la zone horizontale (lignes) puis la zone verticale (colonnes) sont grisées, seule la zone verticale reste grisée …
à la rigueur, on pourrait penser que c’est parce que le code passe d’abord aux lignes puis aux colonnes, mais ça ne tient pas car on passe aussi d’une feuille à l’autre …
Quelqu’un a-t-il une idée si c’est la bonne instruction ?
Merci d’avance pour vos lumières
Je pensais qu’avec l’instruction Application.CutCopyMode = False, on pouvait supprimer le grisé d’une sélection.
Malheureusement, ça reste sans effet dans mon code : quand je retourne dans les feuilles concernées, je constate que la zone reste bel et bien grisée ….
Mais étonnement, alors que la zone horizontale (lignes) puis la zone verticale (colonnes) sont grisées, seule la zone verticale reste grisée …
à la rigueur, on pourrait penser que c’est parce que le code passe d’abord aux lignes puis aux colonnes, mais ça ne tient pas car on passe aussi d’une feuille à l’autre …
Quelqu’un a-t-il une idée si c’est la bonne instruction ?
Merci d’avance pour vos lumières
Code:
Sub Nettoyer_tableaux()
Dim dernlign As String ' Rang de la dernière ligne
Dim derncol As String ' Rang de la dernière colonne
Dim SurfaceMarquée As String ' Adresse de la zone sélectionnée
Dim sh As Long ' sh pour feuille
Application.CutCopyMode = False ' pour que la zone sélectionnée ne soit pas grisée
For sh = 1 To Sheets.Count ' on balaie toutes les feuilles
Sheets(sh).Activate
Range("A1").CurrentRegion.Select ' on sélectionne à partir de la 1ère cellule
' (comme si on faisait CTL+A)
SurfaceMarquée = Selection.Address ' le rectangle sélectionné
dernlign = Range(SurfaceMarquée).Rows.Count ' on note le rang de la dernière ligne
Rows(dernlign + 1).Select
Range(Selection, Selection.End(xlDown)).Select ' on sélectionne la zone en-deça de la
' dernière ligne occupée
Selection.Delete Shift:=xlUp ' on purge
derncol = Range(SurfaceMarquée).Columns.Count ' on note le rang de la dernière colonne
Columns(derncol + 1).Select
Range(Selection, Selection.End(xlToRight)).Select ' on sélectionne la zone au-delà de la
' dernière colonne occupée
Selection.Delete Shift:=xlToLeft ' on purge
Next sh ' on passe à la feuille suivante
End Sub