Créer des alertes sur une cellule et plus ...

Résolu/Fermé
Bizouille33 Messages postés 17 Date d'inscription mardi 11 mars 2014 Statut Membre Dernière intervention 22 mai 2015 - 18 mars 2014 à 12:06
Mike-31 Messages postés 18345 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 8 novembre 2024 - 20 mars 2014 à 16:29
Bonjour a tous,

Actuellement je travaille sur un tableau que je partage sur un espace de partage avec plusieurs personnes.

Ce tableau doit être consulté assez régulièrement par les autres personnes mais il contiendra beaucoup de données.

Je souhaiterai :

* Créer une alerte sur une cellule en particulier
C'est-à-dire : j'inscris dans cette cellule (par exemple : M34) une information importante pour le salarié Dupont.
Lorsque Dupont ouvrira le tableau depuis son ordi j'aimerai qu'un message d'alerte s'affiche lui indiquant qu'il a un message important et s'il clique sur le message ça le renvoit directement à M34.

Je ne sais pas si ce procédés est réalisable mais je suis ouverte à toutes propositions qui me rapprochera du résultat souhaité.

* Faire clignoté une cellule.
J'ai essayé se système avec VBA mais je n'ai toujours pas réussi, je serai intéressé si quelqu'un pouvait m'expliquer en détail le procédés pour faire clignoter une cellule (par exemple M34)

Bonne journée à tous,
Bizouille 33
A voir également:

14 réponses

Zoul67 Messages postés 1959 Date d'inscription lundi 3 mai 2010 Statut Membre Dernière intervention 30 janvier 2023 149
18 mars 2014 à 12:39
je suis ouverte à toutes propositions

C'est dangereux, ce que tu écris là...

Comme tu personnalises les messages suivant le destinataire, Excel doit pouvoir distinguer qui ouvre le fichier, donc, en plus de l'activation des macros, il faut que tes collègues aient un nom d'utilisateur spécifique.

Le principal écueil est celui du UserName. Vois ceci puis adapte (ajout de If...) :
Private Sub Workbook_Open()
    MsgBox Environ("UserName")
End Sub


A+
0
Mike-31 Messages postés 18345 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 8 novembre 2024 5 104
Modifié par Mike-31 le 18/03/2014 à 12:50
Bonjour Bizouille,

le clignotement ne pose aucun problème, par contre si j'ai bien compris tu veux faire clignoter une cellule en fonction de la personne qui ouvre le fichier, cela se complique quelque peu.
pour que cela fonctionne comme cela je vois à l'ouverture du fichier une inputbox dans laquelle le responsable de l'ouverture du fichier saisi non pas son nom qui peut être facilement usurpé, mais un code qui lui est propre et là à partir de sa saisie sélectionner ou faire clignoter ce que l'on veut

A+
Mike-31

Une période d'échec est un moment rêvé pour semer les graines du savoir.
0
Bizouille33 Messages postés 17 Date d'inscription mardi 11 mars 2014 Statut Membre Dernière intervention 22 mai 2015
18 mars 2014 à 14:10
Non je ne cherche pas forcément à faire clignoter une cellule en fonction de la personne qui ouvre le fichier, mes connaissances seront un peu justes pour me lancer dans ces démarches.

J'aimerai qu'à l'ouverture du fichier les cellules contenant un message important soit repérable de suite
0
Mike-31 Messages postés 18345 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 8 novembre 2024 5 104
18 mars 2014 à 15:23
Re,

Alors pour faire simple clic droit sur l'onglet de ta feuille/visualiser le code cela ouvrira le visual basic
sur la gauche tu verras l'explorateur de projet, recherche la Thiswokbook, double clic ou clic droit et Code
dans la feuille blanche qui s"ouvre colle ce code

Private Sub Workbook_Open()
[M34].Select
End Sub


revient sur la feuille Excel soit en cliquant sur l'icône de la barre des taches ou en haut à gauche sur l'icône Excel de la barre d'outils
enregistre le fichier et ferme le, à l'ouverture la cellule M34 se sélectionnera
0
Bizouille33 Messages postés 17 Date d'inscription mardi 11 mars 2014 Statut Membre Dernière intervention 22 mai 2015
18 mars 2014 à 16:53
Merci Mike31

