Création d'une alerte automatique dans Excel

Résolu
safach Messages postés 293 Statut Membre -  
safach Messages postés 293 Statut Membre -
Bonjour,
j'ai besoin d'aide pour faire une alerte automatique dans Excel (alertes pour affûtage outil, changement outil et nettoyage de la pince de la machine)
par exemple l'alerte m'avertirai par un petit message : "le 10/12/2015 l'opérateur doit affûter l'outil n°1 et nettoyer la pince de la machine 2"
veuillez trouver sur le lien suivant le fichier model
https://www.cjoint.com/c/EJjppD7MqLT
le colonne I donne la durée qu'on doit ajouter à la date de fin (colonne F) pour trouver la date du message (date du prochain affûtage/nettoyage de la pince)
sachant que le nettoyage c'est pour les pinces
l'affûtage et le changement sont pour les outil
si quelqu'un peut m'aider j'en serai très reconnaissante
bien cordialement

8 réponses

  1. cs_Le Pivert Messages postés 8437 Statut Contributeur 730
     
    Pour mettre ce code dans d'autres feuilles , sélectionner la feuille dans l'éditeur en haut à gauche:

    Option Explicit
    Dim madate As Date
    Private Sub Worksheet_Change(ByVal Target As Range)
    Sheets("Feuil1").Select 'a adapter au nom de la feuille
    madate = Format(Date, "d/mm/yyyy")
    For_Each_Next_Plage
    End Sub
    Sub For_Each_Next_Plage()
    Dim FL1 As Worksheet, Cell As Range, Plage As Range
    Dim Var1
     Dim LaDate As Date
     LaDate = CDate(madate)
        Set FL1 = Worksheets("Feuil1") 'a adapter au nom de la feuille
        With FL1
            'Détermination de la plage de cellules à lire
            'Peut s'écrire en utilisant l'objet range de la plage
            'For Each Cell In .Range("B3:E15")
     
            'ou en utilisant l'objet Plage (range) de la plage
            Set Plage = .Range("J3:L110") ' a adapter
            For Each Cell In Plage
     
                'Valeur de la cellule lue
                Var1 = Cell.Value
                If Var1 = CLng(LaDate) Then
    Cell.Interior.ColorIndex = 3  'rouge
    Else
    Cell.Interior.ColorIndex = xlColorIndexAutomatic 'blanc
    End If
            Next
        End With
        Set FL1 = Nothing
        Set Plage = Nothing
    End Sub
    
    
    


    J'ai corrigé la couleur des cellules
    1
    1. safach Messages postés 293 Statut Membre 2
       
      c'est bon ça marche nickel
      mille merci
      0
  2. hcp7kuz Messages postés 238 Date d'inscription   Statut Membre Dernière intervention   23
     
    Salut,
    Je ne pense pas que ce tu veuille faire est possible. Il te faudrait plutôt créer un logiciels étant tout le temps allumer en arrière plan et qui afficherai les alertes ... Avec excel, c'est surement impossible.

    hcp7kuz
    0
    1. safach Messages postés 293 Statut Membre 2
       
      salut, merci pour la réponse
      je pense que c'est possible de recevoir des alertes dans excel à l'ouverture du fichier nn? peut être à l'aide d'une code VBA
      0
    2. hcp7kuz Messages postés 238 Date d'inscription   Statut Membre Dernière intervention   23
       
      Surement, cela doit être possible, mais avec le tableau et tout, ça va être autrement plus compliquer
      0
    3. safach Messages postés 293 Statut Membre 2
       
      oui j'espère trouver quelq'un qui maitrise bien le VBA
      0
  3. jc80 Messages postés 5063 Date d'inscription   Statut Membre Dernière intervention   1 443
     
    Bonjour

    C'est surement possible de faire quelque chose.
    Il faudrait déjà savoir :au bout de combien de temps d'utilisation >>
    l'outil doit être affuté
    le nettoyage doit être fait
    Crdlt
    0
    1. safach Messages postés 293 Statut Membre 2
       
      bonjour,
      j'espère bien trouver une solution merci pour ta réactivité
      les cellules excel seront remplies par des valeurs que tu demande au fur et à mesure
      tu peux mettre des valeurs aléatoires juste comme exemples
      0
  4. Gyrus Messages postés 3360 Statut Membre 526
     
    Bonjour,

    Une solution simple consiste à utiliser des mises en forme conditionnelles pour mettre en évidence les opérations qui arrivent à échéance.
    Par exemple :
    - couleur de remplissage orange si l'échéance est dans 1 jour.
    - couleur de remplissage rouge si l'échéance est dépassée.
    Il faut pour cela définir les délais accordés pour chaque opération.

    A+
    0
    1. safach Messages postés 293 Statut Membre 2
       
      bonjour, oui mais si les données sont multiples l'alerte par message sera plus pratique
      merci pour la proposition
      0
    2. via55 Messages postés 14393 Date d'inscription   Statut Membre Dernière intervention   2 759 > safach Messages postés 293 Statut Membre
       
      Bonjour

      On ne le répétera jamais assez, éviter les cellules fusionnées qui sont la plaie pour les macros et les formules! donc en réattribuant à chaque outil ou pince le nom de la machine en colonne A (tu peux en masquer certains avec écriture blanche comme j'ai fait pour machine 1) une macro qui affiche un message d'alerte à l'ouverture du classeur
      (ALT + F11 pour voir le code commenté)
      La macro peut aussi être lancée n'importe quand depuis l'onglet Developpeur Macros
      Elle est prévue pour un maximum de 20 machines (à adapter si nécessaire)

      http://www.cjoint.com/c/EJjqKj70EU3

      Cdlmnt
      Via
      0
    3. safach Messages postés 293 Statut Membre 2
       
      Bonjour,
      vraiment génial c'est exactement ce que je cherchais depuis des jours
      mille merci pour le code ça fonctionne parfaitement
      0
    4. safach Messages postés 293 Statut Membre 2 > via55 Messages postés 14393 Date d'inscription   Statut Membre Dernière intervention  
       
      re bonjour via55
      stp est ce que tu peux modifier le code pour tenir compte du changement des outils ( j'ai ajouter un colonne de changement d'outil dans le fichier suivant
      https://www.cjoint.com/c/EJjtp48fojm
      merci d'avance
      0
    5. via55 Messages postés 14393 Date d'inscription   Statut Membre Dernière intervention   2 759 > safach Messages postés 293 Statut Membre
       
      re

      Comment est déterminé le changement d'outil ? Il ne s'agit pas de date ici. Une croix est elle mise par l'utilisateur dans la colonne changement ? Ou autre ?
      D'ailleurs je ne comprends pas l'utilité de tes 3 colonne affutage changement et nettoyage, c'est pour indiquer ce qui doit être fait ou e qui a été fait ? Comment remplis-tu ces colonnes ?

      En attente de précisions
      0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. cs_Le Pivert Messages postés 8437 Statut Contributeur 730
     
    Bonjour,

    Voici un code a mettre dans ThisWorkbook:

    Option Explicit
    Dim madate As Date
    Private Sub Workbook_Open()
    Sheets("suivi").Select
    madate = Format(Date, "d/mm/yyyy")
    For_X_to_Next_Colonne
    End Sub
    Sub For_X_to_Next_Colonne()
    Dim FL1 As Worksheet, Cell As Range, NoCol As Integer
    Dim NoLig As Long, DerLig As Long, Var As Variant
    Dim LaDate As Date
     LaDate = CDate(madate)
        'Instance de la feuille qui permet d'utiliser FL1 partout dans
        'le code à la place du nom de la feuille
        Set FL1 = Worksheets("suivi")
     
        'Détermine la dernière ligne renseignée de la feuille de calculs
        '(Voir explication sur l'utilisation de Split en bas de cette discussion)
        DerLig = Split(FL1.UsedRange.Address, "$")(4)
     
        'Fixe le N° de la colonne à lire
        NoCol = 6
     
        'Utilisation du N° de ligne dans une boucle For ... Next
        For NoLig = 3 To DerLig
            Var = FL1.Cells(NoLig, NoCol)
            If Var = CLng(LaDate) Then
    FL1.Cells(NoLig, NoCol).Font.ColorIndex = 3
    Else
    FL1.Cells(NoLig, NoCol).Font.ColorIndex = 1
    End If
    
            'Pour tester : Affiche les variables dans la fenêtre Exécution de VBA
            'Debug.Print Var
        Next
        Set FL1 = Nothing
    End Sub
    
    
    


    A adapter
    0
    1. safach Messages postés 293 Statut Membre 2
       
      bonjour, merci pour ta réponse. au début j'ai pas obtenu de résultats
      car j'ai pas fait attention à " à adapter" mais en fait j'ai pas de grandes connaissances en VBA peux-tu m'aider?
      https://www.cjoint.com/c/EJkj0eL2kxT
      0
  7. cs_Le Pivert Messages postés 8437 Statut Contributeur 730
     
    Pour le nouveau classeur, c'est une plage de cellule

    Voici le code a mettre dans ThisWorkbook:

    Option Explicit
    Dim madate As Date
    Private Sub Workbook_Open()
    Sheets("suivi").Select
    madate = Format(Date, "d/mm/yyyy")
    For_Each_Next_Plage
    End Sub
    Sub For_Each_Next_Plage()
    Dim FL1 As Worksheet, Cell As Range, Plage As Range
    Dim Var1
     Dim LaDate As Date
     LaDate = CDate(madate)
        Set FL1 = Worksheets("suivi")
        With FL1
            'Détermination de la plage de cellules à lire
            'Peut s'écrire en utilisant l'objet range de la plage
            'For Each Cell In .Range("B3:E15")
     
            'ou en utilisant l'objet Plage (range) de la plage
            Set Plage = .Range("J3:L110") ' a adapter
            For Each Cell In Plage
     
                'Valeur de la cellule lue
                Var1 = Cell.Value
                If Var1 = CLng(LaDate) Then
    Cell.Font.ColorIndex = 3 'rouge
    Else
    Cell.Font.ColorIndex = 1 'noir
    End If
            Next
        End With
        Set FL1 = Nothing
        Set Plage = Nothing
    End Sub
    
    
    


    Les dates du jour se mettent en rouge, quand elles sont dépassées, elles se remettent en noir
    0
    1. safach Messages postés 293 Statut Membre 2
       
      re
      désolée encore pas de résultats ou est le problème ? aucune cellule n'a été colorée
      0
    2. cs_Le Pivert Messages postés 8437 Statut Contributeur 730
       
      Les dates du jour se mettent en rouge, quand elles sont dépassées, elles se remettent en noir

      Il n'y a aucune date du jour!!!!!!!!!!!!

      Fait un essai en mettant la date du jour
      0
    3. cs_Le Pivert Messages postés 8437 Statut Contributeur 730
       
      Si tu veux mettre toutes les dates a venir en rouge, il faut changer cette partie:

          'Valeur de la cellule lue
      Var1 = Cell.Value
      If Var1 <= CLng(LaDate) Then ' cette ligne date du jour et a venir
      Cell.Font.ColorIndex = 3 'rouge
      Else
      Cell.Font.ColorIndex = 1 'noir
      End If
      0
    4. safach Messages postés 293 Statut Membre 2 > cs_Le Pivert Messages postés 8437 Statut Contributeur
       
      oh merci j'ai pensé qu'il s'agit d'une coloration des cellules pas de caractère
      ça marche nickel merci bien et désolée pour mon inattention répétitive
      0
    5. cs_Le Pivert Messages postés 8437 Statut Contributeur 730 > safach Messages postés 293 Statut Membre
       
      La coloration de la cellule t'oblige à changer la couleur du texte, ceci est plus fonctionnel.

      Si cela te convient tu mets en résolu

      @+ Le Pivert
      0
  8. Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 147
     
    Bonjour,

    Pour afficher un message le jour d'une intervention, il faut passer par du VBA si tu as quelques notions, si non on peut faire simple et utiliser la mise en forme conditionnelle qui colorisera la cellule le jour de l'intervention programmée
    0
    1. safach Messages postés 293 Statut Membre 2
       
      oui effectivement Mike-31 encore à la recherche de la solution VBA la plus commode. merci a vous tous les membres ici sont très serviables et compréhensifs
      0
  9. Gyrus Messages postés 3360 Statut Membre 526
     
    Salut à tous,

    Ce serait bien sympa que safach prenne la peine d'indiquer qu'elle a obtenu une réponse satisfaisante sur un autre forum.

    A+
    -1
    1. safach Messages postés 293 Statut Membre 2
       
      la réponse que j'ai obtenu n'est pas satisfaisante. en effet à l'ouverture du fichier je peux recevoir une "infinité" de messages!
      merci à toi.
      0