OVH Cloud OVH Cloud

appels de procedures réciproques

5 réponses
Avatar
Papou
Bonsoir
Comment faire pour appeler des procédures à tour de rôle afin de modifier
les paramètres de recherches dans l'une des deux ?

Une procédure que j'ai nommé "selectmois" choisit certains paramètres et
dans cette procédure, une instruction "call traite_le mois" exécute des
réalisations.
En fin de "traite_le_mois", je souhaite redéfinir de nouveaux paramètres
dans " selectmois" mais l'instruction "Call selectmois" ne fonctionne
pas. -Erreur de compilation -sub ou function non définie- ou Membre de
Méthode ou de données introuvable.

5 réponses

Avatar
michdenis
Bonjour Papou,

Je n'ai pas vraiment compris comment s'articulent les procédures et les paramètres à passer à chacune d'elle,

voici un exemple simple pour passer un paramètre à une autre procédure :

'------------------
Sub Proc1()

Message "Papou"

End Sub
'------------------

Sub Message(SonNom As String)

MsgBox "Bonjour M. " & SonNom

End Sub
'------------------


Salutations!




"Papou" a écrit dans le message de news:3ffdc5a7$0$29060$
Bonsoir
Comment faire pour appeler des procédures à tour de rôle afin de modifier
les paramètres de recherches dans l'une des deux ?

Une procédure que j'ai nommé "selectmois" choisit certains paramètres et
dans cette procédure, une instruction "call traite_le mois" exécute des
réalisations.
En fin de "traite_le_mois", je souhaite redéfinir de nouveaux paramètres
dans " selectmois" mais l'instruction "Call selectmois" ne fonctionne
pas. -Erreur de compilation -sub ou function non définie- ou Membre de
Méthode ou de données introuvable.
Avatar
Michel Pierron
Bonsoir Papou;
Ceci s'appelle une procédure ou fonction récursive. C'est la procédure principale
"selectmois" avec ses arguments qui doit s'auto appeler après l'appel à
"traite_le_mois"; la valeur des arguments pouvant être différents dans le second
appel.

Par exemple:
Sub selectmois(arg1, ar2, Optionnal Counter% = 0)
' Code....
traite_le_mois
' Code
If Counter > 0 Then Exit Sub
selectmois arg1, arg2, 1
End Sub

MP

"Papou" a écrit dans le message de
news:3ffdc5a7$0$29060$
Bonsoir
Comment faire pour appeler des procédures à tour de rôle afin de modifier
les paramètres de recherches dans l'une des deux ?

Une procédure que j'ai nommé "selectmois" choisit certains paramètres et
dans cette procédure, une instruction "call traite_le mois" exécute des
réalisations.
En fin de "traite_le_mois", je souhaite redéfinir de nouveaux paramètres
dans " selectmois" mais l'instruction "Call selectmois" ne fonctionne
pas. -Erreur de compilation -sub ou function non définie- ou Membre de
Méthode ou de données introuvable.






Avatar
Papou
Bonjour

.. en réalité, ce que je désire c'est, depuis une feuille comportant des
dates, sélectionner le mois de mon choix, traiter des informations
correspondant à ce mois et dès la fin du traitement, pouvoir revenir sur le
menu me permettant de refaire le choix d'un nouveau mois et relancer le
programme .
Le terme récursif correspond parfaitement à cette idée. " Ce qui se conçoit
bien s'énonce clairement et les mots pour le dire arrivent aisément". ce
n'était pas mon cas hier soir:-((
... mais pourquoi "Call traite_le_mois" ne fait-il aucune difficulté pour
s'exécuter alors que "Call selectmois" bloque le déroulement.?
Je prends toutefois bonne note de ton exemple et l'appliquer.
Je pensais en créant des programmes différents : 1) les alléger et 2)
faciliter les modifications ultérieures. Plusieurs petits programmes étant
plus simples à corriger qu'un long.
Merci de ton aide
Papou

"Michel Pierron" a écrit dans le message de news:

Bonsoir Papou;
Ceci s'appelle une procédure ou fonction récursive. C'est la procédure
principale

"selectmois" avec ses arguments qui doit s'auto appeler après l'appel à
"traite_le_mois"; la valeur des arguments pouvant être différents dans le
second

appel.

Par exemple:
Sub selectmois(arg1, ar2, Optionnal Counter% = 0)
' Code....
traite_le_mois
' Code
If Counter > 0 Then Exit Sub
selectmois arg1, arg2, 1
End Sub

MP

"Papou" a écrit dans le message de
news:3ffdc5a7$0$29060$
Bonsoir
Comment faire pour appeler des procédures à tour de rôle afin de
modifier


les paramètres de recherches dans l'une des deux ?

Une procédure que j'ai nommé "selectmois" choisit certains paramètres
et


dans cette procédure, une instruction "call traite_le mois" exécute des
réalisations.
En fin de "traite_le_mois", je souhaite redéfinir de nouveaux
paramètres


dans " selectmois" mais l'instruction "Call selectmois" ne fonctionne
pas. -Erreur de compilation -sub ou function non définie- ou Membre de
Méthode ou de données introuvable.










Avatar
Chris Michel
Méfie-toi quand même des fonctions récursives, ça peut
être une peu compliqué.


