Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Recopie "intempestive" de commentaire (vba)

6 réponses
Avatar
j-pascal
Bonsoir,

Dans une feuille, je crée un commentaire :

Set MsgTemp = .AddComment(LeTexte_2) (ie) "Calculs en cours ..."

Je le rends visible :

.Visible = True
DoEvents

Puis j'appelle une procédure qui va copier la feuille active (suivant
un filtre...) vers "n" feuilles.

Puis je mets le commentaire à : .Visible = False

(En résumé : Le commentaire s'affiche pendant toute la durée
d'exécution de la procédure).

Le pb, c'est que le commentaire se copie sur toutes les feuilles !

Question : que dois-je insérer dans le code pour que le commentaire ne
soit pas copié ?

Merci pour votre aide,

jp

6 réponses

Avatar
MichDenis
Au lieu d'utiliser un commentaire, utilise un formulaire
(userform) dans lequel tu places ton message durant
l'exécution de la macro.




"j-pascal" a écrit dans le message de groupe de discussion :
Bonsoir,

Dans une feuille, je crée un commentaire :

Set MsgTemp = .AddComment(LeTexte_2) (ie) "Calculs en cours ..."

Je le rends visible :

.Visible = True
DoEvents

Puis j'appelle une procédure qui va copier la feuille active (suivant
un filtre...) vers "n" feuilles.

Puis je mets le commentaire à : .Visible = False

(En résumé : Le commentaire s'affiche pendant toute la durée
d'exécution de la procédure).

Le pb, c'est que le commentaire se copie sur toutes les feuilles !

Question : que dois-je insérer dans le code pour que le commentaire ne
soit pas copié ?

Merci pour votre aide,

jp
Avatar
j-pascal
Je n'avais pas pensé à ça (et pour cause !). Ca me paraît être une
excellente idée. J'essaye ça demain.

Merci

jp

PS : je garde un très mauvais souvenir des "ProgressBar" qui est
pourtant une solution très adaptée. Parfois, il m'arrive de renoncer,
par égard pour les contributeurs ;-)

Au lieu d'utiliser un commentaire, utilise un formulaire
(userform) dans lequel tu places ton message durant
l'exécution de la macro.




"j-pascal" a écrit dans le message de groupe de
discussion : Bonsoir,

Dans une feuille, je crée un commentaire :

Set MsgTemp = .AddComment(LeTexte_2) (ie) "Calculs en cours ..."

Je le rends visible :

.Visible = True
DoEvents

Puis j'appelle une procédure qui va copier la feuille active (suivant
un filtre...) vers "n" feuilles.

Puis je mets le commentaire à : .Visible = False

(En résumé : Le commentaire s'affiche pendant toute la durée
d'exécution de la procédure).

Le pb, c'est que le commentaire se copie sur toutes les feuilles !

Question : que dois-je insérer dans le code pour que le commentaire ne
soit pas copié ?

Merci pour votre aide,

jp


Avatar
Mgr T. Banni
tu peux peut-être aussi annuler tous tes commentaires en fin de macro...
moi, je ne sais faire que pour la feuille active et ça donne :

Sub SupprimerCommentaires()
Dim Cmt As Comments
Dim C As Comment
Set Cmt = ActiveSheet.Comments
For Each C In Cmt
C.Visible = True
C.Shape.Select
Selection.Delete
Next
End Sub

celui qui t'a parlé d'un userform va bien nous dire comment faire pour que
le commentaire s'annule sur les "n" feuilles :-)
Mgr T.B. (comme Très Basic)

"j-pascal" a écrit dans le message de news:

Je n'avais pas pensé à ça (et pour cause !). Ca me paraît être une
excellente idée. J'essaye ça demain.

Merci

jp

PS : je garde un très mauvais souvenir des "ProgressBar" qui est pourtant
une solution très adaptée. Parfois, il m'arrive de renoncer, par égard
pour les contributeurs ;-)

