OVH Cloud OVH Cloud

prob arguments dans timer

5 réponses
Avatar
poulpe38
Bonsoir à tous,
je vous explique mon petit probleme:
Je recupere des infos dans un userform, que je tranmet comme arguments dans
une autre routine. Cette autre routine est un timer qui marche avec OnTime et
qui se relance lui-meme. Quand le timer se reappelle, j'ai une erreur:
"argument non facultatif". Comment puise-je recuperer les valeurs du
formulaire dans des variables afin de pouvoir les utiliser dans des routines
sans les passer comme arguments??
Merci de votre aide!!

5 réponses

Avatar
poulpe38
Merci pour ta reponse, mais je dois mettre ca ou?
J'ai mi ca en haut du module:

Public heure As Double
Public debut As Double
Public fin As Double
Public intervalle As Byte

mais ca ne change rien.
Qu'est ce que j'oublie???

merci!!
"lSteph" a écrit dans le message de news:
%
Bonsoir,

en haut d' un module standard ceci permet de déclarer une globale

Public mavar

lSteph

"poulpe38" a écrit dans le message de
news:
Bonsoir à tous,
je vous explique mon petit probleme:
Je recupere des infos dans un userform, que je tranmet comme arguments
dans
une autre routine. Cette autre routine est un timer qui marche avec
OnTime et
qui se relance lui-meme. Quand le timer se reappelle, j'ai une erreur:
"argument non facultatif". Comment puise-je recuperer les valeurs du
formulaire dans des variables afin de pouvoir les utiliser dans des
routines
sans les passer comme arguments??
Merci de votre aide!!






Avatar
lSteph
Bonsoir,

en haut d' un module standard ceci permet de déclarer une globale

Public mavar

lSteph

"poulpe38" a écrit dans le message de
news:
Bonsoir à tous,
je vous explique mon petit probleme:
Je recupere des infos dans un userform, que je tranmet comme arguments
dans
une autre routine. Cette autre routine est un timer qui marche avec OnTime
et
qui se relance lui-meme. Quand le timer se reappelle, j'ai une erreur:
"argument non facultatif". Comment puise-je recuperer les valeurs du
formulaire dans des variables afin de pouvoir les utiliser dans des
routines
sans les passer comme arguments??
Merci de votre aide!!


Avatar
lSteph
Bonjour,"poulpe38"

J'ai mi ca en haut du module:
C'est bien cela , en haut d'un module "Standard", pas celui du userform!


Ainsi déclarées tes variables sont utilisables aussi bien dans
le code des userforms que des autres modules du projet.

Vérifie aussi d'avoir enlever les déclarations Dim internes aux sub pour
ces mêmes variables.

Tu peux donc désormais utiliser tes variables afin qu'elles ne soient pas
vides ,
et ainsi s'il en est besoin en argument. (Selon ce que j'ai pu comprendre)

mais ca ne change rien.
Qu'est ce que j'oublie???


Déjà fournir ton code si c'est celui-ci qui pose le pb (à préciser un peu
plus si possible).
tu peux le mettre ici: http://cjoint.com et revenir nous donner le lien
obtenu.

Cordialement.

lSteph



"poulpe38" a écrit dans le message de news:
%
Merci pour ta reponse, mais je dois mettre ca ou?
J'ai mi ca en haut du module:

Public heure As Double
Public debut As Double
Public fin As Double
Public intervalle As Byte

mais ca ne change rien.
Qu'est ce que j'oublie???

merci!!
"lSteph" a écrit dans le message de news:
%
Bonsoir,

en haut d' un module standard ceci permet de déclarer une globale

Public mavar

lSteph

"poulpe38" a écrit dans le message
de news:
Bonsoir à tous,
je vous explique mon petit probleme:
Je recupere des infos dans un userform, que je tranmet comme arguments
dans
une autre routine. Cette autre routine est un timer qui marche avec
OnTime et
qui se relance lui-meme. Quand le timer se reappelle, j'ai une erreur:
"argument non facultatif". Comment puise-je recuperer les valeurs du
formulaire dans des variables afin de pouvoir les utiliser dans des
routines
sans les passer comme arguments??
Merci de votre aide!!










Avatar
poulpe38
Merci beaucoup

Ca marche. Mais, juste une petite question: avec cette methode, les types de
variables ne sont plus declares?, ce sont donc des "variants" par defaut?

Merci
"lSteph" a écrit dans le message de news:
%
Bonjour,"poulpe38"

J'ai mi ca en haut du module:
C'est bien cela , en haut d'un module "Standard", pas celui du userform!


Ainsi déclarées tes variables sont utilisables aussi bien dans
le code des userforms que des autres modules du projet.

Vérifie aussi d'avoir enlever les déclarations Dim internes aux sub pour
ces mêmes variables.

