Impossible de copier

  • Initiateur de la discussion Initiateur de la discussion sev
  • 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 !

S

sev

Guest
Bonjour à tous,
sur une feuille je ne peux pas copier :
Code:
Range("L63:L120").Select
    Selection.Copy
   
    Range("M63").Select
    Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
        SkipBlanks:=False, Transpose:=False
    Range("M63:P63").Select
    Application.CutCopyMode = False

Cela me met l'erreur : La méthode PasteSpecial de la classe Range a échoué

Qu'est ce qui pourrait me bloquer à ce niveau ?
 
Re : Impossible de copier

Bonjour sev,

Je ne trouve rien d'anormal dans ton code : je l'ai testé, il fonctionne.

Sous quelle version d'Excel travailles-tu ?

Peux-tu envoyer l'intégralité de ton code, il y a peut-être quelquechose d'autre qui provoque cette erreur ?

Cordialement.
 
Re : Impossible de copier

Est-ce toi qui as ajouté ce code ?
Ce n'est pas utile, et c'est même gênant, puisque Excel recalcule automatiquement à chaque changement. Vérifies toutefois si le recalcul automatique n'est pas désactivé dans les options, à moins que ce soit ton code qui l'ait modifié ?

Cordialement.
 
Re : Impossible de copier

Oui ce code vient de moi.
Il sert pour un format conditionnel : lorsque je sélectionne une cellule du tableau , les cellules de cette même ligne (A😛) se colorent en jaune.

Dans les options le calcul est bien activé.
Si je supprime "calculate" je n'ai plus la coloration de la ligne.

Serait il possible alors de neutraliser "calculate" le temps de l'exécution de la copie ?
 
Re : Impossible de copier

Oui, j'ai déjà fait pour neutraliser un événement d'un contrôle à la demande.
Je définis un drapeau que je paramètre à l'appel de ma procédure. Je m'explique :
un drapeau est une variable booléenne, qui peut donc prendre uniquement les valeurs True ou False. Je la définis dans un module de code général, ex :

Code:
Public ValideChange as Boolean

et je la mets à True dans le module d'initialisation.

Ensuite, si je veux inhiber une action, je la mets à False à l'endroit adéquat de mon code, et je teste sa valeur. Dans ton exemple :

Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
if ValideChange = True Then Calculate
End Sub
 
Re : Impossible de copier

Il y a un bug:
Quand j'exécute 2 fois la macro j'ai un bug
Code:
Range("L63:L120").Select
    Selection.Copy
    Range("M63").Select
    
    Dim ValideChange As Boolean
       
    
      ValideChange = False
  
    Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
        SkipBlanks:=False, Transpose:=False
 
Re : Impossible de copier

Je pense que tu dois déclarer ta variable drapeau comme une variable publique. Tu dois donc la déclarer par Public, et non Dim, et dans un module de code (pas dans une autre partie du programme).
Pour ma part, je créée toujours un module spécifique, que je nomme Déclarations, et j'y loge toutes mes variables utilisées pour l'ensemble de l'application.
D'autre part, j'ai omis de préciser qu'il fallait remettre la variable à True, après utilisation.

Cordialement.
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
18
Affichages
606
Réponses
10
Affichages
802
Réponses
2
Affichages
402
Réponses
17
Affichages
1 K
Retour