A voir également:
- Excel - Liste avec condition message
- Liste déroulante excel - Guide
- Message - Guide
- Excel cellule couleur si condition texte - Guide
- Excel liste déroulante en cascade - Guide
- Recuperer message whatsapp supprimé - Guide
5 réponses
Ivan-hoe
Messages postés
433
Date d'inscription
dimanche 17 février 2008
Statut
Membre
Dernière intervention
17 octobre 2008
309
21 mai 2008 à 09:23
21 mai 2008 à 09:23
Bonjour Issan,
Pour la liste déroulante, je suppose que tu as utilisé la Validation.
Pour le message d'alerte, tu peux utiliser le code suivant (à coller dans la fenêtre de code de la feuille concernée : clic droit sur l'onglet / Visualiser le code).
Pour la liste déroulante, je suppose que tu as utilisé la Validation.
Pour le message d'alerte, tu peux utiliser le code suivant (à coller dans la fenêtre de code de la feuille concernée : clic droit sur l'onglet / Visualiser le code).
Private Sub Worksheet_Change(ByVal Target As Range) With Target If .Address(False, False) = "A1" Then If UCase(.Value) = "OUI" Then MsgBox "Mettre à jour l'heure de début et l'heure de fin" End If End If End With End Sub
Ivan-hoe
Messages postés
433
Date d'inscription
dimanche 17 février 2008
Statut
Membre
Dernière intervention
17 octobre 2008
309
21 mai 2008 à 22:22
21 mai 2008 à 22:22
Tu as bien compris, sauf que l'évènement BeforeSave existe pour le classeur, mais pas pour une feuille.
Mais tu pourras utiliser (quand tu quittes la feuille)
ou alors (avant d'enregistrer le classeur, dans ThisWorkbook)
A suivre...
Mais tu pourras utiliser (quand tu quittes la feuille)
Private Sub Worksheet_Deactivate()
ou alors (avant d'enregistrer le classeur, dans ThisWorkbook)
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
A suivre...
Salut ivan-hoe,
J'ai mis le code Worksheet_change, mais quand je veux le faire tourner, excel me propose de donner un nom a la macro si je donne un nom il me l ouvre dans une feuille de module.
le code je l'ai bien entendu inscit sur la feuille de code correpondant a ma feuille active.
je suis perdue......
J'ai mis le code Worksheet_change, mais quand je veux le faire tourner, excel me propose de donner un nom a la macro si je donne un nom il me l ouvre dans une feuille de module.
le code je l'ai bien entendu inscit sur la feuille de code correpondant a ma feuille active.
je suis perdue......
Ivan-hoe
Messages postés
433
Date d'inscription
dimanche 17 février 2008
Statut
Membre
Dernière intervention
17 octobre 2008
309
22 mai 2008 à 10:41
22 mai 2008 à 10:41
Salut,
je ne saisis pas bien le problème. Comment lances-tu ta procédure ? en provoquant l'évènement, c'est-à-dire en mettant "oui" ou "non" dans A1 ?
A suivre...
je ne saisis pas bien le problème. Comment lances-tu ta procédure ? en provoquant l'évènement, c'est-à-dire en mettant "oui" ou "non" dans A1 ?
A suivre...
re-bonjour Ivan-hoe,
c'est bon j'ai reussi a faire ce que je voulais.
J'ai juste utiliser Private Sub Workbook_beforesave et dedans j'y ai mis une condition en utilisant IF.
le seul truc c'est que je ne me suis pas servie de Private Sub Worksheet_Change, je pense que je n'ai pas bien compris le fonctionnement de cette routine.
Mais bon, comme j'arrive a mes fins ca va.
en tout cas je te remercie pour ton aide, et peut etre a bientot, si j'ai un nouveau probleme
ciao
Issan
c'est bon j'ai reussi a faire ce que je voulais.
J'ai juste utiliser Private Sub Workbook_beforesave et dedans j'y ai mis une condition en utilisant IF.
le seul truc c'est que je ne me suis pas servie de Private Sub Worksheet_Change, je pense que je n'ai pas bien compris le fonctionnement de cette routine.
Mais bon, comme j'arrive a mes fins ca va.
en tout cas je te remercie pour ton aide, et peut etre a bientot, si j'ai un nouveau probleme
ciao
Issan
Encore un probleme en fait !!!!!
parce que lorsque je veux sauvegarder le fichier et que les conditions ne sont pas remplies, il m'envoie la boite de dialogue comme prevu,
mais comme j'utilise la routine Private Sub Workbook_beforesave , cela ne m'empeche pas de le sauvegarder dans l'etat non desire mais m' informe seulement qu'il faut remplir les champs demande.
Donc, ce qui m'interresse est que
- d'une part l'utilisateur soit informer qu'il faut qu'il remplisse les cellules demandees,
- d'autre part, que si il ne le fait pas, le fichier ne peut etre sauvegarder et ferme en l'etat.
j'espere avoir ete assez precise sur le probleme qui me peocupe.
j'ai une hypothese sur la solution : rentrer mes conditions dans la routine Private Sub Workbook_beforeclose ?
De plus, sachant que mon fichier contient plusieurs pages, est-il possible que lorsque le message indiquant de remplir les cellules, la feuille concernee s'ouvre. je suppose qu'il suffit de rqjouter dans le code : avant MsgBox le fait d'ouvrir cette feuille ?
Desolee, ce probleme ne semble pas avoir de fin..... lol
parce que lorsque je veux sauvegarder le fichier et que les conditions ne sont pas remplies, il m'envoie la boite de dialogue comme prevu,
mais comme j'utilise la routine Private Sub Workbook_beforesave , cela ne m'empeche pas de le sauvegarder dans l'etat non desire mais m' informe seulement qu'il faut remplir les champs demande.
Donc, ce qui m'interresse est que
- d'une part l'utilisateur soit informer qu'il faut qu'il remplisse les cellules demandees,
- d'autre part, que si il ne le fait pas, le fichier ne peut etre sauvegarder et ferme en l'etat.
j'espere avoir ete assez precise sur le probleme qui me peocupe.
j'ai une hypothese sur la solution : rentrer mes conditions dans la routine Private Sub Workbook_beforeclose ?
De plus, sachant que mon fichier contient plusieurs pages, est-il possible que lorsque le message indiquant de remplir les cellules, la feuille concernee s'ouvre. je suppose qu'il suffit de rqjouter dans le code : avant MsgBox le fait d'ouvrir cette feuille ?
Desolee, ce probleme ne semble pas avoir de fin..... lol
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Ivan-hoe
Messages postés
433
Date d'inscription
dimanche 17 février 2008
Statut
Membre
Dernière intervention
17 octobre 2008
309
23 mai 2008 à 08:07
23 mai 2008 à 08:07
Issan,
Regarde bien dans l'aide : Workbook.BeforeSave admet un argument Cancel. Il faut que tu lui affectes la valeur True pour que le classeur ne soit pas enregistré.
Pour activer la feuille de saisie, effectivement, il suffirait de rajouter une instruction Sheets("AAA").Activate
A suivre...
Regarde bien dans l'aide : Workbook.BeforeSave admet un argument Cancel. Il faut que tu lui affectes la valeur True pour que le classeur ne soit pas enregistré.
Pour activer la feuille de saisie, effectivement, il suffirait de rajouter une instruction Sheets("AAA").Activate
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean) If la condition n'est pas remplie then Sheets("feuille_de_saisie").Activate msgbox "vous ne pouvez pas enregistrer patati patata" Cancel = True End if End sub
A suivre...
21 mai 2008 à 19:56
aujourd'hui je suis parvenue à surmonter en partie ce probleme en utilisant la fonction VLOOKUP, mais je prefere autant qu'une boite de dialogue s'ouvre, cela est plus propre.
mon superieur veut en plus qu'à cela j'ajoute l'impossibilité de sauvegarder le fichier si le contenu du message n'est pas respecté.
si j'ai bien compris, j'ai juste à insérer ce que tu m'as indiqué dans Private Sub Worksheet_beforesave ?
merci encore Ivan-hoe !