Excel alerte

Bonsoir,
Bonjour ,
est ce qu'il ya une possibilté de faire une alerte sur un fichier excel ,pour me permettre de changé le permis de mes chauffeurs a chaque fin de validité.
Salutations

37 réponses

Résumé de la discussion

Une macro VBA, déclenchée à l'ouverture du classeur, permet d'afficher des alertes pour les échéances de permis et pour les visites techniques. Elle calcule les jours restants en faisant la différence entre la date actuelle et les dates d'échéance, et déclenche une alerte lorsque ce délai est entre 0 et 7 jours. Le balayage parcourt les lignes à partir d'une ligne de départ (par exemple 7) jusqu'à la dernière ligne remplie sur les feuilles concernées et peut ignorer les valeurs 'N/A' ou les cas 'Exempté'. Des propositions complémentaires prévoient l'utilisation de formules en colonnes M et N pour préparer les échéances et l'extension du code à plusieurs feuilles ou à un démarrage automatique.

Bobot (l’IA à votre service)
  1. Bonsoir,

    Bien sûr

    Tu veux quoi exactement ?
    Un rappel combien de temps avant l'échéance ?

    Rappel par simple relevé des noms des chauffeurs concernés dans une cellule en haut du tableau par exemple (ce qui peut se faire par formules)

    ou rappel par un message dans une fenetre (demande de passer par du codage en VBA) ?

    Comment est constitué ton tableau ? en quelles colonnes sont les noms et les dates ?

    Si tu peux mettre un exemple allégé et anonymé sur cjoint.com et indiquer ensuite le lien fourni ce serait mieux

    Cdlmnt
    1. merci,
      Je voudrai que l'alerte ce fait à une semaine de la date d'achéance et même ci le fichier en question est fermé.
      Voir ci dessus un exemple du fichier .je reste à votre disposition pour plus d'information

      https://www.cjoint.com/?0CbiUdcKufQ
  2. VIA55;
    Petit problème sur mon nouveau tableau j'ai inserer la macro ça marche à moitié puis-la couleur de la case change mais l'alerte ne s'affiche pas comme dans le tabeau que tu m'a fais.
    Pouvez-vous me donner les demarches à faire pour bien appliquer cette Macro.
    Salutations
    1. Bonsoir,

      La macro est à mettre dans Worbook
      ALT F11 cliquer sur This worbook et coller la macro a droite

      Dans la 2eme ligne (que j'ai rajoutée) remplacer Feuil1 par le nom de la feuille où se trouve la liste des chaufffeurs dans ton classeur

      La macro est basée sur la liste de nom en colonne A avec le 1er nom en A2 comme dans le fichier que tu m'avais envoyé
      Si ton nouveau fichier est différent il faut modifier la référence A2 dans la macro 3eme ligne

      Fermer l'editeur de macro
      Enregistrer le classeur
      Le fermer puis le réouvrir

      Me tenir au courant

      Cdlmnt

      Private Sub Workbook_Open()

      mes = "ECHEANCES PERMIS" & Chr(10) & Chr(10)
      Sheets("Feuil1").Select
      der = Range("A2").End(xlDown).Row
      For n = 2 To der
      ech = Cells(n, 5).Value
      x = Date - ech
      If x <= 0 And x > (0 - 8) Then mes = mes & Cells(n, 1) & " " & Cells(n, 2) & " : " & x & " jour(s)" & Chr(10)
      Next
      MsgBox (mes)

      End Sub
  3. Via55,
    je n'est vraiment pas reussi a la faire je t'est donc joint le fichier en question.
    je voudrai que le numero du vehicule et le d'affectation de la personne sort a chaque alerte .
    http://cjoint.com/?3CcxQtdVJtF
  4. VIA55,
    c'est bon merci beaucoup pour votre service j'aimerai rester en contact avec toi comment faire pour te joindre en cas de besoin
    1. Bonsoir cutuitoj

      Tu peux me joindre ici, en message privé si tu veux

      A+

      Cdlmnt
  5. Bonjour VIA55,
    est que en utilisant le même tabeau on peut faire un racourci sur le bureau pour me permettre si je clic sur le racourci ça me donne le rapport automatquement.
    Salutation
    1. VIA55,
      la valeur de mon der =11
      donc la formule s'arrete la la colonne 11 j'aimerai que la formule part jusqu'a la fin de la colonne d'excel.
      Salutations
      1. Bonjour

        1° tu dis la valeur de der est 11 ??
        Dans la macro que je t'ai envoyé :
        der = Range("D7").End(xlDown).Row

        c'est à dire que der est le N° de la dernière ligne de la colonne D à partir de al cellule D7 où se trouve le 1er nom
        donc der s'adapte à la longueur de ta liste mais il ne faut pas de ligne vide entre 2 lignes avec des données
        si dans la colonne D des cellules restent vide alors il faut faire calculer der sur une autre colonne par exemple sur la colonne C des n° d'immatriculation ; il suffit de remplacer le D7 par C7 dans la ligne de la macro ci dessus

        2° La macro fonctionne à l'ouverture de ton classeur donc si tu veux un raccourci sur le bureau tu peux mettre un raccourci de ton classeur par clic droit sur ton classeur dans le dossier dans lequel il se trouve (Mes documents par exemple) et Envoyer vers Bureau

        Cdlmnt
    2. VIA55,
      la valeur de mon der s'affiche comme suite
      der=Range("D7").End(xldown).Row=11 donc je veus que le Row aille jusqu'a la dernière de la colonne D7
      1. Qu'appelle tu la derniere de la colonne D7 ?
        Il y a d'autres données après D11?
        Renvoie moi ton fichier complet (anonymé si nécessaire) j'y verrai plus cair
    3. VIA55,
      ok veuillez trouver le fichier en attache
      http://cjoint.com/?3CeolMIv6ox
      Salutation
      1. Via55,
        je suis désolé ci-joint le tableau
        http://cjoint.com/?3Cep2A4eDaw
        1. Voila le fichier revu
          J'ai rajouté une colonne N qui calcule le nombre de jours restant et la macro se base sur cette colonne pour afficher les nfos correspondantes
          J'ai également mis une MFC qui colore les lignes concernées en jaune

          https://www.cjoint.com/?3CetfI1mmhc

          Salutations
        2. @via55

          Bonjour Via55,

          Pouvez vous m’assister à récupérer un fichier que vous m’avez aider à effectuer depuis .

          j’ai changé de Pc 

          Cordialement 

      2. VIA55,
        ça marche à marveille vous êtes magnique Merci beaucoup.
        j'aimerai savoir comment securisé et la macro et ma MFC
        salutations
        1. Pour proteger la feuille
          Onglet Revision puis Proteger la feuille et mettre un mot de passe (mais à ne pas oublier car pas moyen de le recuperer si perdu) on ne peut plus modifier de cellules dans la feuille (donc si tu veux changer des données il faut d'abord deproteger la feuille et la reproteger ensuite

          Pour proteger le code
          Alt F11 pour ouvrir l'éditeur
          Onglet Outils puis Propriétés de VBA puis Protection et Verouiller et mettre là aussi un mot de passe (ça peut être le même) et là encore surtout ne pas perdre le mot de passe

          Bonne suite
      3. VIA55,
        je veus ajouter une autre colonne N avec les valeurs de la colonne G7 en utilisant le même tableau dont va utiliser la macro pour faire resortir la date d'écheance des visites techniques sur le tableau en plus de ce qui a été fait pour les permis.
        Je suis à votre dispositions pour plus d'informations.
        Salutations
        1. Il ne faut pas toucher à la colonne N qui contient la formule pour le calcul des echeances de permis

          Il faut dans la colonne M mettre la formule suivante en M7
          =SI(G7="Exempté";"";SI((G7-AUJOURDHUI())>=0;G7-AUJOURDHUI();""))
          puis etirer jusqu'en bas

          Puis ouvrir editeur et this worbook et ajouter les 2 parties en gras dans le code existant

          Private Sub Workbook_Open()

          On Error Resume Next

          mes = "ECHEANCES PERMIS" & Chr(10) & Chr(10)
          Sheets("Feuil1").Select
          der = Range("D7").End(xlDown).Row
          For n = 7 To der
          x = Cells(n, 14).Value
          If x >= 0 And x < 8 Then mes = mes & Cells(n, 3) & " - " & Cells(n, 4) & " : " & x & " jour(s)" & Chr(10)
          Next
          MsgBox (mes)

          mes = "ECHEANCES VISITES TECHNIQUES" & Chr(10) & Chr(10)
          der = Range("D7").End(xlDown).Row
          For n = 7 To der
          x = Cells(n, 15).Value
          If x >= 0 And x < 8 Then mes = mes & Cells(n, 3) & " - " & Cells(n, 4) & " : " & x & " jour(s)" & Chr(10)
          Next
          MsgBox (mes)

          End Sub

          Salutations
      4. 5/5 ça marche très bien merci beaucoup,
        Via55 vous allez m'apprendre à faire des macros?
        Salutations
        Lamine
        1. VIA55,
          maintenant j'ai fais un raccourci du fichier sur mon ECRAN ,es ce possible de faire en sorte que le fichier s'ouvre automatiquement à chaque une semaine.
          Salutations
          1. bonjour

            A ma connaissance pas de possibilité, dsl

            Cdlmnt
        2. VIA55,
          j'ai un fichier EXCEL dont je veus appliquer l'alerte comme la foi precedente,mais dans ce cas j'ai mis dans la feuille2 la manière dont l'alerte doit se presenter.
          En plus je veus qu'il est possibilité que cette alerte soit envoyer comme mon rapport à mon superieur.le fichier même se trouve dans la feuille1.
          j'ai mis un exemple du fichier ci dessous.
          je suis à votre disposition plus d'information.
          Salutations

          http://cjoint.com/?3Cns3PO9kBB
          1. Code à mettre dans la fenetre de This Workbook de l'editeur
            Private Sub Workbook_Open()

            On Error Resume Next

            mes = "MANQUE DATE ATA SITE pour :" & Chr(10) & Chr(10)
            Sheets("Feuil1").Select
            der = Range("L9").End(xlDown).Row 'recherche derniere cellule remplie à partir de L9
            For n = 10 To der 'boucle depuis la ligne 10 jusqu'à la ligne der
            If Cells(n, 13).Value = "N/A" Then ' si N/A en colonne 13 et si date d'aujourdhui est supérieure à la date en colonne 12 -3 ajoute le N° et le nom correspondant dans la variable mes du message à afficher
            If Date >= Cells(n, 12).Value - 3 Then mes = mes & "N°" & Cells(n, 1) & " - " & Cells(n, 3) & Chr(10)
            End If
            Next
            MsgBox (mes)

            D'autre part si tu transmets le fichier complet avec les macros l'alerte s'affichera comme pour toi à l'ouverture du classeur

            J'ai mis les explications pour chaque ligne de macro pour que tu puisses comprendre te adapter au besoin ou savoir en créer une autre

            Bonne suite
        3. VIA55,
          j'essai d'appliquer la formule mais ça marque toujours "erreur de compilation End Sub attendu"
          et met private sub workbook_open() en jaune.
          Pouvez m'assister ou mettre un exemple dans le fichier.
          1. Dsl

            c'est normal la dernière ligne de la macro a sauté quand j'ai recopié !!

            Il faut justement écrire End Sub à la ligne sous Msgbox (mes)

            Une macro commence toujours par Sub et le nom de la macro et se termine toujurs par End Sub
        4. VIA55,
          ça marche mais l'alerte ne s'affiche pas comme le tableau de la feuille2
          1. ah je n'avais compris !!
            tu veux que toutes les infos montrees dans le tableau 2 s'affichent dans l'alerte ?
            soit FOURNISSUER ORDER AWB SOUS DOUANE LIVRER DATE DE LIVRAISON TEMPS DE TRANSIT/JOUR ?
        5. via55,
          exactement
          1. OK mais qu'est ce qui declenche l'alerte ?
            la macro que je t'avais indiquée se declenche lorsqu'il n'y pas de date en Feuil 1 dans ATA SITE
            est ce bien ça ?
            dans ce cas les infos LIVRER et DATE LIVRAISON n'ont pas de raison dêtre puisque n'existent que si il ya une date en ATA SITE
        6. via55,
          dans ce cas la macro ce declenche en tenant en compte lacolonne D.
          je vous expliquer.
          j'ennregistre dans le tableau si j'ai l'elemment de la colonne D qui est le numéro de la LTA et les autres donnés en suivent.
          donc je voudrai que l'element declencheur de l'alerte soit les numeros de la colonne D.
          1. Il y a chaque fois un N° dans la colonne D (dans l'exemple envoyé du moins) donc l'alerte va se declencher pour TOUTES les lignes
            Pour quelles lignes doit il y avoir alerte ?
        • 1
        • 2