Bonjour à tous, et merci de prendre quelques minutes pour m'aider à résoudre ce problème, qui devrait être assez simple pour votre niveau.
Voilà le concept.
Je créé un fichier recensant une liste de documents, qui dans le cadre de la qualité, doivent être revus et modifiés si besoin. Un planning de relecture est établi, et je souhaite qu'à chaque début de mois, lorsque j'ouvre le fichier, un pop up s'ouvre avec tous les fichiers à relire ce mois ci (si possible dans un seul pop up). Ce pop up servira plus tard à faire de l'envoi de mail.
Voici la structure du document :
Col A | Col B | Col C | Col D | Col E
N'° | Version | Nom | Diffusion | Date Relecture
Les données débutent ligne 6 jusqu'à la ligne 65
Commençons par le commencement, la comparaison des dates.
J'ai utilisé un mise en forme conditionnelle, pour sélectionner les lignes concernées.
=MOIS(E6:E66)&ANNEE(E6:E66)=MOIS(MAINTENANT())&ANNEE(MAINTENANT())
Cela me permet de mettre en évidence dans le fichier, les lignes de la colonne E qui ont le même mois et année qu'aujourd'hui.
Par contre je n'arrive pas à la réutiliser dans mon code, pour le pop up.
Je débute de cette façon :
Code:
Private Sub workbook_open()
Dim Dt As Range
Dim Ws As Worksheet
Set Ws = Worksheets("Référentiel")
For Each Dt In Ws.Range("E6:E65")
If Dt < Date And Dt <> "" Then_
MsgBox "" & Dt.Offset(0, -4) & Dt.Offset(0, -2)", " & _Dt & " ", _
vbExclamation, " Les documents à reprendre ce mois ci sont : "
Next Dt
End Sub
Private Sub Workbook_Open()
Dim Dt As Range
Dim ws As Worksheet
Dim sMess As String
Set ws = Worksheets("Référentiel")
For Each Dt In ws.Range("E6:E65")
If Dt < Date And Dt <> "" Then
sMess = sMess & Dt.Offset(0, -4) & " " & Dt.Offset(0, -2) & ", " & Dt & " " & vbNewLine
End If
Next Dt
MsgBox sMess, vbExclamation, "Les documents à prendre ce mois-ci sont : "
End Sub
Le code que tu m'as donné me permet effectivement de concaténer tous les pop up dans un seul.
Petit bémol, pour l'instant, le code me retourne uniquement les mois de janvier 2014.
Le code ci dessous n'est donc pas bon. Pour rappel, je souhaite faire une comparaison de manière à n'avoir que les document du mois et de l'année en cours.
Je vous joint le fichier avec la base de donnée et les codes.
Je n'ai pas réussi à faire mieux aujourd'hui. Le code actuel me donnes les dates inférieures à la date actuelle (Tous les janvier 2014 sont retournés)
.
J'ai tenté des comparaisons avec Month, DatePart etc, sans succès.
Je ne maîtrise pas très bien VBA, mais si vous avez des pistes, je suis preneur.
Donc à l'ouverture du fichier se déclenche ma MFC que j'ai réalisé avec l'enregistreur de macro (sûrement pas très propre pour les puristes, mais la formule fonctionne).
En suite, le code que l'on m'a donnée plus haut qui permet de concaténer dans un seul pop up, l'ensemble des document du mois en cours (bon le mois précédent, puisque je ne trouve pas la bonne formule)