Commentaire dynamique

Bonjour à tous

Voilà j'essaie d'adapter un programme sur un planning tous deux trouvé sur le net...

Malheureusement peu de connaissance en VBA et bref je n'y arrive pas

L'idée de mon planning me faire apparaitre un commentaire en fonction d'absents (CP, CFA ou CAR) ceci me permet d'accorder des absences

Bref j'espère être claire

Merci de votre intervention

Cordialement

A

Salut Atos79

Voici le code que tu peux utiliser

Sub Creeplanning()
  Dim ShtP As Worksheet, ShtS As Worksheet
  Dim ColDeb As Long, ColFin As Long, LigF As Long
  Dim sNomClt As String
  ' Définir les variables objet des feuilles
  Set ShtS = Sheets("Saisie")
  Set ShtP = Sheets("planning")
  ' Effacer les commentaires
  ShtP.Range("B7:IV38").ClearComments
  ShtP.Range("B7:IV38").Interior.ColorIndex = xlNone
  ' Pour chjaque ligne de la feuille saisie de la zone "Entreprise"
  For e = 1 To [entreprise].Count
    ' ???
    If UCase(Range("entreprise")(e)) = UCase(NomEntreprise) Then
      ' Si une date de début existe
      If Range("debut")(e) <> "" And Range("fin")(e) <> "" Then
        ' Calculer la colonne de début
        ColDeb = 2 + DateDiff("d", ShtP.Range("B4").Value, ShtS.Range("debut")(e), vbMonday)
        ' Si la date d'absence n'est pas dans le mois sélectionné
        If ColDeb < 2 Then GoTo SuiteBoucle
        ' Calculer la colonne de Fin
        ColFin = 2 + DateDiff("d", ShtP.Range("B4").Value, ShtS.Range("fin")(e), vbMonday)
        ' Récupérer le nom du client de la feuille saisie
        sNomClt = ShtS.Range("Noms")(e)
        ' Trouver la ligne du client sur le planning : chercher une valeur
        LigF = 0
        LigF = ShtP.Range("A:A").Find(What:=sNomClt, LookIn:=xlValues, _
        LookAt:=xlWhole, SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False).Row
        'cmt = Range("client")(e)
        montant = Range("montant")(e)
        With ShtP.Cells(LigF, ColDeb)
          .AddComment
          .Comment.Shape.OLEFormat.Object.Font.Size = 7
          .Comment.Text Text:=cmt & Chr(10) & montant & " ."
          .Comment.Shape.TextFrame.AutoSize = True
          .Comment.Visible = True
        End With
        With ShtP.Range(ShtP.Cells(LigF, ColDeb), ShtP.Cells(LigF, ColFin))
          .Interior.ColorIndex = 36
        End With
      End If
    End If
' On continue la boucle
SuiteBoucle:
  Next e
End Sub

A+

Bonjour Bruno

Merci pour ta réponse mais...

Je sélection un mois par une liste déroulante en haut du tableau et ton programme ne réinitialise pas les messages sur le mois sélectionné.

Si ça t'arrange je n'ai pas besoin de la couleur jaune pour la période du fait que je l'ai en bleu ou rouge.

Je comprend que c'est une usine à gaz mais je n'ai pas trouvé une autre solution pout t'expliqué:

j'ai 9 personne en hôtellerie qui prenne leur congés et nous avons des cars qui vienne je voulais être attentif de ne pas donner des congés sur un weekend chargé. Bref si tu connais une autre solution

Merci encore à toi et à ce forum

A

Re,

Désolé, je n'avais pas vu la liste de choix du mois et du coup ce que tu pouvais faire avec ton planning

En fait ça marche plutôt pas mal

Voici ton fichier avec le code rectifié (juste une ligne à rajouter)

A+

BrunoM45 a écrit :

Re,

Désolé, je n'avais pas vu la liste de choix du mois et du coup ce que tu pouvais faire avec ton planning

En fait ça marche plutôt pas mal

Voici ton fichier avec le code rectifié (juste une ligne à rajouter)

A+

Bonjour Bruno

Mille merci de ton intervention

Je peaufinerais des tests dans le temps mais pour l'heure "pas mal"

Bon dimanche à toi

Cordialement

A

Rechercher des sujets similaires à "commentaire dynamique"