Interruption d'une procédure

Le
Flac
Bonjour à tous,
Excel 2000.
Durant l'exécution d'une procédure, je dois interrompre celle-ci pour
demander à l'utilisateur de cocher des checkbox pour effectuer une action
donnée.
Y aurait-il une façon de faire pour reprendre l'exécution
après que l'utilisateur aura fait ses choix.

Merci

Flac
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses Page 1 / 2
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
LE TROLL
Le #16543211
Bonjour,

C'est la conception qui n'es pas bonne, si tu dois arrêter une procédure
pour demander un choix normal, puis la reprendre ensuite... Il faudrait
faire en sorte que l'utilisateur ait terminé les choix, théoriquement, la
procédure va ensuite, ne s'interrompre, que s'il y a faute...

Mais... oui, c'est facile de revenir dedans, avec une variable drapeau,
le principe (entre autres), est de sauvegarder ce qui a déjà été fait, et
d'indiquer à une variable, hors de cette procédure fatidique, une valeur, et
selon la valeur, la procédure commencera au début, ou ira plus loin en
reprenant des éléments de mémoire. Sur ce principe, il faut mieux utiliser
des variable globales à la feuille, ça évite d'avoir à les sauvegarder, on
ira dont selon le cas par des goto, des gosub, ou des call (selon
conception), à des endroits différents selon l'état de cette variable
drapeau, exemple:


'---entête---
dim oukejesuis as byte
dim sauve1, sauve2

sub Load()
' entrée dans le programme
oukejesuis = 0
end sub

sub ma_procedure()
dim saisie1, saisie2, saisie3
if oukejesuis = 1 then goto reprise
var1 = x + ...
var2 = y * ...
goto suite
' Ah oublié saisir un checkBox ici...
sauve1 = saisie1
sauve2 = saisie2
checkBox1.setfocus
exit sub
reprise:
oukejesuis = 0
saisie1= sauve1
saisie2 = sauve 2
suite:
' reprise des calculs...
end sub

sub checkBox1()
' après validation de l'objet oublié
oukejesuis = 1
call ma_procedure
en sub
---end-------


------------------------
' Mais le plus logique serait de faire deux procédures:

'variable globales
dim saisie1, saisie2, aisie3

sub procedure_avant_check()
saisie1 = ...
saisie2 = ...
checkBox1.setfocus
end sub

sub checkBox1_click()
call procedure_apres_check
end sub

sub procedure_apres_check()
if checkBox.valu = ??? then saisie3 = ???
saisie1 = saisie1 + saisie 3
saisie2 = saisi3 - saisie 1
...
end sub



--
Romans, logiciels, email, site personnel
http://irolog.free.fr/joe.htm
------------------------------------------------------------------------------------
"Flac" Oc4FjkZ$
| Bonjour à tous,
| Excel 2000.
| Durant l'exécution d'une procédure, je dois interrompre celle-ci pour
| demander à l'utilisateur de cocher des checkbox pour effectuer une action
| donnée.
| Y aurait-il une façon de faire pour reprendre l'exécution
| après que l'utilisateur aura fait ses choix.
|
| Merci
|
| Flac
|
|
Misange
Le #16543461
Bonjour

Une solution par d'autres : Tu peux mettre tes checkbox dans une
userform que tu appelles depuis ta macro principale. Ton userform
contiendra un bouton de validation des choix de l'utilisateur

sub moncode()

'début du code
userform.show 'ceci appelle dans l'ordre l'initialisation du userform
'puis le formulaire
'fin du code
end sub

private sub userform_initialize()
'la tu peux par exemple indiquer à l'utilisateur la valeur d'autres
'paramètres calculés par la macro principale pour qu'il puisse faire son
'choix
end sub()

private sub boutonvalider_click()
'la tu récupères les checkbox cochées par l'utilisateur et tu les
affectes à une variable publique que tu réutilises dans ta macro principale.

end sub

Misange migrateuse
XlWiki : Participez à un travail collaboratif sur excel !
http://xlwiki.free.fr/wiki
http://www.excelabo.net

Flac a écrit :
Bonjour à tous,
Excel 2000.
Durant l'exécution d'une procédure, je dois interrompre celle-ci pour
demander à l'utilisateur de cocher des checkbox pour effectuer une action
donnée.
Y aurait-il une façon de faire pour reprendre l'exécution
après que l'utilisateur aura fait ses choix.

Merci

Flac




LSteph
Le #16543611
Bonjour,

c'est un peu vague mais par exemple

''''
Sub mamacro()
'
'début du code
'
userform1.show
'affichage du userform contenant
'checkbox ou optionbuttons, listbox avec ou sans case cocher...
'tout ce que tu veux mais finissant par validation d'un commandbutton
'qui appelle lasuite
'
end sub

sub lasuite()
'suite du code
end sub
''''

