Application.CutCopyMode = False reste sans effet

  • Initiateur de la discussion Initiateur de la discussion Sebast
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Sebast

XLDnaute Impliqué
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



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
 

Pièces jointes

Re : Application.CutCopyMode = False reste sans effet

Bonjour Sebast
En dehors du fait qu'il est inutile de sélectionner, tu mets ton CutCopyMode en début de procédure, avant toute selection.
Si tu le mets juste avant le Next sh, il servira à quelque chose.
Cordialement

Edit
Une version sans select, il y en a certainement de plus simples:
VB:
Sub Nettoyer_tableaux()
Dim sh As Long
For sh = 1 To Sheets.Count
    With Sheets(sh)
        .Rows(.Range("A1").CurrentRegion.Rows.Count + 1 & ":" & Rows.Count).Delete
        .Range(.Cells(1, .Range("A1").CurrentRegion.Columns.Count + 1), .Cells(1, .Columns.Count).EntireColumn).Delete
    End With
Next sh
End Sub
 
Dernière édition:
Re : Application.CutCopyMode = False reste sans effet

Bonjour sebast, fg🙂

Application.CutCopyMode = False ' pour que la zone sélectionnée ne soit pas grisée

Apetite remarque au passage, pas trop de rapport avec les selection, mais indique l'état du mode couper / copier et cette instruction annul l'effet...

bonne journée
@+
 
Re : Application.CutCopyMode = False reste sans effet

Bonjour Efgé,

merci pour ton aide.
Même en plaçant l'instruction avant Next sh, ça reste sans effet : la zone colonne sélectionnée reste grisée.
Pour faire simple, je voudrais que l'instruction ait le même effet que quand on pointe et clique avec la souris dans la zone grisée : je cherche juste une manière moins artisanale !


Par ailleurs, tu me dis que pas besoin de sélectionner mais dans le cas présent, ça n'est qu'en sélectionnant que se forme le rectangle contigu à la cellule A1 et donc ainsi que je récupère les coordonnées.

Cordialement
 
Re : Application.CutCopyMode = False reste sans effet

Re
Bonjour Pierrot,
Arf, Même pas fait gaffe le Efgé, bien vu 😀
Alors au point où on en est, remplacer le CutCopyMode par Range("A1").Select 😀

Sebast : Regarde mon post précédent ainsi que celui de Pierrot qui te donne le secret

Cordialement
 
Re : Application.CutCopyMode = False reste sans effet

Re,
Bonjour Pierrot,

le code d'Efgé est parfait et beaucoup plus rapide et effectivement, beaucoup plus professionnel car sans ces satanés Select ...

J'ai encore du mal à faire sans mais je me soigne grâce à vos précisions !

Efgé : j'ai posté ma première réponse sans avoir l'ajout que tu as fait avec le code, qui, bizarrement, est apparu un peu plus tard dans le même post, d'où le côté décousu de mes réponses.
A la lecture de la dernière remarque d'Efgé, j'ai l'impression d'avoir sorti une énormité (?!) : l'instruction Application.CutCopyMode = False était donc complètement à côté de la plaque pour mon besoin ?

Un grand merci à vous pour cette aide efficace

Bonne journée 🙂
 
Re : Application.CutCopyMode = False reste sans effet

Re,

j'ai l'impression d'avoir sorti une énormité (?!) : l'instruction Application.CutCopyMode = False était donc complètement à côté de la plaque pour mon besoin ?
pas de souci va, en effet ce n'était pas le code approprié pour ton problème.... t'inquiète pas nous sommes tous passés par là....

bon après midi
@+
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
2
Affichages
520
Réponses
2
Affichages
502
Retour