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 SubA+
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