'lSteph

Flac a écrit :
Bonjour à tous,
Excel 2000.
Durant l'exécution d'une procédure, je dois interrompre celle-ci pour
demander à l'utilisateur de cocher des checkbox pour effectuer une action
donnée.
Y aurait-il une façon de faire pour reprendre l'exécution
après que l'utilisateur aura fait ses choix.

Merci

Flac




LE TROLL
Le #16546271
Bonjour,

C'est étrange, ce matin j'ai répondu, et je ne vois pas ma réponse ???

Je disais que c'est bizarre, si tu as oublié un objet rajouté, il vaut
mieux le mettre dans la procédure de validation (command1), que de sortir de
cette procédure pour aller à l'objet, et d'y entrer à nouveau, mais bon,
voici un exemple (entres autres), on peut le faire avec des variables
locales évidemment, mais il faudra des variables locales pour sauvegarder
les locales, alors ça revient au même...

'TESTE DANS VB, ça marche !
'objets = 4 : checkBox1, 2 et 3 + bouton command1
Option Explicit ' global
Dim c1 As Long
Dim c2 As Long
Dim c3 As Long
Dim reprise As Boolean

Sub Form_Load(): reprise = False: End Sub

Sub Command1_Click() ' validation de la saisie
If reprise = True Then GoTo suite
c1 = Check1.Value
c2 = Check2.Value
reprise = True
MsgBox "saisir le check n° 3 ", vbExclamation
Check3.SetFocus
Exit Sub
suite:
reprise = False
c3 = Check3.Value
MsgBox c1 & vbLf & c2 & vbLf & c3
End Sub
--
Romans, logiciels, email, site personnel
http://irolog.free.fr/joe.htm
------------------------------------------------------------------------------------
"Flac" Oc4FjkZ$
| Bonjour à tous,
| Excel 2000.
| Durant l'exécution d'une procédure, je dois interrompre celle-ci pour
| demander à l'utilisateur de cocher des checkbox pour effectuer une action
| donnée.
| Y aurait-il une façon de faire pour reprendre l'exécution
| après que l'utilisateur aura fait ses choix.
|
| Merci
|
| Flac
|
|
Philippe.R
Le #16547251
Bonjour,
Si tu parles de ta réponse de 7h37 ce matin, je la vois bien ; mais c'e sont
les mystères des serveurs...
--
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
"LE TROLL" news:OIdfsoh$
Bonjour,

C'est étrange, ce matin j'ai répondu, et je ne vois pas ma réponse ???

Je disais que c'est bizarre, si tu as oublié un objet rajouté, il vaut
mieux le mettre dans la procédure de validation (command1), que de sortir
de
cette procédure pour aller à l'objet, et d'y entrer à nouveau, mais bon,
voici un exemple (entres autres), on peut le faire avec des variables
locales évidemment, mais il faudra des variables locales pour sauvegarder
les locales, alors ça revient au même...

'TESTE DANS VB, ça marche !
'objets = 4 : checkBox1, 2 et 3 + bouton command1
Option Explicit ' global
Dim c1 As Long
Dim c2 As Long
Dim c3 As Long
Dim reprise As Boolean

Sub Form_Load(): reprise = False: End Sub

Sub Command1_Click() ' validation de la saisie
If reprise = True Then GoTo suite
c1 = Check1.Value
c2 = Check2.Value
reprise = True
MsgBox "saisir le check n° 3 ", vbExclamation
Check3.SetFocus
Exit Sub
suite:
reprise = False
c3 = Check3.Value
MsgBox c1 & vbLf & c2 & vbLf & c3
End Sub
--
Romans, logiciels, email, site personnel
http://irolog.free.fr/joe.htm
------------------------------------------------------------------------------------
"Flac" Oc4FjkZ$
| Bonjour à tous,
| Excel 2000.
| Durant l'exécution d'une procédure, je dois interrompre celle-ci pour
| demander à l'utilisateur de cocher des checkbox pour effectuer une
action
| donnée.
| Y aurait-il une façon de faire pour reprendre l'exécution
| après que l'utilisateur aura fait ses choix.
|
| Merci
|
| Flac
|
|




LE TROLL
Le #16548911
Salut :o)

Ouais, moi je ne vois bsolument rien ???

