Création d'une alerte automatique dans Excel

Résolu/Fermé
safach Messages postés 252 Date d'inscription jeudi 27 août 2015 Statut Membre Dernière intervention 13 mars 2021 - Modifié par safach le 9/10/2015 à 17:15
safach Messages postés 252 Date d'inscription jeudi 27 août 2015 Statut Membre Dernière intervention 13 mars 2021 - 10 oct. 2015 à 15:19
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
A voir également:

8 réponses

cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 728
10 oct. 2015 à 13:40
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
safach Messages postés 252 Date d'inscription jeudi 27 août 2015 Statut Membre Dernière intervention 13 mars 2021 2
10 oct. 2015 à 14:51
c'est bon ça marche nickel
mille merci
0
hcp7kuz Messages postés 243 Date d'inscription mardi 18 août 2015 Statut Membre Dernière intervention 23 mars 2019 23
9 oct. 2015 à 17:28
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
safach Messages postés 252 Date d'inscription jeudi 27 août 2015 Statut Membre Dernière intervention 13 mars 2021 2
Modifié par safach le 9/10/2015 à 17:32
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
hcp7kuz Messages postés 243 Date d'inscription mardi 18 août 2015 Statut Membre Dernière intervention 23 mars 2019 23
9 oct. 2015 à 17:35
Surement, cela doit être possible, mais avec le tableau et tout, ça va être autrement plus compliquer
0
safach Messages postés 252 Date d'inscription jeudi 27 août 2015 Statut Membre Dernière intervention 13 mars 2021 2
9 oct. 2015 à 17:43
oui j'espère trouver quelq'un qui maitrise bien le VBA
0
jc80 Messages postés 4149 Date d'inscription mardi 5 février 2013 Statut Membre Dernière intervention 25 février 2019 1 422
9 oct. 2015 à 17:43
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
safach Messages postés 252 Date d'inscription jeudi 27 août 2015 Statut Membre Dernière intervention 13 mars 2021 2
Modifié par safach le 9/10/2015 à 17:46
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
Gyrus Messages postés 3334 Date d'inscription samedi 20 juillet 2013 Statut Membre Dernière intervention 9 décembre 2016 523
9 oct. 2015 à 17:47
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
safach Messages postés 252 Date d'inscription jeudi 27 août 2015 Statut Membre Dernière intervention 13 mars 2021 2
Modifié par safach le 9/10/2015 à 18:04
bonjour, oui mais si les données sont multiples l'alerte par message sera plus pratique
merci pour la proposition
0
via55 Messages postés 14402 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 18 avril 2024 2 702 > safach Messages postés 252 Date d'inscription jeudi 27 août 2015 Statut Membre Dernière intervention 13 mars 2021
9 oct. 2015 à 18:42
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
safach Messages postés 252 Date d'inscription jeudi 27 août 2015 Statut Membre Dernière intervention 13 mars 2021 2
9 oct. 2015 à 18:49
Bonjour,
vraiment génial c'est exactement ce que je cherchais depuis des jours
mille merci pour le code ça fonctionne parfaitement
0
safach Messages postés 252 Date d'inscription jeudi 27 août 2015 Statut Membre Dernière intervention 13 mars 2021 2 > via55 Messages postés 14402 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 18 avril 2024
9 oct. 2015 à 21:16
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
via55 Messages postés 14402 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 18 avril 2024 2 702 > safach Messages postés 252 Date d'inscription jeudi 27 août 2015 Statut Membre Dernière intervention 13 mars 2021
9 oct. 2015 à 22:58
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

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 728
10 oct. 2015 à 09:08
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
safach Messages postés 252 Date d'inscription jeudi 27 août 2015 Statut Membre Dernière intervention 13 mars 2021 2
10 oct. 2015 à 11:56
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
cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 728
10 oct. 2015 à 12:03
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
safach Messages postés 252 Date d'inscription jeudi 27 août 2015 Statut Membre Dernière intervention 13 mars 2021 2
10 oct. 2015 à 12:07
re
désolée encore pas de résultats ou est le problème ? aucune cellule n'a été colorée
0
cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 728
10 oct. 2015 à 12:12
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
cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 728
10 oct. 2015 à 12:23
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
safach Messages postés 252 Date d'inscription jeudi 27 août 2015 Statut Membre Dernière intervention 13 mars 2021 2 > cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024
10 oct. 2015 à 12:23
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
cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 728 > safach Messages postés 252 Date d'inscription jeudi 27 août 2015 Statut Membre Dernière intervention 13 mars 2021
10 oct. 2015 à 12:30
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
Mike-31 Messages postés 18310 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 29 mars 2024 5 073
10 oct. 2015 à 15:05
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
safach Messages postés 252 Date d'inscription jeudi 27 août 2015 Statut Membre Dernière intervention 13 mars 2021 2
10 oct. 2015 à 15:19
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
Gyrus Messages postés 3334 Date d'inscription samedi 20 juillet 2013 Statut Membre Dernière intervention 9 décembre 2016 523
9 oct. 2015 à 18:49
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
safach Messages postés 252 Date d'inscription jeudi 27 août 2015 Statut Membre Dernière intervention 13 mars 2021 2
9 oct. 2015 à 18:56
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