Au lieu d'utiliser un commentaire, utilise un formulaire
(userform) dans lequel tu places ton message durant l'exécution de la
macro.




"j-pascal" a écrit dans le message de groupe de
discussion : Bonsoir,

Dans une feuille, je crée un commentaire :

Set MsgTemp = .AddComment(LeTexte_2) (ie) "Calculs en cours ..."

Je le rends visible :

.Visible = True
DoEvents

Puis j'appelle une procédure qui va copier la feuille active (suivant un
filtre...) vers "n" feuilles.

Puis je mets le commentaire à : .Visible = False

(En résumé : Le commentaire s'affiche pendant toute la durée d'exécution
de la procédure).

Le pb, c'est que le commentaire se copie sur toutes les feuilles !

Question : que dois-je insérer dans le code pour que le commentaire ne
soit pas copié ?

Merci pour votre aide,

jp






Avatar
Mgr T. Banni
:-)))))
il n'y pas que Dieu qui devine tout...
mais permettez que je vous contredise, mon fils : pour les célébrations
dominicales, c'est au blanc que nous carburons....
Mgr T.B.

"MichDenis" a écrit dans le message de news:

Bonjour Mgr,

'----------------------------
Sub test()
Dim Sh As Worksheet, C As Comment
For Each Sh In Worksheets
For Each C In Sh.Comments
C.Delete
Next
Next
End Sub
'----------------------------

P.S- Gardez-vous un peu de rouge pour les célébrations dominicales! ;-)

Salutations.



"Mgr T. Banni" a écrit dans le message de groupe de
discussion :
tu peux peut-être aussi annuler tous tes commentaires en fin de macro...
moi, je ne sais faire que pour la feuille active et ça donne :

Sub SupprimerCommentaires()
Dim Cmt As Comments
Dim C As Comment
Set Cmt = ActiveSheet.Comments
For Each C In Cmt
C.Visible = True
C.Shape.Select
Selection.Delete
Next
End Sub

celui qui t'a parlé d'un userform va bien nous dire comment faire pour que
le commentaire s'annule sur les "n" feuilles :-)
Mgr T.B. (comme Très Basic)

"j-pascal" a écrit dans le message de news:

Je n'avais pas pensé à ça (et pour cause !). Ca me paraît être une
excellente idée. J'essaye ça demain.

Merci

jp

PS : je garde un très mauvais souvenir des "ProgressBar" qui est pourtant
une solution très adaptée. Parfois, il m'arrive de renoncer, par égard
pour les contributeurs ;-)

Au lieu d'utiliser un commentaire, utilise un formulaire
(userform) dans lequel tu places ton message durant l'exécution de la
macro.




"j-pascal" a écrit dans le message de groupe de
discussion : Bonsoir,

Dans une feuille, je crée un commentaire :

Set MsgTemp = .AddComment(LeTexte_2) (ie) "Calculs en cours ..."

Je le rends visible :

.Visible = True
DoEvents

Puis j'appelle une procédure qui va copier la feuille active (suivant un
filtre...) vers "n" feuilles.

Puis je mets le commentaire à : .Visible = False

(En résumé : Le commentaire s'affiche pendant toute la durée d'exécution
de la procédure).

Le pb, c'est que le commentaire se copie sur toutes les feuilles !

Question : que dois-je insérer dans le code pour que le commentaire ne
soit pas copié ?

Merci pour votre aide,

jp








Avatar
j-pascal
Bonsoir,

Merci pour cette proposition ; néanmoins, j'ai oublié de dire que les
feuilles (copiées avec le commentaire" étaient exportées vers autant de
classeurs ...

J'ignore si c'est possible, mais je ne suis pas très chaud pour générer
une macro pour traiter 40 classeurs et donc alonger la procédure ...

Désolé de ne pas l'avoir précisé plus tôt. J'ai dû oublier de prendre
ma respiration avant de poser la question ;-)

