beforesave et call

B

bricolo

Guest
Bonjour à tous ,

J'essaie de lancer une procédure avant de sauvegarder le classeur mais elle ne fonctionne pas lorsque la sauvegarde est lancée par une procédure mais fonctionne bien lorsque la sauvegarde est manuelle .

Le fichier joint illustre mon problème . Il effectue un simple copier-coller .
Il contient les 4 procédures suivantes :

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Call TestCopy
End Sub

Sub TestSauve()
ActiveWorkbook.Save
End Sub

Sub TestCopy()
Cells(10, 5) = "Le copier-coller ne fonctionne pas"
Cells(1, 1).Copy (Cells(10, 5))
' Sheets("Feuil2").Activate
End Sub

Sub LancerTestCopy()
Call TestCopy
End Sub

Bien sûr , le sheets.activate ne marche pas non plus .

Je tourne sous W2000 et XlL2000 .

Merci à tous pour vos lumières .
 

Pièces jointes

  • CopieRetive.zip
    8.4 KB · Affichages: 15
  • CopieRetive.zip
    8.4 KB · Affichages: 17
  • CopieRetive.zip
    8.4 KB · Affichages: 19
B

bricolo

Guest
Bonjour Abel ,
Ce que tu me dis m'embête un peu : cela veut dire qu'il y a un problème de config . Je vais faire le test sur d'autres pc , ici et puis chez moi pour cerner le souci .
J'ai laissé la sélection de feuille en commentaire , c'est peut-être pour ça que ça ne marche pas .
En tout cas , merci .
 
A

Abel

Guest
bricolo,

Non, non.

J'ai enlevé le commentaire.

J'ai essayé WorkSheets, Sheets, Select, Activate, avec le nom de la feuille ou avec son index dans la collection, un peu toutes les combinaisons, quoi.

Si on exécute juste cette procédure, ça fonctionne impec.

Si ce bout de procédure est appelé par le BeforeSave, la feuille2 n'est pas sélectionnée.
Pourquoi ? Mystère pour moi.

Pour le copier, pas de problème si on ne remet pas une cellule vide sur la J5.

Abel
 
B

bricolo

Guest
Abel ,
Chez moi , tout va bien tant qu'on reste en manuel , beforesave exécute bien testcopy , mais si on lance testsauve , rien ne va plus .
Pas de problème en J5 : tu peux mettre ce que tu veux , ce sera écrasé par TestCopie par ecriture dans la cellule .
 
B

bricolo

Guest
Re: beforesave et call , ça se corse

Bonjour Abel ,

J'ai refait le test sur Xl97 et chez moi sur Xl2000 , mais c'est toujours pareil : Beforesave exécute mal les procédures .

Obstiné , j'ai ajouté une nouvelle procédure :

Private Sub Workbook_SheetCalculate(ByVal Sh As Object)
MsgBox "calcul"
Call TestCopy
End Sub

Tiens-toi bien , celle là fonctionne .
Je ne comprends pas bien ce qui peut la différencier de l'autre : toutes deux réagissent à un événement .

à suivre ...
 

Pièces jointes

  • CopieRetive.zip
    9 KB · Affichages: 14
  • CopieRetive.zip
    9 KB · Affichages: 12
  • CopieRetive.zip
    9 KB · Affichages: 13

Discussions similaires

Statistiques des forums

Discussions
312 842
Messages
2 092 738
Membres
105 519
dernier inscrit
faivre-roussel.ivan@orang