Tu peux donc désormais utiliser tes variables afin qu'elles ne soient pas
vides ,
et ainsi s'il en est besoin en argument. (Selon ce que j'ai pu comprendre)

mais ca ne change rien.
Qu'est ce que j'oublie???


Déjà fournir ton code si c'est celui-ci qui pose le pb (à préciser un peu
plus si possible).
tu peux le mettre ici: http://cjoint.com et revenir nous donner le lien
obtenu.

Cordialement.

lSteph



"poulpe38" a écrit dans le message de news:
%
Merci pour ta reponse, mais je dois mettre ca ou?
J'ai mi ca en haut du module:

Public heure As Double
Public debut As Double
Public fin As Double
Public intervalle As Byte

mais ca ne change rien.
Qu'est ce que j'oublie???

merci!!
"lSteph" a écrit dans le message de news:
%
Bonsoir,

en haut d' un module standard ceci permet de déclarer une globale

Public mavar

lSteph

"poulpe38" a écrit dans le message
de news:
Bonsoir à tous,
je vous explique mon petit probleme:
Je recupere des infos dans un userform, que je tranmet comme arguments
dans
une autre routine. Cette autre routine est un timer qui marche avec
OnTime et
qui se relance lui-meme. Quand le timer se reappelle, j'ai une erreur:
"argument non facultatif". Comment puise-je recuperer les valeurs du
formulaire dans des variables afin de pouvoir les utiliser dans des
routines
sans les passer comme arguments??
Merci de votre aide!!














Avatar
lSteph
Bonsoir,

Oui! tout à fait , il est avantageux de typer les variables même si vba
supporte le variant par défaut
mais c'est selon ce que l'on veut utiliser et en faire!
Dans la mesure où je n'ai vue ni sur les tenants ni sur les aboutissants ,
ma proposition reste libre de cette faculté.
Il y a matière dans l'aide de vba sur ce chapitre.
Et de longue date les discussions ..........au sein du forum,
l'optimisation peut s'avèrer nécessaire et s'

[ il est toujours bon de savoir de quel type on a besoin ],

il n'est pas toujours de bon aloi de favoriser l'économie car dans la mesure
où l'on peut
par exemple étendre un cadre d'utilisation à un nombre de colonne à du
byte ,
il faudra du long pour les lignes
et si in fine on s'en sert en paramêtre d'une méthode ou fonction exigeant
un objet ou un variant , on est planté!
Les systèmes et ressources actuels ne nécessitent à ce point que peu de
réserve...
..et patati et patata.........
on pourrait en causer des heures durant.

Sans réserve: "tu as raison de typer"!


Cordialement.

lSteph


"poulpe38" a écrit dans le message de news:

Merci beaucoup

Ca marche. Mais, juste une petite question: avec cette methode, les types
de variables ne sont plus declares?, ce sont donc des "variants" par
defaut?

Merci
"lSteph" a écrit dans le message de news:
%
Bonjour,"poulpe38"

J'ai mi ca en haut du module:
C'est bien cela , en haut d'un module "Standard", pas celui du userform!


Ainsi déclarées tes variables sont utilisables aussi bien dans
le code des userforms que des autres modules du projet.

Vérifie aussi d'avoir enlever les déclarations Dim internes aux sub pour
ces mêmes variables.

Tu peux donc désormais utiliser tes variables afin qu'elles ne soient
pas vides ,
et ainsi s'il en est besoin en argument. (Selon ce que j'ai pu
comprendre)

mais ca ne change rien.
Qu'est ce que j'oublie???


Déjà fournir ton code si c'est celui-ci qui pose le pb (à préciser un peu
plus si possible).
tu peux le mettre ici: http://cjoint.com et revenir nous donner le lien
obtenu.

Cordialement.

lSteph



"poulpe38" a écrit dans le message de news:
%
Merci pour ta reponse, mais je dois mettre ca ou?
J'ai mi ca en haut du module:

Public heure As Double
Public debut As Double
Public fin As Double
Public intervalle As Byte

mais ca ne change rien.
Qu'est ce que j'oublie???

merci!!
"lSteph" a écrit dans le message de news:
%
Bonsoir,

en haut d' un module standard ceci permet de déclarer une globale

Public mavar

lSteph

"poulpe38" a écrit dans le message
de news:
Bonsoir à tous,
je vous explique mon petit probleme:
Je recupere des infos dans un userform, que je tranmet comme arguments
dans
une autre routine. Cette autre routine est un timer qui marche avec
OnTime et
qui se relance lui-meme. Quand le timer se reappelle, j'ai une erreur:
"argument non facultatif". Comment puise-je recuperer les valeurs du
formulaire dans des variables afin de pouvoir les utiliser dans des
routines
sans les passer comme arguments??
Merci de votre aide!!