Mise à jour commentaire de toutes mes feuilles en une fois

marcelio

XLDnaute Occasionnel
Bonjour à tous,
Je rentre des données sur la feuille départ
Ceux-ci sont ensuite renvoyer sur les différentes feuilles (environ 20 feuilles) de mon classeur qui ont un commentaire, et 30 sans commentaires.
Sur chaque feuille avec commentaire j'ai un bouton (mise à jour ) qui me permet de voir les résultats obtenus sur le commentaire.

J'aimerais si cela est possible c'est de faire en 1 clic sur la feuille départ la mise à jour de tous les commentaires.

J'ai testé différentes solutions mais celles-ci n'ont pas fonctionner
merci d'avance de cotre aide.
Marcelio
 

Pièces jointes

  • Commentaires.xls
    81.5 KB · Affichages: 52
  • Commentaires.xls
    81.5 KB · Affichages: 48

Lone-wolf

XLDnaute Barbatruc
Re : Mise à jour commentaire de toutes mes feuilles en une fois

Bonjour marcelio :)

Essaie d'adapter cette macro de Jacques Boisgontier

Code:
Sub ListeCommentaires()
  Application.DisplayAlerts = False
  On Error Resume Next
  Sheets("Commentaires").Delete
  On Error GoTo 0
  Sheets.Add after:=Sheets(Sheets.Count)
  ActiveSheet.Name = "Commentaires"
  ligne = 2
  For s = 1 To ActiveWorkbook.Sheets.Count
    For Each C In Sheets(s).Comments
      C.Text = Sheets("Commentaires").Cells(ligne, 3) 
      ligne = ligne + 1
    Next C
  Next s
End Sub
 

marcelio

XLDnaute Occasionnel
Re : Mise à jour commentaire de toutes mes feuilles en une fois

Bonjour Lone-wolf,
Cela n'est pas ce que je souhaiterais avoir.
Car ton code m'affiche un nouveau onglet avec le nom " Commentaires "
Si tu as une autre solution, merci d'avance.
Marcelio
 

Lone-wolf

XLDnaute Barbatruc
Re : Mise à jour commentaire de toutes mes feuilles en une fois

marcelio

Ceci n'est qu'un exemple, et j'ai bien dis qu'il fallait adapter à ton cas non?. Tu ne vas as me dire que c'est compliqué de supprimer la ligne qui insère la feuille "Commentaires" ?! Et modifier .Cells(ligne, 3) 3 étant la colonne C, par la(ou les colonnes) où il y a tes commentaires?! :confused:
 
Dernière édition:

STephane

XLDnaute Occasionnel
Re : Mise à jour commentaire de toutes mes feuilles en une fois

Marcelio

Pour rappel aux utilisateurs occasionnels, le forum contient un moteur de recherche. De plus, en bas d'un billet figure une liste de billets connexes qui peuvent contenir des éléments importants pour venir à bout des difficultés rencontrées.

Voilà une solution, jusqu'à une éventuelle proposition plus simple.

Sub ListeCommentaires()
Application.DisplayAlerts = False

Dim sCommentFolder As String
Dim sCommentName As String
Dim sFilePath As String
Dim C As Comment
sCommentName = "Commentairetemp"


' Indicate here the temporary folder
' Indiquer ci-dessous le répertoire pour le fichier temporaire
sCommentFolder = "a:\"

' Exporting image of the comment range (START)
' 1 - getting the wished range
Dim rgExp As Range
Set rgExp = Worksheets("depart").Range("G23:L34")

' 2 - create the range picture into the clipboard
rgExp.CopyPicture Appearance:=xlScreen, Format:=xlBitmap

' 3 - create a chart
With ActiveSheet.ChartObjects.Add(Left:=rgExp.Left, Top:=rgExp.Top, Width:=rgExp.Width, Height:=rgExp.Height)
.Name = sCommentName
.Activate
End With
' 4- paste the clipboard image into the chart
ActiveChart.Paste

' 5- export the image into a file that will be deleted later
sFilePath = sCommentFolder & sCommentName & ".jpg"
ActiveSheet.ChartObjects("Commentairetemp").Chart.Export sFilePath


' 6 - updating the workbook comments

For s = 1 To ActiveWorkbook.Sheets.Count


For Each C In Sheets(s).Comments
C.Shape.Fill.UserPicture sFilePath
Exit For ' to exit at first comment of the sheet
Next C
nnext1:
Next s

' Deleting temporary file and image
Worksheets("depart").ChartObjects("Commentairetemp").Delete
Kill sFilePath

End Sub
 

Lone-wolf

XLDnaute Barbatruc
Re : Mise à jour commentaire de toutes mes feuilles en une fois

re

