Insérer des commentaires à l'aide d'une macro

isa44

XLDnaute Occasionnel
Bonjour , à l'aide d'une macro ; je voudrais insérer des commentaires indiquant des heures de début et fin de service.
Ces commentaires sont dépendant d'une feuille d'horaire.

je joint un fichier résumé qui sera plus explicatif.

Merci pour votre aide
 

Pièces jointes

  • Commentaires.xls
    63.5 KB · Affichages: 53
  • Commentaires.xls
    63.5 KB · Affichages: 56
  • Commentaires.xls
    63.5 KB · Affichages: 68

pierrejean

XLDnaute Barbatruc
Re : Insérer des commentaires à l'aide d'une macro

Bonjour isa44

A tester:

Code:
Sub commentaires()
Dim comm As String
Set plage = Range("B6:B" & Range("B65536").End(xlUp).Row)
Set plage = Application.Union(plage, Range("G6:G" & Range("G65536").End(xlUp).Row))
Set plage = Application.Union(plage, Range("L6:L" & Range("L65536").End(xlUp).Row))
Set plage = Application.Union(plage, Range("Q6:Q" & Range("G65536").End(xlUp).Row))
tablo = Sheets("A").Range("B2:F" & Sheets("A").Range("B65536").End(xlUp).Row)
For Each cel In plage
  For n = LBound(tablo, 1) To UBound(tablo, 1)
    If tablo(n, 1) = cel.Value Then
      comm = comm & "debut: " & Format(tablo(n, 3), "hh:mm") & Chr(10) & "fin: " & Format(tablo(n, 5), "hh:mm") & Chr(10)
    End If
  Next
  cel.ClearComments
  cel.AddComment.Text Text:=comm
  comm = ""
Next
End Sub
 

Pièces jointes

  • Commentaires.xls
    99 KB · Affichages: 83
  • Commentaires.xls
    99 KB · Affichages: 95
  • Commentaires.xls
    99 KB · Affichages: 89

isa44

XLDnaute Occasionnel
Re : Insérer des commentaires à l'aide d'une macro

Bonjour , il faudrait quelques finitions pour que ce soit parfait.
Ajustement de la taille du commentaire et ordre des textes dans le commentaire.

Ci joint mon fichier à modifier
 

Pièces jointes

  • Commentaires2.xls
    114.5 KB · Affichages: 57
  • Commentaires2.xls
    114.5 KB · Affichages: 60
  • Commentaires2.xls
    114.5 KB · Affichages: 53

pierrejean

XLDnaute Barbatruc
Re : Insérer des commentaires à l'aide d'une macro

Re

Voila
NB: Pas interdit de bricoler les macros , mais dans ce cas signale le S.T.P
L'effacement de comm="" m'a couté une bonne prise de tête
 

Pièces jointes

  • Commentaires2.xls
    125 KB · Affichages: 41
  • Commentaires2.xls
    125 KB · Affichages: 46
  • Commentaires2.xls
    125 KB · Affichages: 45

isa44

XLDnaute Occasionnel
Re : Insérer des commentaires à l'aide d'une macro

Code:
Je suis désolée , j'essaie de modifier lorsque je m'aperçois qu'il manque des choses.

J'ai encore " bricolé" le code mais je n'arrive pas à avoir le texte de la colonne G à la fin du commentaire

Code:
Sub commentaires()
Dim comm As String

Cells.ClearComments ' efface les commentaires

Set plage = Range("B6:B27")
Set plage = Application.Union(plage, Range("G6:G30"))
Set plage = Application.Union(plage, Range("L6:L41"))
Set plage = Application.Union(plage, Range("Q6:Q39"))

tablo = Sheets("A").Range("B2:G" & Sheets("A").Range("B200").End(xlUp).Row)

For Each cel In plage
If InStr(cel.Value, Chr(10)) <> 0 Then
  acomp = Split(cel.Value, Chr(10))(0)
Else
  acomp = cel.Value
End If
  For n = LBound(tablo, 1) To UBound(tablo, 1)
   If tablo(n, 1) = acomp Then
      comm = comm & "debut: " & Format(tablo(n, 3), "hh:mm") & Chr(10) & "fin: " & Format(tablo(n, 5), "hh:mm") _
      & Chr(10) & "" & Chr(10) & "" & (tablo(n, 6)) & Chr(10)
    End If
  Next
  
  cel.ClearComments
  cel.AddComment comm
  If Len(comm) > 30 Then
    cel.Comment.Shape.Height = cel.Comment.Shape.Height * 1.2
  Else
    cel.Comment.Shape.Height = cel.Comment.Shape.Height * 0.8
  End If
  comm = ""
Next
End Sub
 

Discussions similaires

Statistiques des forums

Discussions
312 203
Messages
2 086 183
Membres
103 152
dernier inscrit
Karibu