Mise à jour de dates
Bonsoir à tous amis codeurs !
(Très) novice dans le domaine, je reviens vers vous pour quelques questions / demande de résolution de problèmes
J'avais déjà posé quelques questions ici il y a un certain temps.
J'ai un fichier (ci-joint) qui permet de remettre à jour des dates de rdv obligatoires. J'ai donc en colonne 1 la liste des personnes, en colonne 2 la date de l'échéance, en colonne 3 une date de rdv prévisionnelle et en colonne 4 si le justificatif de rdv a été transmis ou pas.
Une fois le justificatif transmis, le "oui" coché, la date d'échéance se met à jour (an + 2 par rapport au RDV prévu (colonne 3)) et le reste des colonnes se vident (à part le non).
Voici le code utilisé : "
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column <> 4 Then Exit Sub
If Target = "oui" Then
If IsDate(Cells(Target.Row, 3)) Then
Application.EnableEvents = False
Cells(Target.Row, 2) = DateSerial(Year(Cells(Target.Row, 3)) + 2, Month(Cells(Target.Row, 3)), Day(Cells(Target.Row, 3)))
Cells(Target.Row, 3).Resize(1, 2).ClearContents
Application.EnableEvents = True
Else
MsgBox "pas de date en C" & Target.Row & "!?", vbOKOnly, "Attention"
End If
End If
End Sub
"
L'idée est de poursuivre la démarche en proposant une 5è colonne "date de 2eme RDV" si le premier n'a pas eu lieu et une 6e colonne "justificatif transmis" avec les même choix que la colonne 4. Je souhaite aussi qu'en choisissant "oui" en colonne 6 il se passe la même chose qu'en colonne 4. C'est à dire que la colonne 2 se mette à jour à la date de la colonne 5 + 2 ans.
J'ai pour le moment réussi à valider la colonne 2 avec la colonne 6 mais pas à valider la colonne 5 avec la colonne 6.... Les limites du noob ont été atteintes
Merci de votre aide à tous.
Bonne soirée et bonnes fêtes de fin d'année
Bonsoir,
Je ne comprends pas bien ! A partir du moment où tu effaces les cellules en C et D, elles sont réutilisables pour le nouveau RV sans avoir besoin de E et F !
Et la notion de transmission du certificat me titille, je n'y vois pas confirmation du client...
Cordialement.
Bonjour, merci de ta réponse,
L'idée est d'avoir un visuel sur si le certif est transmis au 1er ou 2eme RDV. Tout en gardant en memoire la date du 1er rdv. D'où les autres colonnes. Si tu as une idee pour faire autrement je suis tout ouïe.
Et il n'y a pas de confirmation client
Bonne journée.
Bonjour,
Ça devrait donner cela, si je comprends :
Private Sub Worksheet_Change(ByVal Target As Range)
Dim d, n%
If Target.Column = 4 Or Target.Column = 6 Then
If LCase(Target) = "oui" Then
n = Target.Row
If IsDate(Target.Offset(, -1)) Then
d = DateAdd("yyyy", 2, Target.Offset(, -1))
Me.Cells(n, 2) = d
Application.EnableEvents = False
Me.Cells(n, 3).Resize(, 4).ClearContents
Application.EnableEvents = True
Else
MsgBox "Pas de date en " & Chr(Target.Column + 63) & n & " !?", , "Attention"
End If
End If
End If
End SubCordialement.
Tardivement mais merci beaucoup MFerrand!!