Mais je souhaiterai vraiment que ça clignote comme tu expliquais dans une discussion à partir de laquelle j'ai pris contact avec toi
0
Zoul67 Messages postés 1959 Date d'inscription lundi 3 mai 2010 Statut Membre Dernière intervention 30 janvier 2023 149
18 mars 2014 à 17:03
0

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

Posez votre question
Mike-31 Messages postés 18345 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 8 novembre 2024 5 104
18 mars 2014 à 17:33
Re,

regarde ton avant dernier post
"Non je ne cherche pas forcément à faire clignoter une cellule en fonction de la personne qui ouvre le fichier, mes connaissances seront un peu justes pour me lancer dans ces démarches"

dans la soirée je t'écrit le code pour la cellule M34 si elle contient un message
0
Zoul67 Messages postés 1959 Date d'inscription lundi 3 mai 2010 Statut Membre Dernière intervention 30 janvier 2023 149
18 mars 2014 à 17:53
Salut Mike,

Si j'ai bien compris c'est le "en fonction de la personne" qui est facultatif.
Donc si message important il y a, clignotement pour tout le monde (j'aurais plutôt vu un MsgBox, mais bon...).

A+
0
Mike-31 Messages postés 18345 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 8 novembre 2024 5 104
18 mars 2014 à 22:37
Re,

commence par créer un module dans le visual basic (Insertion/Module)
dans le module colle ce code


Dim BlinkTime As Date

Public Sub Cellule_Clignote()
If [M34].Interior.ColorIndex = xlNone Then
If [M34].Value <> "" Then
[M34].Interior.ColorIndex = 3
Else
[M34].Interior.ColorIndex = 0
End If
Else
[M34].Interior.ColorIndex = 0
End If
BlinkTime = Now() + TimeValue("00:00:01") 'le temps du clignotement
Application.OnTime BlinkTime, "Cellule_Clignote"
End Sub
Sub ArretClignotement()
On Error Resume Next
Application.OnTime BlinkTime, "Cellule_Clignote", , False
[M34].Interior.ColorIndex = 0
End Sub


toujours dans le visual ouvre la Thiswokbook et colle ces deux codes (1 pour lancer le clignotement à l'ouverture du fichier et 1 pour stopper le clignotement à la fermeture


Private Sub Workbook_Open()
Cellule_Clignote
End Sub

Private Sub Workbook_BeforeClose(Cancel As Boolean)
ArretClignotement
End Sub


si tu dois travailler sur le fichier il serait judicieux de compléter ces codes pour stopper le clignotement lorsqu'on quittera la feuille et le relancer lorsqu'on y reviendra mais on verra plus tard
0
Bizouille33 Messages postés 17 Date d'inscription mardi 11 mars 2014 Statut Membre Dernière intervention 22 mai 2015
19 mars 2014 à 09:22
Super Mike ça marche merci !

Autres choses, sur VBA j'avais déjà insérer un code, dans thisworkbook, pour qu'il y est un message d'alerte à l'ouverture du fichier :

Private Sub Workbook_Open()
MsgBox "Message important pour ... "
End Sub

Seulement lorsque je rajoute tes codes sur thisworkbook, cela m'affiche :

"Erreur de compilation, nom ambigu détecté : Workbook_Open"

Cela signifie que je ne peux pas faire fonctionner l'alerte et le clignotement en même temps ou l'un après l'autre ?

Une dernière question par curiosité : tous ces codes tu les écris toi même ou tu les trouves quelque part ?
Car j'aimerai apprendre à bien utiliser VBA et pour l'instant je ne fais que copier des codes, ça m'aide c'est sur et je t'en remercie grandement ! Mais j'aimerai être capable de me débrouiller seule la prochaine fois.
0
Zoul67 Messages postés 1959 Date d'inscription lundi 3 mai 2010 Statut Membre Dernière intervention 30 janvier 2023 149
19 mars 2014 à 09:34
Bonjour,

L'erreur, c'est parce qu'il y a deux procédures qui ont le même nom.
Si tu veux faire les deux actions, il ne faut plus qu'une procédure Workbook_Open, tu commences par le MsgBox puis tu mets le code de Mike.

A+
0
Mike-31 Messages postés 18345 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 8 novembre 2024 5 104
19 mars 2014 à 09:33
Re,

Il ne peut y avoir qu'un code sous la rubrique
Private Sub Workbook_Open()

donc il faut compiler. remplace l'ancien code sous cette rubrique par

Private Sub Workbook_Open()
MsgBox "Message important pour ... "
Cellule_Clignote
End Sub

mais tu peux afficher et déclencher la procédure que s'il y a un message en M34

exemple

Private Sub Workbook_Open()
if [M34]<>"" then
MsgBox "Message important pour ... "
[M34].select
Cellule_Clignote
end if
End Sub


0
Bizouille33 Messages postés 17 Date d'inscription mardi 11 mars 2014 Statut Membre Dernière intervention 22 mai 2015
19 mars 2014 à 10:32
Vraiment merci Mike c'est exactement ce que je voulais !

Juste une chose, tu n'as pas répondu à ma question dans mon dernier commentaire sur : comment tu trouvais / créais les codes ?
0
Bizouille33 Messages postés 17 Date d'inscription mardi 11 mars 2014 Statut Membre Dernière intervention 22 mai 2015
19 mars 2014 à 10:36
Dernière question: je peux faire clignoter plusieurs cellules en même temps ?
0
Mike-31 Messages postés 18345 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 8 novembre 2024 5 104
19 mars 2014 à 10:55
Re,

Comment je trouvais les codes, déjà les avoir étudié pour les comprendre et les écrire et les adapter, ensuite être curieux et aimer se torturer les neurones pour se mesurer à cette merveilleuse application Excel.

pour appliquer le code à plusieurs cellules, pas de problème mais un code VBA est très précis et contrairement à une formule il ne s'adapte pas automatiquement, il faut l'écrire alors dans ton cas il faut nous donner tous les paramètres, sur quelles cellules doit s'adapter le code et sur quel critère
0
Bizouille33 Messages postés 17 Date d'inscription mardi 11 mars 2014 Statut Membre Dernière intervention 22 mai 2015
19 mars 2014 à 11:10
C'est la 1ere fois que j'utilise VBA et ses codes mais je commence à en saisir le fonctionnement et aussi à l'apprécier ! Faudra que je trouve comment apprendre les codes par contre.

Alors pour le clignotement de plusieurs cellules :

J'inscris un message en D4 et aussi en D16, ce sont 2 messages importants et j'aimerais qu'elles clignotent toutes les deux.
Puis lors de l'utilisation du tableau dans le temps je serai amener à inscrire 3,4 messages importants dans la colonne D; mais je suppose que si tu m'expliques comment faire clignoter 2 cellules en même temps je pourrais l'adapter pour faire clignoter 3 ou 4 cellules en même temps non ?
0
Mike-31 Messages postés 18345 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 8 novembre 2024 5 104
19 mars 2014 à 11:21
Re,

Il faut faire une boucle, je te prépare le code
0
Bizouille33 Messages postés 17 Date d'inscription mardi 11 mars 2014 Statut Membre Dernière intervention 22 mai 2015
19 mars 2014 à 12:57
La cellule qui clignote, clignote en rouge.

Lorsque je serai faire clignoter plusieurs cellules en même temps, est-ce possible que chaque cellule clignote d'une couleur et non pas toute en rouge?

Encore merci Mike pour ton aide et pour le temps que tu m'accordes.
0
Mike-31 Messages postés 18345 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 8 novembre 2024 5 104
Modifié par Mike-31 le 19/03/2014 à 19:11
Re,

pour faire simple pour tes débuts en VBA, dans le module tu as ces codes

Dim BlinkTime As Date

Public Sub Cellule_Clignote()
If [M34].Interior.ColorIndex = xlNone Then
If [M34].Value <> "" Then
[M34].Interior.ColorIndex = 3
Else
[M34].Interior.ColorIndex = 0
End If
Else
[M34].Interior.ColorIndex = 0
End If
BlinkTime = Now() + TimeValue("00:00:01") 'le temps du clignotement
Application.OnTime BlinkTime, "Cellule_Clignote"
End Sub
Sub ArretClignotement()
On Error Resume Next
Application.OnTime BlinkTime, "Cellule_Clignote", , False
[M34].Interior.ColorIndex = 0
End Sub


remplace les par ce code qui est en fait est le même avec un rajout que j'ai inséré en gras pour mieux comprendre et gérer la cellule D16, il faudra faire la même chose pour d'autre cellule

Dim BlinkTime As Date

Public Sub Cellule_Clignote()
If [D4].Interior.ColorIndex = xlNone Then
If [D4].Value <> "" Then
[D4].Interior.ColorIndex = 3
Else
[D4].Interior.ColorIndex = 0
End If
Else
[D4].Interior.ColorIndex = 0
End If

If [D16].Interior.ColorIndex = xlNone Then
If [D16].Value <> "" Then
[D16].Interior.ColorIndex = 3
Else
[D16].Interior.ColorIndex = 0
End If
Else
[D16].Interior.ColorIndex = 0
End If


BlinkTime = Now() + TimeValue("00:00:01") 'le temps du clignotement
Application.OnTime BlinkTime, "Cellule_Clignote"
End Sub

Sub ArretClignotement()
On Error Resume Next
Application.OnTime BlinkTime, "Cellule_Clignote", , False
Range([D4], [D16]).Interior.ColorIndex = 0
End Sub

Maintenant si tu veux voir des codes plus techniques et plus condensés pas de problème, mais je te conseille de ne pas aller trop vite

A+
Mike-31

Une période d'échec est un moment rêvé pour semer les graines du savoir.
0
Mike-31 Messages postés 18345 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 8 novembre 2024 5 104
19 mars 2014 à 21:54
Ah flute j'ai mis la même couleur dans les alertes, quelle couleur veux-tu pour D4, D16 etc
0
Bizouille33 Messages postés 17 Date d'inscription mardi 11 mars 2014 Statut Membre Dernière intervention 22 mai 2015
20 mars 2014 à 09:12
Merci Mike et pas grave pour le couleur !

Si possible :
- rouge en D4
- Bleu en D5
- vert en D6
- Gris en D7
- Jaune en D8

Comment se lit la couleur dans les codes ?
0
Mike-31 Messages postés 18345 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 8 novembre 2024 5 104
20 mars 2014 à 09:53
Re,

Mais tes cellules sont contiguës, dans ce cas il est possible d'écouter le code à part que tu envisage de faire clignoter des cellules non contiguës dans d'autres colonnes ou lignes espacées
0
Bizouille33 Messages postés 17 Date d'inscription mardi 11 mars 2014 Statut Membre Dernière intervention 22 mai 2015
20 mars 2014 à 14:11
Les cellules citées sont un exemple, à la longue elles ne seront pas forcément contiguës mais toujours dans la colonne D.

Avoir différente couleurs seraient un plus, si tu n'as pas le temps ou l'envie tu peux laisser tomber, tu m'as déjà beaucoup aidé !
0
Mike-31 Messages postés 18345 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 8 novembre 2024 5 104
20 mars 2014 à 14:51
Re,

colonne A feuil 1 tu as les couleurs et l'index couleur mais il y en a d'autres

teste le fichier exemple

https://www.cjoint.com/c/DCuoZR28vqA
0
Bizouille33 Messages postés 17 Date d'inscription mardi 11 mars 2014 Statut Membre Dernière intervention 22 mai 2015
20 mars 2014 à 15:33
Merci Mike t'as répondu à toutes mes questions, et je suis super contente du tableau ! Merci de ton aide !

Je vais me mettre sérieusement à étudier les codes à l'avenir.

Encore merci !
0
Mike-31 Messages postés 18345 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 8 novembre 2024 5 104
20 mars 2014 à 16:29
Re,

Ah dans la Thiswokbook j'ai oublié de replacer la msgbox

Private Sub Workbook_Open()
MsgBox "Message important pour ... "
Call Cellule_Clignote
[D4].Select
End Sub

je passe le statut de la discussion en résolu, ce qui n'empêchera pas éventuellement d'y revenir
0