Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Comment obliger à repondre deux foix non

5 réponses
Avatar
Bruno RCSC
Bonsoir,

Sous Excel 2002,

Un fichier est consulté par plusieurs personnes.
Je voudrais obliger l'utilisateur à fermer le fichier en 2 étapes.
"Voulez vous enregistrer les modifications apportées à ""
Réponse NON
Puis une nouvelle fois la question.

Comment peut on poser deux fois la question ?

Merci pour votre aide.

BH

5 réponses

Avatar
Philippe.R
Bonsoir,
Supposons un premier message du type

reponse_1= msgbox("Voulez vous enregistrer les modifications apportées à
....",vbyesno,"Question 1")

on peut tester la réponse apportée et adapter l'action à cette réponse

if reponse_1 = vbno then
reponse_2= msgbox("Etes vous vraiment certain ?",vbyesno,"Question2")
'tagadatsointsoin
endif
--
Avec plaisir
http://dj.joss.free.fr/trombine.htm
http://jacxl.free.fr/mpfe/trombino.html
Philippe.R
Pour se connecter au forum :
http://www.excelabo.net/mpfe/connexion.php
News://news.microsoft.com/microsoft.public.fr.excel
"Bruno RCSC" a écrit dans le message de
news:47cb087d$0$887$
Bonsoir,

Sous Excel 2002,

Un fichier est consulté par plusieurs personnes.
Je voudrais obliger l'utilisateur à fermer le fichier en 2 étapes.
"Voulez vous enregistrer les modifications apportées à ""
Réponse NON
Puis une nouvelle fois la question.

Comment peut on poser deux fois la question ?

Merci pour votre aide.

BH




Avatar
LSteph
Bonsoir,

Un fichier est consulté par plusieurs personnes.
pour cela est il en mode partagé?


si tel est le cas oublie les évennements

sinon:
Je voudrais obliger l'utilisateur à fermer le fichier en 2 étapes.
"Voulez vous enregistrer les modifications apportées à ""
pourquoi pas mais..quel évennement beforesave ou beforeclose


Attention ce ne sera pas pareil
ta question ne viserait pas la fermeture mais l'enregistrement
et tout dépend de ce qu'on veut obtenir, à cet égard:
comment considèrer les réponses
non non
oui non
non oui
oui oui
dans quel cas on enregistre et on ferme et/ou on enregistre et/ou il
reste ouvert..§?

--
lSteph


Bonsoir,

Sous Excel 2002,

Un fichier est consulté par plusieurs personnes.
Je voudrais obliger l'utilisateur à fermer le fichier en 2 étapes.
"Voulez vous enregistrer les modifications apportées à ""
Réponse NON
Puis une nouvelle fois la question.

Comment peut on poser deux fois la question ?

Merci pour votre aide.

BH





Avatar
Bruno RCSC
Bonsoir,

Non, le fichier n'est pas partagé, il est sur un serveur et consultable via
un raccourci sur le bureau des personnes.
Une seule personne centralise les changements à effectuer.
J'ai essayé de codifier sur l'idée de Philippe mais pas très doué, mes
boucles emmêlent.
L'évènement est beforeclose et les réponses sont non+non ou oui+oui.
J'ai essayé le puzzle suivant:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim rep1
Dim rep2
Dim rep3
rep1 = MsgBox("Voulez vous enregistrer vos changements ?", vbYesNo)
If rep1 = vbYes Then
rep2 = MsgBox("ETES VOUS SUR DE VOULOIR ENREGISTRER VOS CHANGEMENTS ?",
vbYesNo)
If rep2 = vbYes Then
ActiveWorkbook.Close
End If
Else
rep3 = MsgBox("ETES VOUS SUR DE FERMER SANS SAUVEGARDER ?", vbYesNo)
If rep3 = vbYes Then
ActiveWorkbook.Close SaveChanges:úlse
End If

Mais la boucle a du mal à se boucler.

Je preneur de toute idée plus simple et plus efficace.

Par avance, merci.

BH
Avatar
LSteph
Bonjour Bruno,

Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim zazatest1 As Integer, zazatest2 As Integer, msg As String
msg = "Voulez-vous enregistrer les modifications apportées à " _
& ThisWorkbook.FullName
zazatest1 = MsgBox(msg, vbYesNo)
zazatest2 = MsgBox(msg, vbYesNo)
If zazatest2 <> zazatest1 Then
Cancel = True
MsgBox "transaction abandonnée, réponses incohérentes"
Else
If zazatest1 = 6 Then
ThisWorkbook.Save
Else
Saved = True
Cancel = False
End If
End If
End Sub

'lSteph
Avatar
Bruno RCSC
Bonsoir,

Merci beaucoup.
C'est exactement ce que je souhaite mettre en place.


BH.
--
Bonjour Bruno,

Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim zazatest1 As Integer, zazatest2 As Integer, msg As String
msg = "Voulez-vous enregistrer les modifications apportées à " _
& ThisWorkbook.FullName
zazatest1 = MsgBox(msg, vbYesNo)
zazatest2 = MsgBox(msg, vbYesNo)
If zazatest2 <> zazatest1 Then
Cancel = True
MsgBox "transaction abandonnée, réponses incohérentes"
Else
If zazatest1 = 6 Then
ThisWorkbook.Save
Else
Saved = True
Cancel = False
End If
End If
End Sub

'lSteph