--
Merci beaucoup, au revoir et à bientôt :o)
------
Romans, logiciels, email, site personnel
http://irolog.free.fr/joe.htm
------------------------------------------------------------------------------------
"Philippe.R" OlQw92i$
| Bonjour,
| Si tu parles de ta réponse de 7h37 ce matin, je la vois bien ; mais c'e
sont
| les mystères des serveurs...
| --
| 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
| "LE TROLL" | news:OIdfsoh$
| > Bonjour,
| >
| > C'est étrange, ce matin j'ai répondu, et je ne vois pas ma réponse
???
| >
| > Je disais que c'est bizarre, si tu as oublié un objet rajouté, il
vaut
| > mieux le mettre dans la procédure de validation (command1), que de
sortir
| > de
| > cette procédure pour aller à l'objet, et d'y entrer à nouveau, mais bon,
| > voici un exemple (entres autres), on peut le faire avec des variables
| > locales évidemment, mais il faudra des variables locales pour
sauvegarder
| > les locales, alors ça revient au même...
| >
| > 'TESTE DANS VB, ça marche !
| > 'objets = 4 : checkBox1, 2 et 3 + bouton command1
| > Option Explicit ' global
| > Dim c1 As Long
| > Dim c2 As Long
| > Dim c3 As Long
| > Dim reprise As Boolean
| >
| > Sub Form_Load(): reprise = False: End Sub
| >
| > Sub Command1_Click() ' validation de la saisie
| > If reprise = True Then GoTo suite
| > c1 = Check1.Value
| > c2 = Check2.Value
| > reprise = True
| > MsgBox "saisir le check n° 3 ", vbExclamation
| > Check3.SetFocus
| > Exit Sub
| > suite:
| > reprise = False
| > c3 = Check3.Value
| > MsgBox c1 & vbLf & c2 & vbLf & c3
| > End Sub
| > --
| > Romans, logiciels, email, site personnel
| > http://irolog.free.fr/joe.htm
|
> ------------------------------------------------------------------------------------
| > "Flac" | > Oc4FjkZ$
| > | Bonjour à tous,
| > | Excel 2000.
| > | Durant l'exécution d'une procédure, je dois interrompre celle-ci pour
| > | demander à l'utilisateur de cocher des checkbox pour effectuer une
| > action
| > | donnée.
| > | Y aurait-il une façon de faire pour reprendre l'exécution
| > | après que l'utilisateur aura fait ses choix.
| > |
| > | Merci
| > |
| > | Flac
| > |
| > |
| >
| >
|
Papyjac
Le #16549721
Bonjour Le troll, Philippe,

Je constate depuis 1 à 2 semaines, le même problème avec mes réponses à
d'autres messages : soit je vois, soit je ne vois pas mes réponses, soit je
ne vois même plus la question....
C'est comme le "RE:" qui apparait maintenant en message isolé, le plus
souvent, pas toujours.

Bref, on s'en sort, mais je refuse de croire aux mystères des serveurs, mais
j'accepte l'idée d'une maladresse de part ou d'autre.


--
P a p y j a c


"LE TROLL" news:ujK44Ml$
Salut :o)

Ouais, moi je ne vois bsolument rien ???

--
Merci beaucoup, au revoir et à bientôt :o)
------
Romans, logiciels, email, site personnel
http://irolog.free.fr/joe.htm
------------------------------------------------------------------------------------
"Philippe.R" OlQw92i$
| Bonjour,
| Si tu parles de ta réponse de 7h37 ce matin, je la vois bien ; mais c'e
sont
| les mystères des serveurs...
| --
| 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
| "LE TROLL" | news:OIdfsoh$
| > Bonjour,
| >
| > C'est étrange, ce matin j'ai répondu, et je ne vois pas ma réponse
???
| >
| > Je disais que c'est bizarre, si tu as oublié un objet rajouté, il
vaut
| > mieux le mettre dans la procédure de validation (command1), que de
sortir
| > de
| > cette procédure pour aller à l'objet, et d'y entrer à nouveau, mais
bon,
| > voici un exemple (entres autres), on peut le faire avec des variables
| > locales évidemment, mais il faudra des variables locales pour
sauvegarder
| > les locales, alors ça revient au même...
| >
| > 'TESTE DANS VB, ça marche !
| > 'objets = 4 : checkBox1, 2 et 3 + bouton command1
| > Option Explicit ' global
| > Dim c1 As Long
| > Dim c2 As Long
| > Dim c3 As Long
| > Dim reprise As Boolean
| >
| > Sub Form_Load(): reprise = False: End Sub
| >
| > Sub Command1_Click() ' validation de la saisie
| > If reprise = True Then GoTo suite
| > c1 = Check1.Value
| > c2 = Check2.Value
| > reprise = True
| > MsgBox "saisir le check n° 3 ", vbExclamation
| > Check3.SetFocus
| > Exit Sub
| > suite:
| > reprise = False
| > c3 = Check3.Value
| > MsgBox c1 & vbLf & c2 & vbLf & c3
| > End Sub
| > --
| > Romans, logiciels, email, site personnel
| > http://irolog.free.fr/joe.htm
|
> ------------------------------------------------------------------------------------
| > "Flac" | > Oc4FjkZ$
| > | Bonjour à tous,
| > | Excel 2000.
| > | Durant l'exécution d'une procédure, je dois interrompre celle-ci
pour
| > | demander à l'utilisateur de cocher des checkbox pour effectuer une
| > action
| > | donnée.
| > | Y aurait-il une façon de faire pour reprendre l'exécution
| > | après que l'utilisateur aura fait ses choix.
| > |
| > | Merci
| > |
| > | Flac
| > |
| > |
| >
| >
|





