web-dev-qa-db-fra.com

Quelle est exactement la fonction de la propriété Application.CutCopyMode dans Excel

Tout d’abord, j’ai trouvé quelques réponses en cherchant sur Google, mais la plupart des forums sont bloqués dans mon Office Network, ce qui pose cette question ici! Une autre intention est d’obtenir une réponse en clair: P

Je comprends que si nous définissons Application.CutCopyMode = False, les résultats Copié/Coupé seront effacés (c’est-à-dire que la mémoire sera effacée), mais quand devrions-nous utiliser ceci et quand ne pas l’utiliser? quelqu'un peut-il aider s'il vous plait? 

23
Saikat

En référant à ce lien ( http://www.excelforum.com/Excel-programming-vba-macros/867665-application-cutcopymode-false.html ), la réponse est la suivante:

Application.CutCopyMode=False apparaît dans le code généré par l'enregistreur de macros lorsque vous copiez/coupez des cellules et que vous les collez. L'enregistreur de macros effectue le copier/coller et le coller dans des instructions séparées et utilise le presse-papiers comme tampon intermédiaire. Je pense que Application.CutCopyMode = False efface le presse-papier. Sans cette ligne, vous obtenez l'avertissement 'There is a large amount of information on the Clipboard....' lorsque vous fermez le classeur contenant une grande quantité de données dans le Presse-papiers.

Avec du code VBA optimisé, vous pouvez généralement effectuer les opérations de copier/couper et coller en une seule instruction. Ainsi, le presse-papiers n'est pas utilisé, Application.CutCopyMode = False n'est pas nécessaire et vous n'obtiendrez pas l'avertissement. 

29
user2230817

Normalement, lorsque vous copiez une cellule, vous trouverez la déclaration ci-dessous dans la barre d'état (au bas de votre feuille).

"Sélectionnez la destination et appuyez sur Entrée ou choisissez Coller"

Ensuite, vous appuyez sur Entrée ou choisissez Coller pour coller la valeur de la cellule.

Si vous n'avez pas appuyé sur Echap par la suite, vous pourrez coller plusieurs fois la valeur de la cellule.

Application.CutCopyMode = False fait la même chose que le bouton Esc. Si vous le supprimez de votre code, vous constaterez que vous pouvez coller la valeur de la cellule plusieurs fois.

Et si vous fermez Excel sans appuyer sur Esc.__, vous obtiendrez l’avertissement «Il y a une grande quantité d’informations dans le Presse-papiers ...». 

11
Osama

Il y a une bonne explication à https://stackoverflow.com/a/33833319/903783

Les valeurs attendues semblent être xlCopy et xlCut selon l'énumération xlCutCopyMode ( https://msdn.Microsoft.com/en-us/VBA/Excel-VBA/articles/xlcutcopymode-enumeration-Excel ), mais 0 La valeur (c'est ce que False équivaut à dans VBA) semble être utile pour effacer les données Excel placées dans le Presse-papiers.

0
George Birbilis