Création d'une alerte automatique dans Excel [Résolu/Fermé]

Signaler
Messages postés
242
Date d'inscription
jeudi 27 août 2015
Statut
Membre
Dernière intervention
9 avril 2020
-
Messages postés
242
Date d'inscription
jeudi 27 août 2015
Statut
Membre
Dernière intervention
9 avril 2020
-
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

Messages postés
6924
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
21 septembre 2020
549
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
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 60904 internautes nous ont dit merci ce mois-ci

Messages postés
242
Date d'inscription
jeudi 27 août 2015
Statut
Membre
Dernière intervention
9 avril 2020
2
c'est bon ça marche nickel
mille merci
Messages postés
238
Date d'inscription
mardi 18 août 2015
Statut
Membre
Dernière intervention
23 mars 2019
12
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
Messages postés
242
Date d'inscription
jeudi 27 août 2015
Statut
Membre
Dernière intervention
9 avril 2020
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
Messages postés
238
Date d'inscription
mardi 18 août 2015
Statut
Membre
Dernière intervention
23 mars 2019
12
Surement, cela doit être possible, mais avec le tableau et tout, ça va être autrement plus compliquer
Messages postés
242
Date d'inscription
jeudi 27 août 2015
Statut
Membre
Dernière intervention
9 avril 2020
2
oui j'espère trouver quelq'un qui maitrise bien le VBA
Messages postés
4148
Date d'inscription
mardi 5 février 2013
Statut
Membre
Dernière intervention
25 février 2019
1 278
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
Messages postés
242
Date d'inscription
jeudi 27 août 2015
Statut
Membre
Dernière intervention
9 avril 2020
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
Messages postés
3334
Date d'inscription
samedi 20 juillet 2013
Statut
Membre
Dernière intervention
9 décembre 2016
484
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+
Messages postés
242
Date d'inscription
jeudi 27 août 2015
Statut
Membre
Dernière intervention
9 avril 2020
2 >
Messages postés
12690
Date d'inscription
mercredi 16 janvier 2013
Statut
Membre
Dernière intervention
22 septembre 2020

La date sera inscrite dans la cellule du colonne changement et non celle du colonne affutage
Messages postés
12690
Date d'inscription
mercredi 16 janvier 2013
Statut
Membre
Dernière intervention
22 septembre 2020
2 024 >
Messages postés
242
Date d'inscription
jeudi 27 août 2015
Statut
Membre
Dernière intervention
9 avril 2020

Pour l'instant d'après ta première demande les dates de fin sont inscrites en colonne F et on y ajoute la durée en colonne I , c'est ce que prend en compte la macro, il n'est pas question de dates dans les colonnes J K L !!!
Comment sont inscrites les dates dans les colonnes J K L ? manuellement ? dans ce cas pas besoin de la macro pour faire le calcul, il suffit que la macro lise les dates dans les colonnes J K L et affiche celles ci

Reprécises par le détail le processus avec un exemple :
comment chaque cellule est remplie et par qui
que doit prendre en compte la macro
quand l'alerte doit se déclencher
Messages postés
242
Date d'inscription
jeudi 27 août 2015
Statut
Membre
Dernière intervention
9 avril 2020
2 >
Messages postés
12690
Date d'inscription
mercredi 16 janvier 2013
Statut
Membre
Dernière intervention
22 septembre 2020

re bonjour
je remplie les cellues au fur et à mesure
oui je sais q'au début la mecro ne prend pas en compte les colonnes J K L mais en ajoutant la colonne de changement d'outil (qui est une opération a prévenir aussi) j'ai pensé à remplir les colonnes J K L par la somme du colonne date de fin+ le colonne de la durée.
l'alerte doit se déclencher à l'ouverture du fichier pour que je puisse connaitre les opérations à exécuter ce jour là (sil y en a beinsur)
(afficher que les opérations qui datent une semaine avant la date actuelle de l'ouverture du fichier pour éviter la réception d'alertes pour des opérations déjà faites il y a longtemps)
sur le lien suivant tu trouvera un exemple d'illustration
https://www.cjoint.com/c/EJkhSycX7pT
merci d'avance
Messages postés
242
Date d'inscription
jeudi 27 août 2015
Statut
Membre
Dernière intervention
9 avril 2020
2 >
Messages postés
12690
Date d'inscription
mercredi 16 janvier 2013
Statut
Membre
Dernière intervention
22 septembre 2020

bonjour via55
cs_Le Pivert a proposé la coloration des dates. la date du jour en rouge, les dates dépassées en noir et ça a bien marché. tu peux essayer avec ta proposition si tu le veux mais oublie le truc de "une semiane" dans le commentaire précédent car j'ai oublié que ta macro n'affiche que les taches du jour alors ce problème ne se pose pas
sinon tu as déja fourni un bon effort merci bien
Messages postés
242
Date d'inscription
jeudi 27 août 2015
Statut
Membre
Dernière intervention
9 avril 2020
2
Bonjour,
vraiment génial c'est exactement ce que je cherchais depuis des jours
mille merci pour le code ça fonctionne parfaitement
Messages postés
6924
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
21 septembre 2020
549
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
Messages postés
242
Date d'inscription
jeudi 27 août 2015
Statut
Membre
Dernière intervention
9 avril 2020
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
Messages postés
6924
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
21 septembre 2020
549
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
Messages postés
242
Date d'inscription
jeudi 27 août 2015
Statut
Membre
Dernière intervention
9 avril 2020
2 >
Messages postés
6924
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
21 septembre 2020

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
Messages postés
6924
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
21 septembre 2020
549 >
Messages postés
242
Date d'inscription
jeudi 27 août 2015
Statut
Membre
Dernière intervention
9 avril 2020

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
Messages postés
6924
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
21 septembre 2020
549
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
Messages postés
242
Date d'inscription
jeudi 27 août 2015
Statut
Membre
Dernière intervention
9 avril 2020
2 >
Messages postés
6924
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
21 septembre 2020

afficher les actions du jour en rouge est plus pratique car je dois vérifier quotidiennement les taches à exécuter
merci
Messages postés
242
Date d'inscription
jeudi 27 août 2015
Statut
Membre
Dernière intervention
9 avril 2020
2 >
Messages postés
6924
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
21 septembre 2020

stp est-ce-que je peux ajouter des feuilles de la même façon et la macro s'applique à l'ensemble des feuilles ?
Messages postés
17232
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
22 septembre 2020
4 250
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
Messages postés
242
Date d'inscription
jeudi 27 août 2015
Statut
Membre
Dernière intervention
9 avril 2020
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
Messages postés
3334
Date d'inscription
samedi 20 juillet 2013
Statut
Membre
Dernière intervention
9 décembre 2016
484
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+
Messages postés
242
Date d'inscription
jeudi 27 août 2015
Statut
Membre
Dernière intervention
9 avril 2020
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.