Pourquoi ne fais-tu pas plutôt une troisième procédure qui
lance "selectmois" (qui elle-même lance traite_mois) puis
qiu te demande si tu veux relancer selectmois (voir qui le
relance selon un critère donné)? C'est simple à faire avec
une boucle do while...loop et tu te prendras moins la
tronche.


-----Message d'origine-----
Bonjour

... en réalité, ce que je désire c'est, depuis une
feuille comportant des

dates, sélectionner le mois de mon choix, traiter des
informations

correspondant à ce mois et dès la fin du traitement,
pouvoir revenir sur le

menu me permettant de refaire le choix d'un nouveau mois
et relancer le

programme .
Le terme récursif correspond parfaitement à cette idée. "
Ce qui se conçoit

bien s'énonce clairement et les mots pour le dire
arrivent aisément". ce

n'était pas mon cas hier soir:-((
.... mais pourquoi "Call traite_le_mois" ne fait-il
aucune difficulté pour

s'exécuter alors que "Call selectmois" bloque le
déroulement.?

Je prends toutefois bonne note de ton exemple et
l'appliquer.

Je pensais en créant des programmes différents : 1) les
alléger et 2)

faciliter les modifications ultérieures. Plusieurs petits
programmes étant

plus simples à corriger qu'un long.
Merci de ton aide
Papou

"Michel Pierron" a écrit dans le
message de news:


Bonsoir Papou;
Ceci s'appelle une procédure ou fonction récursive.
C'est la procédure


principale
"selectmois" avec ses arguments qui doit s'auto appeler
après l'appel à


"traite_le_mois"; la valeur des arguments pouvant être
différents dans le


second
appel.

Par exemple:
Sub selectmois(arg1, ar2, Optionnal Counter% = 0)
' Code....
traite_le_mois
' Code
If Counter > 0 Then Exit Sub
selectmois arg1, arg2, 1
End Sub

MP

"Papou" a écrit dans le message
de


news:3ffdc5a7$0$29060$
Bonsoir
Comment faire pour appeler des procédures à tour de
rôle afin de



modifier
les paramètres de recherches dans l'une des deux ?

Une procédure que j'ai nommé "selectmois" choisit
certains paramètres



et
dans cette procédure, une instruction "call traite_le
mois" exécute des



réalisations.
En fin de "traite_le_mois", je souhaite redéfinir de
nouveaux



paramètres
dans " selectmois" mais l'instruction "Call
selectmois" ne fonctionne



pas. -Erreur de compilation -sub ou function non
définie- ou Membre de



Méthode ou de données introuvable.










.





Avatar
Papou
... après tout, pourquoi faire compliqué quand on peut faire simple ..
je vais repenser tout ça, d'autant plus que je ne suis pas très ferré
là-dessus..

merci

"Chris Michel" a écrit dans le message
de news: 08dc01c3d6b0$7b99c8d0$
Méfie-toi quand même des fonctions récursives, ça peut
être une peu compliqué.


Pourquoi ne fais-tu pas plutôt une troisième procédure qui
lance "selectmois" (qui elle-même lance traite_mois) puis
qiu te demande si tu veux relancer selectmois (voir qui le
relance selon un critère donné)? C'est simple à faire avec
une boucle do while...loop et tu te prendras moins la
tronche.


-----Message d'origine-----
Bonjour

... en réalité, ce que je désire c'est, depuis une
feuille comportant des

dates, sélectionner le mois de mon choix, traiter des
informations

correspondant à ce mois et dès la fin du traitement,
pouvoir revenir sur le

menu me permettant de refaire le choix d'un nouveau mois
et relancer le

programme .
Le terme récursif correspond parfaitement à cette idée. "
Ce qui se conçoit

bien s'énonce clairement et les mots pour le dire
arrivent aisément". ce

n'était pas mon cas hier soir:-((
.... mais pourquoi "Call traite_le_mois" ne fait-il
aucune difficulté pour

s'exécuter alors que "Call selectmois" bloque le
déroulement.?

Je prends toutefois bonne note de ton exemple et
l'appliquer.

Je pensais en créant des programmes différents : 1) les
alléger et 2)

faciliter les modifications ultérieures. Plusieurs petits
programmes étant

plus simples à corriger qu'un long.
Merci de ton aide
Papou

"Michel Pierron" a écrit dans le
message de news:


Bonsoir Papou;
Ceci s'appelle une procédure ou fonction récursive.
C'est la procédure


principale
"selectmois" avec ses arguments qui doit s'auto appeler
après l'appel à


"traite_le_mois"; la valeur des arguments pouvant être
différents dans le


second
appel.

Par exemple:
Sub selectmois(arg1, ar2, Optionnal Counter% = 0)
' Code....
traite_le_mois
' Code
If Counter > 0 Then Exit Sub
selectmois arg1, arg2, 1
End Sub

MP

"Papou" a écrit dans le message
de


news:3ffdc5a7$0$29060$
Bonsoir
Comment faire pour appeler des procédures à tour de
rôle afin de



modifier
les paramètres de recherches dans l'une des deux ?

Une procédure que j'ai nommé "selectmois" choisit
certains paramètres



et
dans cette procédure, une instruction "call traite_le
mois" exécute des



réalisations.
En fin de "traite_le_mois", je souhaite redéfinir de
nouveaux



paramètres
dans " selectmois" mais l'instruction "Call
selectmois" ne fonctionne



pas. -Erreur de compilation -sub ou function non
définie- ou Membre de



Méthode ou de données introuvable.










.