Réinitialisation du presse papier sur Application.

coco_lapin

XLDnaute Impliqué
Bonjour le forum.

je ne peux plus effectuer de copier coller d'une feuille à une autre à cause de ce code:

Private Sub Workbook_SheetActivate(ByVal Sh As Object)
Application.Calculation = xlAutomatic
End Sub

J'ai l'impression que le 'Application.' réinitialise le presse papier.

Avez-vous une solution à m'apporter. Je joins en annexe un exemple. [file name=copiercoller.zip size=6135]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/copiercoller.zip[/file]
 

Pièces jointes

  • copiercoller.zip
    6 KB · Affichages: 33
  • copiercoller.zip
    6 KB · Affichages: 26
  • copiercoller.zip
    6 KB · Affichages: 27

porcinet82

XLDnaute Barbatruc
Salut coco_lapin,

Je ne pense pas que ce soit a cause de ce code car chez moi ca fonctionne. De plus, ton code sert pour réactiver les calculs (code à placer à la fin de la procédure).

Le code qui permet de reinitialiser le presse papier, c'est:
Application.CutCopyMode=False

@+
 

Jacques87

XLDnaute Accro
Bonjour Coco_Lapin, Bonjour Porcinet

Coco_Lapin tu as raison, le 'copier-coller' ne fonctionne pas quand tu changes de page et c'est bien Application qui est en cause, car si tu le mets en remarque plus de problème.
Par contre si tu utilises l'évènement WorkSheet_Change, tu n'auras pas ce problème et l'action s'effectura quand même

Amicalement
 

coco_lapin

XLDnaute Impliqué
Merci porcinet87 et Jacques82 pour vos réponses.
(je n'ai pas pu résister à inverser le 2 et le 7). :p

Merci Jacques87 pour ton astuce 'WorkSheet_Change'.

J'ai le même problème avec le code ci-dessous.

Private Sub Workbook_WindowActivate(ByVal Wn As Excel.Window)
Application.Calculation = xlAutomatic
End Sub

Dans ce cas là je ne peux plus faire de copier-coller d'une feuille d'un classeur vers la feuille d'un autre.

Je passe en xlAutomatic car certains collègues qui développent un peu passe sur xlManuel à l'ouverture de leur classeur et c'est très dangereux.
 

Jacques87

XLDnaute Accro
Oserais cette inversion idiote ?
Et pourquoi pas, il faut toujours oser dans la vie :

Bonjour Loco Calin

et si tu esayais dans l'évènement 'ThisWorkBook' du projet dans lequel tu veux coller

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Application.Calculation = xlAutomatic
End Sub

est-ce que cela répond à ta question, car si j'ai bien compris tu veux calculer dès que tu ouvres une feuille, quelle que soit la 'Window' active.

Amicalement
 
L

Loco_Calin

Guest
Je viens incognito. Je vais voir si les XLdien me reconnaissent.
:p

Jacques87 merci pour ta solution. Elle fonctionne bien.

Je ne voulais pas utiliser cette solution car j'avais peur que cela ralentisse mon application. Car en fait je ne fais pas que de mettre le calcul en auto, je reinitialise aussi des menus.
Etant donné que la reinitialisation des menus ne m'empêche pas de faire des copier coller je vais laisser tel quel pour la reinitialisation des menus et je vais vais placer le code du calcul auto comme tu le proposes.

A+
 

Statistiques des forums

Discussions
312 523
Messages
2 089 313
Membres
104 119
dernier inscrit
karbone57