JP

tu peux peut-être aussi annuler tous tes commentaires en fin de macro...
moi, je ne sais faire que pour la feuille active et ça donne :

Sub SupprimerCommentaires()
Dim Cmt As Comments
Dim C As Comment
Set Cmt = ActiveSheet.Comments
For Each C In Cmt
C.Visible = True
C.Shape.Select
Selection.Delete
Next
End Sub

celui qui t'a parlé d'un userform va bien nous dire comment faire pour que le
commentaire s'annule sur les "n" feuilles :-)
Mgr T.B. (comme Très Basic)

"j-pascal" a écrit dans le message de news:

Je n'avais pas pensé à ça (et pour cause !). Ca me paraît être une
excellente idée. J'essaye ça demain.

Merci

jp

PS : je garde un très mauvais souvenir des "ProgressBar" qui est pourtant
une solution très adaptée. Parfois, il m'arrive de renoncer, par égard pour
les contributeurs ;-)

Au lieu d'utiliser un commentaire, utilise un formulaire
(userform) dans lequel tu places ton message durant l'exécution de la
macro.




"j-pascal" a écrit dans le message de groupe de
discussion : Bonsoir,

Dans une feuille, je crée un commentaire :

Set MsgTemp = .AddComment(LeTexte_2) (ie) "Calculs en cours ..."

Je le rends visible :

.Visible = True
DoEvents

Puis j'appelle une procédure qui va copier la feuille active (suivant un
filtre...) vers "n" feuilles.

Puis je mets le commentaire à : .Visible = False

(En résumé : Le commentaire s'affiche pendant toute la durée d'exécution
de la procédure).

Le pb, c'est que le commentaire se copie sur toutes les feuilles !

Question : que dois-je insérer dans le code pour que le commentaire ne
soit pas copié ?

Merci pour votre aide,

jp








Avatar
j-pascal
Bonsoir Denis,

J'ai trouvé ici : http://excelabo.net/trucs/userform_message
une proposition de D.M. ;-)

Qu'est-ce que "frm1" (dans "frm1.Show") ?

Ce n'est pas un label !?

Je cherche qqch de tout simple ; si je mets un label, j'aurai le
pourtour du UF ?!

Sur : (faut-il citer les liens ?)

j'ai trouvé :

# Private Sub Workbook_open()
# Load WaitBox
# End sub
#
#
# Sub MaProc()
# Application.Cursor = XlWait
# WaitBox.Show vbModeless
# WaitBox.Repaint
#
# 'MaMacro...
#
# WaitBox.hide
# Application.Cursor=XlDefault
# End sub
#
#
# Private Sub WorkBook_BeforeClose(Cancel as Boolean) #
# Unload WaitBox
# End sub

Je ne comprends pas l'intérêt de charger l'UF dès l'ouverture du
classeur !

Que peux-tu me conseiller de très simple ? Un UF qu'on peut mettre en
couleur (fond et police) + centrage du texte

@+ ?

jp

Au lieu d'utiliser un commentaire, utilise un formulaire
(userform) dans lequel tu places ton message durant
l'exécution de la macro.




"j-pascal" a écrit dans le message de groupe de
discussion : Bonsoir,

Dans une feuille, je crée un commentaire :

Set MsgTemp = .AddComment(LeTexte_2) (ie) "Calculs en cours ..."

Je le rends visible :

.Visible = True
DoEvents

Puis j'appelle une procédure qui va copier la feuille active (suivant
un filtre...) vers "n" feuilles.

Puis je mets le commentaire à : .Visible = False

(En résumé : Le commentaire s'affiche pendant toute la durée
d'exécution de la procédure).

Le pb, c'est que le commentaire se copie sur toutes les feuilles !

Question : que dois-je insérer dans le code pour que le commentaire ne
soit pas copié ?

Merci pour votre aide,

jp