syntaxe SheetChange et BeforeSave

Le
gaston
bonjour !
j'ai un classeur avec 3 feuilles, et dans chacune, une
forme automatique nomme "Rectangle 1". La macro suivante,
mise dans le code de thisWorkbook enregistre la date du
jour, dans le Rectangle 1 d'une feuille, ds qu'on la
modifie:

Private Sub Workbook_Sheetchange(ByVal Sh As Object, ByVal
Target As Range)
ActiveSheet.Shapes("Rectangle
1").TextFrame.Characters.Text = Format(Now, "dd/mm/yyyy
hh:mm:ss")
End Sub

Or je voudrais que la date ne s'inscrive que lorsqu'on
enregistre. J'ai donc essay avec ceci:

Private Sub Workbook_Beforesave(ByVal Sh As Object, ByVal
Target As Range)
ActiveSheet.Shapes("Rectangle
1").TextFrame.Characters.Text = Format(Now, "dd/mm/yyyy
hh:mm:ss")
End Sub

mais cela m'indique que "la dclaration de la procdure ne
correspond pas la description de l'vnement ou de la
procdure de mme nom".
Ma question est la suivante:
Quelle est la syntaxe utiliser ?
2me question:
je voudrais la date s'inscrive, prcde des mots "date de
dernire modification:" et je n'y arrive pas
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
gaston
Le #1321076
bon j'ai trouvé qu'il fallait mettre ceci en déclaration
pour que cela fonctionne:
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean,
Cancel As Boolean)
mais mon problème est que cela ne marque la date que sur
la feuille qui était active au moment où on enregistre.
Comment faire pour que cela se fasse sur toutes les
feuilles qui ont été modifiées ?
et puis reste ma 2ème question


-----Message d'origine-----
bonjour !
j'ai un classeur avec 3 feuilles, et dans chacune, une
forme automatique nommée "Rectangle 1". La macro
suivante,

mise dans le code de thisWorkbook enregistre la date du
jour, dans le Rectangle 1 d'une feuille, dès qu'on la
modifie:

Private Sub Workbook_Sheetchange(ByVal Sh As Object,
ByVal

Target As Range)
ActiveSheet.Shapes("Rectangle
1").TextFrame.Characters.Text = Format(Now, "dd/mm/yyyy
hh:mm:ss")
End Sub

Or je voudrais que la date ne s'inscrive que lorsqu'on
enregistre. J'ai donc essayé avec ceci:

Private Sub Workbook_Beforesave(ByVal Sh As Object, ByVal
Target As Range)
ActiveSheet.Shapes("Rectangle
1").TextFrame.Characters.Text = Format(Now, "dd/mm/yyyy
hh:mm:ss")
End Sub

mais cela m'indique que "la déclaration de la procédure
ne

correspond pas à la description de l'évènement ou de la
procédure de même nom".
Ma question est la suivante:
Quelle est la syntaxe à utiliser ?
2ème question:
je voudrais la date s'inscrive, précédée des mots "date
de

dernière modification:" et je n'y arrive pas...
.



papou
Le #1321060
Bonjour
Pour répondre à tes deux questions et intégrer ta condition (ton autre
message)
Private Sub Workbook_Sheetchange(ByVal Sh As Object, ByVal Target As Range)
On Error Resume Next
Sh.Shapes("Rectangle 1").TextFrame.Characters.Text = "Date de dernière
modification : " & Format(Now, "dd/mm/yyyy hh:mm:ss")
If Err Then Msgbox "Pas d'objet Rectangle 1 dans la feuille", vbinformation,
"Erreur"
End Sub

Cordialement
Pascal

"gaston" news: 4a5e01c42c3b$99734ee0$
bon j'ai trouvé qu'il fallait mettre ceci en déclaration
pour que cela fonctionne:
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean,
Cancel As Boolean)
mais mon problème est que cela ne marque la date que sur
la feuille qui était active au moment où on enregistre.
Comment faire pour que cela se fasse sur toutes les
feuilles qui ont été modifiées ?
et puis reste ma 2ème question


-----Message d'origine-----
bonjour !
j'ai un classeur avec 3 feuilles, et dans chacune, une
forme automatique nommée "Rectangle 1". La macro
suivante,

mise dans le code de thisWorkbook enregistre la date du
jour, dans le Rectangle 1 d'une feuille, dès qu'on la
modifie:

Private Sub Workbook_Sheetchange(ByVal Sh As Object,
ByVal

Target As Range)
ActiveSheet.Shapes("Rectangle
1").TextFrame.Characters.Text = Format(Now, "dd/mm/yyyy
hh:mm:ss")
End Sub

Or je voudrais que la date ne s'inscrive que lorsqu'on
enregistre. J'ai donc essayé avec ceci:

Private Sub Workbook_Beforesave(ByVal Sh As Object, ByVal
Target As Range)
ActiveSheet.Shapes("Rectangle
1").TextFrame.Characters.Text = Format(Now, "dd/mm/yyyy
hh:mm:ss")
End Sub

mais cela m'indique que "la déclaration de la procédure
ne

correspond pas à la description de l'évènement ou de la
procédure de même nom".
Ma question est la suivante:
Quelle est la syntaxe à utiliser ?
2ème question:
je voudrais la date s'inscrive, précédée des mots "date
de

dernière modification:" et je n'y arrive pas...
.



Publicité
Poster une réponse
Anonyme