Code:
Sub ListeCommentaires()
Dim cmt As Comment, plage As Range, sh As Long
  Application.ScreenUpdating = False
  Application.DisplayAlerts = False
  Set plage = Sheets("depart").Range("g23:l34")
  For sh = 2 To ActiveWorkbook.Sheets.Count
  If sh = 20 Then Exit For
   Sheets(sh).Range("h7").AddComment
    For Each cmt In Sheets(sh).Comments
     cmt.Shape.Width = plage.Width
     cm.Shape.Height = plage.Heigt
     Next cmt
  Next sh
End Sub
 

marcelio

XLDnaute Occasionnel
Re : Mise à jour commentaire de toutes mes feuilles en une fois

Désolé mais j'ai une erreur,
Erreur d'exécution '1004'
Erreur définie par l'application ou par l'objet.
et surligné en jaune
Sheets(sh).Range("h7").AddComment

Merci
 

STephane

XLDnaute Occasionnel
Re : Mise à jour commentaire de toutes mes feuilles en une fois

Le code du post #7 échoue si un commentaire existe déjà.

With Sheets(sh).Range("h7")

Set c = .Comment
If c Is Nothing Then
Set c = .AddComment("Création du commentaire le " & Format(Now, "dd/mm/yyyy"))
Else
c.Shape.TextFrame.Characters.Text = "Mise à jour du " & Format(Now, "dd/mm/yyyy")
End If
c.Shape.Width = plage.Width
c.Shape.Height = plage.Height

End With
 

job75

XLDnaute Barbatruc
Re : Mise à jour commentaire de toutes mes feuilles en une fois

Bonjour marcelio, Lone-wolf,

Pourquoi aller chercher une macro de Jacques Boisgontier :confused:

Il suffit d'adapter la macro qui se trouve déjà dans le fichier :

Code:
Private Sub CommandButton1_Click()
Dim Plage As Range, cel As String, w As Worksheet
Application.ScreenUpdating = False
Set Plage = [G23:L34] 'plage à copier
cel = "H7" 'adresse de la cellule du commentaire
Plage.CopyPicture
With Workbooks.Add 'nouveau document (Zoom 100%)
  With .Sheets(1).ChartObjects.Add(0, 0, Plage.Width, Plage.Height).Chart
    .Paste
    .Export ThisWorkbook.Path & "\MonImage.gif", "GIF"
  End With
  .Sheets(1).[A1].Copy .Sheets(1).[A1] 'vide le presse-papier
  .Close False 'supprime le document avec le graphique temporaire
End With
For Each w In Worksheets
  With w.Range(cel)
    If Not .Comment Is Nothing Then
      w.Unprotect
      .Comment.Delete
      With .AddComment("").Shape
        .Width = Plage.Width
        .Height = Plage.Height
        .Fill.UserPicture ThisWorkbook.Path & "\MonImage.gif"
      End With
      w.Protect
    End If
  End With
Next
Kill ThisWorkbook.Path & "\MonImage.gif" 'supprime le fichier gif
End Sub
Bonne soirée.
 

marcelio

XLDnaute Occasionnel
Re : Mise à jour commentaire de toutes mes feuilles en une fois

Bonsoir messieurs et le forum,
Merci pour votre aide et tous vos codes que j'ai bien du mal à comprendre.
Je vais garder le code de Job qui me convient bien mais il y à une petite erreur.
Ce n'est pas les données de la feuille " depart " qui vos mettre dans les commentaires.
Mais les données de chaque feuille qui sont en DD11:DI22
Exemple:
pour la feuil2 c'est les données qui sont en DD11:DI22 qui doivent être dans le commentaire
pour la feuil3 c'est les données qui sont en DD11:DI22 qui doivent être dans le commentaire
et ici de suite..

Encore merci de votre aide
Marcelio
 

job75

XLDnaute Barbatruc
Re : Mise à jour commentaire de toutes mes feuilles en une fois

Re,

Post #13 :

Ce n'est pas les données de la feuille " depart " qui vos mettre dans les commentaires.
Mais les données de chaque feuille qui sont en DD11:DI22

Post #1 :

Je rentre des données sur la feuille départ
Ceux-ci sont ensuite renvoyer sur les différentes feuilles (environ 20 feuilles) de mon classeur qui ont un commentaire

De qui se moque-t-on ?

A+
 

marcelio

XLDnaute Occasionnel
Re : Mise à jour commentaire de toutes mes feuilles en une fois

Bonsoir Job,
Je me moque de personne, aucune raison de me moquer de qui que se soit.
Peut être que je me suis mal expliquer dès le départ.

A partir des feuilles avec commentaire et à partir de la cellule DD11:I22 je vais chercher des liens sur la feuille départ.
Je rentre mes données et les modifies souvent sur la feuille départ, et c'est la qu'on active la mise à jour pour voir le résultats sur les différents commentaire des différentes feuilles

Toute mes excuses si j'ai pu offenser qui que se soit
Marcelio
 

Discussions similaires

Réponses
21
Affichages
994

Statistiques des forums

Discussions
312 379
Messages
2 087 771
Membres
103 662
dernier inscrit
rterterert