Créer message d'alerte boite de dialogue

Résolu/Fermé
Chou - 16 janv. 2017 à 10:12
Chou_UGA Messages postés 4 Date d'inscription lundi 16 janvier 2017 Statut Membre Dernière intervention 16 janvier 2017 - 16 janv. 2017 à 12:39
Bonjour,
J'ai une table Excel où je souhaite faire apparaitre une boite de dialogue à l'ouverture du fichier lorsque les cellules d'une colonne sont pleines, c'est à dire pour rappeler à l'utilisateur qu'il faut relancer les clients.
J'ai renseigné dans les cellules de cette colonne en question si nous devions nous faire la relance, avec les cellule qui affiche soit relance "3 mois passés", soit "10 mois passés" ou soit elle affiche rien et la cellule est vide.
J'aimerai qu'il s'affiche en alerte boite de dialogue lorsque ma colonne contient les cellules "3 mois passés" et "10 mois passés".
J'imagine qu'il faut passer par la programmation et MsgBox, mais je ne maitrise pas pour que l'alerte s'affiche seulement en fonction de certaines cellules pleines ou de la colonne (pleine ou non).

Merci à vous

A voir également:

4 réponses

Mike-31 Messages postés 18335 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 1 septembre 2024 5 095
16 janv. 2017 à 10:19
Bonjour,

Effectivement il faut passer par du VBA et msgbox, mais il faut être plus précis de quelle plage s'agit il et à partir de combien de saisie "3 mois passés" dans cette plage doit il y avoir pour que la msgbox s'active
1
Chou_UGA Messages postés 4 Date d'inscription lundi 16 janvier 2017 Statut Membre Dernière intervention 16 janvier 2017
16 janv. 2017 à 10:45
Merci pour votre réponse. Je suis le même utilisateur, je me suis juste créer un compte.

Il s'agit de la colonne M qui contient automatiquement sur certaines lignes, en fonction d'une formule, des "3 mois passés" et des "10 mois passés". Donc danc cette colonne certaines cellule ssont vides et d'autres sont pleines (soit du 3 mois ou du 10 mois passés).
Je veux qu'une boite de dialogue apparaissent pour chaque "3 mois passés" et "10 mois passés", donc au final plusieurs boites de dialogue apparaitront. Ou sinon faire apparaitre qu'une seule boite de dialogue indiquant le nombre de 3 mois et 10 mois passés

Merci
0
Mike-31 Messages postés 18335 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 1 septembre 2024 5 095
16 janv. 2017 à 11:27
Re,

fais un clic droit sur l'onglet/Visualiser le code/rechercher Thiswokbook et double clic sur Thiswokbook pour l'ouvrir et colle ce code qui prendra en compte automatiquement la plage de M2 à la dernière cellule renseignée de la colonne M onglet nommé "Feuil1"

Private Sub Workbook_Open()
MsgBox Application.WorksheetFunction.CountIf(Sheets("Feuil1").Range("M2:M1" & Sheets("Feuil1").Range("M65536").End(xlUp).Row), "10 mois passés") & " alerte(s) 10 mois passés"
MsgBox Application.WorksheetFunction.CountIf(Sheets("Feuil1").Range("M2:M1" & Sheets("Feuil1").Range("M65536").End(xlUp).Row), "3 mois passés") & " alerte(s) 10 mois passés"
End Sub

1
Chou_UGA Messages postés 4 Date d'inscription lundi 16 janvier 2017 Statut Membre Dernière intervention 16 janvier 2017
16 janv. 2017 à 11:58
Merci beaucoup.

Dans VBA je n'ai pas copié ce code dans Thiswokbook du coup mais dans mon onglet nommé "AIDE A L'EMBAUCHE". J'ai remplacé donc dans le code "Feuil1" par le nom de mon onglet.
Mais après avoir enregistré mon fichier il ne se passe rien à la réouverture de mon document Excel
0
Mike-31 Messages postés 18335 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 1 septembre 2024 5 095
16 janv. 2017 à 12:05
Re,
non il faut que le code soit dans la Thiswokbook

si tu fais un clic droit sur l'onglet de ta feuille ou Alt et F11 cela ouvre le Visual Basic et sur la gauche tu as le module Projet-VBAProject et tu trouveras la Thiswokbook, clic droit dessus et Code

tu peux raccourcir mon code précédent, pour cela il faut nommer la plage colonne M exemple M2:M100 nommé toto, dans ce cas le code devient

Private Sub Workbook_Open()
MsgBox Application.WorksheetFunction.CountIf([toto], "10 mois passés") & " alerte(s) 10 mois passés"
MsgBox Application.WorksheetFunction.CountIf([toto], "3 mois passés") & " alerte(s) 10 mois passés"
End Sub

1
Chou_UGA Messages postés 4 Date d'inscription lundi 16 janvier 2017 Statut Membre Dernière intervention 16 janvier 2017
16 janv. 2017 à 12:26
Magnifique ca marche !
Merci à toi pour ton temps passé

A+
0
Mike-31 Messages postés 18335 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 1 septembre 2024 5 095
16 janv. 2017 à 12:32
Re,

bien sur on pourrait personnaliser les msgbox avec un affichage pour chaque valeur rencontrée mais bonjour le nombre de fermeture des msgbox si tu avais une dizaine de valeurs rencontrées
Je passe le statut de la discussion en résolu
0
Chou_UGA Messages postés 4 Date d'inscription lundi 16 janvier 2017 Statut Membre Dernière intervention 16 janvier 2017
16 janv. 2017 à 12:39
Oui exact, ta façon proposé est du coup plus simple. J'ai naturellement changé le message du commentaire.
Parfait merci
0