Misange
Le #16549821
bonjour

tu as tort de croire à un mystère des serveurs.
Le serveur de free qui réplique le serveur de news de microsoft par
exemple est bien connu pour supprimer des messages considérés comme du
spam. Il parait que certains messages envoyés par news.microsoft.com
transitent par news.alt.net filtré par le serveur de Free.
En ce moment, c'est vrai que sur le serveur de microsoft, il traine un
peu longtemps des spams. Une bonne partie de ceux-ci sont en effet
enlevés à la main et je pense que celui qui fait le ménage doit être en
vacances (mais je ne fais que penser je n'ai pas vérifié !)
Donc pour avoir le forum le plus fiable, lisez le en vous connectant via
un lecteur de news (mesnews, thunderbird, outlook express...) sur
news.microsoft.com. C'est gratuit, il n'y a pas besoin d'être enregistré
ou d'accéder à ce serveur en étant connecté via un fournisseur d'accès
internet particulier.

Une autre source bien connue de disparition des messages c'est outlook
express qui par moment débloque. Je n'utilise plus depuis longtemps mais
de mémoire quand ça se produit, il faut détruire le compte de news dans
OE, redémarrer le PC et recréer le compte. Autant se mettre sur
thunderbird !

Misange migrateuse
XlWiki : Participez à un travail collaboratif sur excel !
http://xlwiki.free.fr/wiki
http://www.excelabo.net

Papyjac a écrit :
Bonjour Le troll, Philippe,

Je constate depuis 1 à 2 semaines, le même problème avec mes réponses à
d'autres messages : soit je vois, soit je ne vois pas mes réponses, soit
je ne vois même plus la question....
C'est comme le "RE:" qui apparait maintenant en message isolé, le plus
souvent, pas toujours.

Bref, on s'en sort, mais je refuse de croire aux mystères des serveurs,
mais j'accepte l'idée d'une maladresse de part ou d'autre.




LSteph
Le #16550971
Bonjour,

;-)
sans doute pour cela que l'autre jour (sais plus quel fil) j'ai lu un
truc du genre,
" ...en attendant je vais essayer la proposition de PapyJac"

mais (pourtant via google ou tb) , je ne voyais aucune proposition de
PapyJac.

Il y a des "mystères" connus (comme évoqué par Misange) mais amha il y
en a quand même parfois d'autres.

@+

--
lSteph


Papyjac a écrit :
Bonjour Le troll, Philippe,

Je constate depuis 1 à 2 semaines, le même problème avec mes réponses à
d'autres messages : soit je vois, soit je ne vois pas mes réponses, soit
je ne vois même plus la question....
C'est comme le "RE:" qui apparait maintenant en message isolé, le plus
souvent, pas toujours.

Bref, on s'en sort, mais je refuse de croire aux mystères des serveurs,
mais j'accepte l'idée d'une maladresse de part ou d'autre.




Papyjac
Le #16556321
Bonjour LSteph et Misange,

Qu'est qu'il a dit ou pas le papy ?

Mais c'est après vous avoir parlé, je ne vois plus rien. Donc adieu pour ce
soir


--
P a p y j a c

"LSteph" news:umh2yTr$
Bonjour,

;-)
sans doute pour cela que l'autre jour (sais plus quel fil) j'ai lu un truc
du genre,
" ...en attendant je vais essayer la proposition de PapyJac"

mais (pourtant via google ou tb) , je ne voyais aucune proposition de
PapyJac.

Il y a des "mystères" connus (comme évoqué par Misange) mais amha il y en
a quand même parfois d'autres.

@+

--
lSteph


Papyjac a écrit :
Bonjour Le troll, Philippe,

Je constate depuis 1 à 2 semaines, le même problème avec mes réponses à
d'autres messages : soit je vois, soit je ne vois pas mes réponses, soit
je ne vois même plus la question....
C'est comme le "RE:" qui apparait maintenant en message isolé, le plus
souvent, pas toujours.

Bref, on s'en sort, mais je refuse de croire aux mystères des serveurs,
mais j'accepte l'idée d'une maladresse de part ou d'autre.







Publicité
Poster une réponse
Anonyme