XL 2010 Macro alerte à l'ouverture fichier-échéance

djam28

XLDnaute Occasionnel
Bonjour à tous,
Je sollicite votre aide pour concevoir une macro m'affichant une alerte à l'ouverture de mon fichier excel selon deux conditions (fichier ci-joint):
Je m'explique: Lorsque sur une cellule est écrit :entrée au flux et la date du jour est J-4 , les deux conditions réunies génèrent une alerte , en mentionnant le nom du patient (cellule en violet) , une phrase du styme "Pensez à récupérer l'aptitude"
Ci-joint le fichier en question
Merci de ce que vous me proposerez, je vous en serai reconnaissant
Bonne journée
DE
 

Pièces jointes

  • Test coordination.xlsx
    15.2 KB · Affichages: 14

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour dJam,
En PJ à l'ouverture du fichier la liste donne les entrées à prévoir.
( à noter que je liste les entrées DANS les 4 prochains jours, sinon si le fichier n'a pas été ouvert hier les entrées dans 3 jours ne seraient pas alertées. Facile à modifier si ne convient pas ) :)

VB:
Private Sub Workbook_Open()
Dim DerLig As Integer, DerCol As Integer, L As Integer, C As Integer, Chaine As String
DerLig = Sheets("Feuil1").Range("A65500").End(xlUp).Row                 ' Recherche dernière ligne
DerCol = 1 + Application.CountIf(Sheets("Feuil1").Range("3:3"), "*")    ' Recherche dernière colonne
For L = 1 To DerLig                                                     ' Pour toutes les lignes
    If Sheets("Feuil1").Cells(L, 1) = "Consentements" Then              ' Si Consentements en colonne A
        For C = 1 To DerCol                                             ' Pour toutes les colonnes
            If Sheets("Feuil1").Cells(L, C) = "Entrée au flux" And _
                Sheets("Feuil1").Cells(L - 3, C) <= Int(Now) + 4 Then   ' Si Entrée au flux dans moins de 4 jours
                ' On ajoute nom prénom date dans la chaine
                Chaine = Chaine & Sheets("Feuil1").Cells(L, 2) & vbTab & " Entrée de flux :" & vbTab & Sheets("Feuil1").Cells(L - 3, C) & Chr(13)
            End If
        Next C
    End If
Next L
If Chaine = "" Then
    MsgBox "Pas d'entrée prévue.", , "Entrée au flux dans moins de 4 jours" ' On affiche le message Rien de prévu
Else
    MsgBox Chaine, , "Entrée au flux dans moins de 4 jours"                 ' On affiche le message Liste des entrées
End If
End Sub
 

Pièces jointes

  • Test coordination.xlsm
    23.5 KB · Affichages: 4

sylvanu

XLDnaute Barbatruc
Supporter XLD
Ch'ti bug, les alertes passées s'affichent aussi.:(
En PJ rectifié. Alerte si moins de 4 jours et échéance non dépassée.
VB:
If Sheets("Feuil1").Cells(L, C) = "Entrée au flux" And _
   Sheets("Feuil1").Cells(L - 3, C) <= Int(Now) + 4 And _
   Sheets("Feuil1").Cells(L - 3, C) >= Int(Now) Then       ' Si Entrée au flux dans moins de 4 jours
 

Pièces jointes

  • Test coordination (2).xlsm
    23.7 KB · Affichages: 9

djam28

XLDnaute Occasionnel
Sylvanu, sur mon fichier d'origine cela ne focntionne pas , je l'ai transposé mais je ne vois pas ce qui cloche, je vous joins le fichier . Ca ne détecte pas l'entrée au flux
Merci encore++
 

Pièces jointes

  • COORDINATION2020.xlsm
    160.1 KB · Affichages: 4

sylvanu

XLDnaute Barbatruc
Supporter XLD
Re bonjour,
J'ai mis plein de commentaires dans le VBA. En particulier :
VB:
DerCol = 1 + Application.CountIf(Sheets("Feuil1").Range("3:3"), "*")    ' Recherche dernière colonne
Qui recherche sur la ligne 3 la dernière cellule utilisée.
Dans votre nouveau fichier la ligne 3 est vide. La première ligne qui comporte tous les jours est la 22 :
Code:
DerCol = 1 + Application.CountIf(Sheets("Feuil1").Range("22:22"), "*")  ' Recherche dernière colonne
et comme ça, ça marche ! :)
 

Pièces jointes

  • COORDINATION2020(2).xlsm
    152.1 KB · Affichages: 6

djam28

XLDnaute Occasionnel
Bonjour à tous, bonjour Sylvanu,
J'espère que vous allez bien..J'ai une petite requete, Syvanu m'avait aidé à mettre en place une alerte à l'ouverture de mon tableur excel (fichier ci-joint) en fonction de la date du jour et la présence de quelques infos dans le fichier (code workbook). Je voudrais procéder autrement, en passant par un userform ,pour afficher mes alertes, à ma demande. , reprendre le code workbook et l'associer à un module/usrform,
En vous remerciant par avance et très bonne journée à vous
DE
 

Pièces jointes

  • COORDINATION2020(2) (2).xlsm
    156.7 KB · Affichages: 3

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour Djam,
Qu'entendez vous par Uerform ? Un msgbox est il suffisant ?
Dans ce cas voir PJ, j'ai supprimer l'affichage à l'ouverture du fichier et l'affiche sur appui sur ALERTES.
On aurait pu aussi avoir les deux, à vous de choisir.
 

Pièces jointes

  • COORDINATION2020(2) (2) (1).xlsm
    152.9 KB · Affichages: 4

djam28

XLDnaute Occasionnel
Merci Syvanu pour ton retour. Je vous explique les choses, j'avais multiplié ce code pour plusieurs variables, entrée au flux, aptitude ...(j'ai une chronologie d'alerte sur la meme fenetre) et ça fonctionne très bien, sauf que la fenetre alerte est tellement petite que je ne vois pas le reste des info, à mon avis c'est un problème de mise en forme , je ne sais pas si y'a possibilité de l'agrandir ..C'est pourquoi je voudrais passer par un userform comme fenetre d'alerte
..Je ne sais si c'est clair comme explication
Merci encore
 

djam28

XLDnaute Occasionnel
Bonjour à tous, bonjour Sylvanu,
J'espère que vous allez bien en cette période..
J'aurais une requête concernant le fichier ci-joint, pour rappel, Sylvanu (que je remercie au passage) a m'a créé une macro qui affiche des alertes sur un userform (fichier ci-joint ) selon des conditions. Je voudrais, si c'est possible, exporter l'affichage de l'urserform sur la feuil 2, en cliquant sur un bouton, une 2 ème commande qui permet d'afficher le résultat en PDF et enfin une commande qui permet d'envoyer le résultat en mail (outlook par exemple)
Je vous en serai reconnaisant
Très bonne journée
 

Pièces jointes

  • COORDINATION TEST.xlsm
    157.7 KB · Affichages: 6

Discussions similaires

Statistiques des forums

Discussions
312 185
Messages
2 086 020
Membres
103 097
dernier inscrit
Benduch