Ai s

Le
lecrol
Bonjour,

J'ai une variable "rep" commune à 2 formulaires.
Je l'ai définie dans un module:
--
Public Sub Modul_rep( )
Public rep As Integer
End sub

Déjà, est-ce correct ? Je n'en suis pas sûr.

Mais je ne sais pas comment "lancer" ce module depuis l'un ou l'autre de mes
formulaires, par exemple dans mon code VBA d'évènement "sur activation"
Merci de vos lumières
Roland
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses Page 1 / 3
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Michel__D
Le #18800631
Bonjour,

"lecrol"
Bonjour,

J'ai une variable "rep" commune à 2 formulaires.
Je l'ai définie dans un module:
--------
Public Sub Modul_rep( )
Public rep As Integer
End sub
---------------
Déjà, est-ce correct ? Je n'en suis pas sûr.

Mais je ne sais pas comment "lancer" ce module depuis l'un ou l'autre de mes
formulaires, par exemple dans mon code VBA d'évènement "sur activation"
Merci de vos lumières
Roland



Voici une façon de faire :

Au niveau du module mettre ceci :

Option Compare Database


Dim rep As Integer

...

Function Valeur_rep(Optional iValeur As Variant) As Integer
If TypeName(iValeur) = "Integer" Then rep = CInt(iValeur)
Valeur_rep = rep
End Function


Ensuite au niveau de tes formulaires :

Pour fixer par exemple la valeur de la variable rep sur 3
Valeur_rep 3

Et pour récupérer la valeur de la variable rep
Variable_formulaire = Valeur_rep
lecrol
Le #18801131
merci Michel de ton apport J'essaie ça et je te dis aussitôt
Roland


"Michel__D" wrote:

Bonjour,

"lecrol" > Bonjour,
>
> J'ai une variable "rep" commune à 2 formulaires.
> Je l'ai définie dans un module:
> --------
> Public Sub Modul_rep( )
> Public rep As Integer
> End sub
> ---------------
> Déjà, est-ce correct ? Je n'en suis pas sûr.
>
> Mais je ne sais pas comment "lancer" ce module depuis l'un ou l'autre de mes
> formulaires, par exemple dans mon code VBA d'évènement "sur activation"
> Merci de vos lumières
> Roland

Voici une façon de faire :

Au niveau du module mettre ceci :

Option Compare Database


Dim rep As Integer

....

Function Valeur_rep(Optional iValeur As Variant) As Integer
If TypeName(iValeur) = "Integer" Then rep = CInt(iValeur)
Valeur_rep = rep
End Function


Ensuite au niveau de tes formulaires :

Pour fixer par exemple la valeur de la variable rep sur 3
Valeur_rep 3

Et pour récupérer la valeur de la variable rep
Variable_formulaire = Valeur_rep




lecrol
Le #18801731
Voilà ce que j'ai écrit mais qui ne marche pas.
-----
Le module Module_rep:

Option Compare Database
Public rep As Integer
Function Valeur_rep(Optional iValeur As Variant) As Integer
If TypeName(iValeur) = "Integer" Then rep = CInt(iValeur)
Valeur_rep = rep
MsgBox ("rep module = " & rep)
End Function
-----------------------------------
Dans mon formulaire « stocks », à chaque entrée de données, pour chaque
«champ » :

Option Compare Database
Public rep As Integer

Private Sub Fille__oui_non__AfterUpdate()
Valeur_rep 1
Datedermaj = Date
End Sub
-----
Private Sub Date_d_entrée_AfterUpdate()
Valeur_rep 1
Datedermaj = Date
End Sub
----------------------------
Dans mon formulaire de clôture ( sous formulaire sur le menu général)
Option Compare Database

Public rep As Integer
Private Sub Form_Close()
rep = Valeur_rep
MsgBox ("Clôture: rep = " & rep & "; " & Date)
If rep = 1 Then
Derdat = Date
End If
End Sub
-------------------------------------------------
Le but du « jeu » est de stocker sur le menu d’entrée (dans un sous
formulaire) la date de la dernière modif effectuée sur une des fiches de la
table « stocks ».
J’ai créé pour cela un table « derdate » et un sous formulaire correspondant
Dans le formulaire « stocks » je mets à jour un repère « rep » à chaque «
after update » des contrôles
---
Mais ça ne marche pas. Mon « rep » se retrouve à 0 à la clôture, après
pourtant être passé par des 1 ( je le piste par des msgbox)
----------------------------------------------------------
Merci d'avance si tu me trouves mon erreur.
Amicalement
Roland
Michel__D
Le #18801841
Re,

"lecrol"
Voilà ce que j'ai écrit mais qui ne marche pas.
-----
Le module Module_rep:

Option Compare Database
Public rep As Integer



Tu peux remplacer la ligne précédente par
Dim rep As Integer

Function Valeur_rep(Optional iValeur As Variant) As Integer
If TypeName(iValeur) = "Integer" Then rep = CInt(iValeur)
Valeur_rep = rep
MsgBox ("rep module = " & rep)
End Function
-----------------------------------
Dans mon formulaire « stocks », à chaque entrée de données, pour chaque
«champ » :

Option Compare Database



La ligne suivante doit être enlever

Public rep As Integer




Private Sub Fille__oui_non__AfterUpdate()
Valeur_rep 1
Datedermaj = Date
End Sub
-----
Private Sub Date_d_entrée_AfterUpdate()
Valeur_rep 1
Datedermaj = Date
End Sub
----------------------------
Dans mon formulaire de clôture ( sous formulaire sur le menu général)
Option Compare Database





La ligne suivante doit être enlever

Public rep As Integer




Private Sub Form_Close()



Et rajoute ici la déclaration de ta variable locale
Dim rep As Integer

rep = Valeur_rep
MsgBox ("Clôture: rep = " & rep & "; " & Date)
If rep = 1 Then
Derdat = Date
End If
End Sub
-------------------------------------------------
Le but du « jeu » est de stocker sur le menu d’entrée (dans un sous
formulaire) la date de la dernière modif effectuée sur une des fiches de la
table « stocks ».
J’ai créé pour cela un table « derdate » et un sous formulaire correspondant
Dans le formulaire « stocks » je mets à jour un repère « rep » à chaque «
after update » des contrôles
---
Mais ça ne marche pas. Mon « rep » se retrouve à 0 à la clôture, après
pourtant être passé par des 1 ( je le piste par des msgbox)
----------------------------------------------------------
Merci d'avance si tu me trouves mon erreur.
Amicalement
Roland


lecrol
Le #18802781
Michel,
Merci de ta patience. Mais j'ai toujours un "rep = 0" à la clôture de mon
formulaire "datmaj" !
----------
Voici mon nouveau code

Le module:
Option Compare Database
Dim rep As Integer

Function Valeur_rep(Optional iValeur As Variant) As Integer
If TypeName(iValeur) = "Integer" Then rep = CInt(iValeur)
Valeur_rep = rep
MsgBox ("rep module = " & rep)
End Function
--------------
Le formulaire "stocks" :

Option Compare Database

Private Sub Catégorie_AfterUpdate()
MsgBox ("rep avant = " & rep)
Valeur_rep 1
rep = Valeur_rep
MsgBox ("rep après = " & rep)
Datedermaj = Date
End Sub
----------------------- le "rep après" m'affiche bien "1" ----------
Option Compare Database

Private Sub Form_Close()
Dim rep As Integer
rep = Valeur_rep
MsgBox ("Clôture: rep = " & rep & "; " & Date)
If rep = 1 Then
Derdat = Date
End If
End Sub
---------------------------ici, le rep clôture s'affiche à "0" ----
Où me plante-je ????
Amicalement
Rolan
-----------------------------------------------------------------------------------------
"Michel__D" wrote:

Re,

"lecrol" > Voilà ce que j'ai écrit mais qui ne marche pas.
> -----
> Le module Module_rep:
>
> Option Compare Database
> Public rep As Integer

Tu peux remplacer la ligne précédente par
Dim rep As Integer

> Function Valeur_rep(Optional iValeur As Variant) As Integer
> If TypeName(iValeur) = "Integer" Then rep = CInt(iValeur)
> Valeur_rep = rep
> MsgBox ("rep module = " & rep)
> End Function
> -----------------------------------
> Dans mon formulaire « stocks », à chaque entrée de données, pour chaque
> «champ » :
>
> Option Compare Database

La ligne suivante doit être enlever

> Public rep As Integer


> Private Sub Fille__oui_non__AfterUpdate()
> Valeur_rep 1
> Datedermaj = Date
> End Sub
> -----
> Private Sub Date_d_entrée_AfterUpdate()
> Valeur_rep 1
> Datedermaj = Date
> End Sub
> ----------------------------
> Dans mon formulaire de clôture ( sous formulaire sur le menu général)
> Option Compare Database
>


La ligne suivante doit être enlever

> Public rep As Integer


> Private Sub Form_Close()

Et rajoute ici la déclaration de ta variable locale
Dim rep As Integer

> rep = Valeur_rep
> MsgBox ("Clôture: rep = " & rep & "; " & Date)
> If rep = 1 Then
> Derdat = Date
> End If
> End Sub
> -------------------------------------------------
> Le but du « jeu » est de stocker sur le menu d’entrée (dans un sous
> formulaire) la date de la dernière modif effectuée sur une des fiches de la
> table « stocks ».
> J’ai créé pour cela un table « derdate » et un sous formulaire correspondant
> Dans le formulaire « stocks » je mets à jour un repère « rep » à chaque «
> after update » des contrôles
> ---
> Mais ça ne marche pas. Mon « rep » se retrouve à 0 à la clôture, après
> pourtant être passé par des 1 ( je le piste par des msgbox)
> ----------------------------------------------------------
> Merci d'avance si tu me trouves mon erreur.
> Amicalement
> Roland




Michel__D
Le #18803331
Re,

Vérifie/recherche au niveau Module que tu n'ai pas une variable
nommé rep qui redéfinisse la valeur, je ne vois que cela ou plus
simple change le nom de la variable au niveau du module.

Option Compare Database
Dim rep_global As Integer

Function Valeur_rep(Optional iValeur As Variant) As Integer
If TypeName(iValeur) = "Integer" Then rep_global = CInt(iValeur)
Valeur_rep = rep_global
MsgBox ("rep module = " & rep_global)
End Function


"lecrol"
Michel,
Merci de ta patience. Mais j'ai toujours un "rep = 0" à la clôture de mon
formulaire "datmaj" !
----------
Voici mon nouveau code

Le module:
Option Compare Database
Dim rep As Integer

Function Valeur_rep(Optional iValeur As Variant) As Integer
If TypeName(iValeur) = "Integer" Then rep = CInt(iValeur)
Valeur_rep = rep
MsgBox ("rep module = " & rep)
End Function
--------------
Le formulaire "stocks" :

Option Compare Database

Private Sub Catégorie_AfterUpdate()
MsgBox ("rep avant = " & rep)
Valeur_rep 1
rep = Valeur_rep
MsgBox ("rep après = " & rep)
Datedermaj = Date
End Sub
----------------------- le "rep après" m'affiche bien "1" ----------
Option Compare Database

Private Sub Form_Close()
Dim rep As Integer
rep = Valeur_rep
MsgBox ("Clôture: rep = " & rep & "; " & Date)
If rep = 1 Then
Derdat = Date
End If
End Sub
---------------------------ici, le rep clôture s'affiche à "0" ----
Où me plante-je ????
Amicalement
Roland
-----------------------------------------------------------------------------------------
"Michel__D" wrote:

Re,

"lecrol"
> Voilà ce que j'ai écrit mais qui ne marche pas.
> -----
> Le module Module_rep:
>
> Option Compare Database
> Public rep As Integer

Tu peux remplacer la ligne précédente par
Dim rep As Integer

> Function Valeur_rep(Optional iValeur As Variant) As Integer
> If TypeName(iValeur) = "Integer" Then rep = CInt(iValeur)
> Valeur_rep = rep
> MsgBox ("rep module = " & rep)
> End Function
> -----------------------------------
> Dans mon formulaire « stocks », à chaque entrée de données, pour chaque
> «champ » :
>
> Option Compare Database

La ligne suivante doit être enlever

> Public rep As Integer


> Private Sub Fille__oui_non__AfterUpdate()
> Valeur_rep 1
> Datedermaj = Date
> End Sub
> -----
> Private Sub Date_d_entrée_AfterUpdate()
> Valeur_rep 1
> Datedermaj = Date
> End Sub
> ----------------------------
> Dans mon formulaire de clôture ( sous formulaire sur le menu général)
> Option Compare Database
>


La ligne suivante doit être enlever

> Public rep As Integer


> Private Sub Form_Close()

Et rajoute ici la déclaration de ta variable locale
Dim rep As Integer

> rep = Valeur_rep
> MsgBox ("Clôture: rep = " & rep & "; " & Date)
> If rep = 1 Then
> Derdat = Date
> End If
> End Sub
> -------------------------------------------------
> Le but du « jeu » est de stocker sur le menu d’entrée (dans un sous
> formulaire) la date de la dernière modif effectuée sur une des fiches de la
> table « stocks ».
> J’ai créé pour cela un table « derdate » et un sous formulaire correspondant
> Dans le formulaire « stocks » je mets à jour un repère « rep » à chaque «
> after update » des contrôles
> ---
> Mais ça ne marche pas. Mon « rep » se retrouve à 0 à la clôture, après
> pourtant être passé par des 1 ( je le piste par des msgbox)
> ----------------------------------------------------------
> Merci d'avance si tu me trouves mon erreur.
> Amicalement
> Roland






lecrol
Le #18803541
ok Merci J'essaie et je te dis !
Amitié
Roland


"Michel__D" wrote:

Re,

Vérifie/recherche au niveau Module que tu n'ai pas une variable
nommé rep qui redéfinisse la valeur, je ne vois que cela ou plus
simple change le nom de la variable au niveau du module.

Option Compare Database
Dim rep_global As Integer

Function Valeur_rep(Optional iValeur As Variant) As Integer
If TypeName(iValeur) = "Integer" Then rep_global = CInt(iValeur)
Valeur_rep = rep_global
MsgBox ("rep module = " & rep_global)
End Function


"lecrol" > Michel,
> Merci de ta patience. Mais j'ai toujours un "rep = 0" à la clôture de mon
> formulaire "datmaj" !
> ----------
> Voici mon nouveau code
>
> Le module:
> Option Compare Database
> Dim rep As Integer
>
> Function Valeur_rep(Optional iValeur As Variant) As Integer
> If TypeName(iValeur) = "Integer" Then rep = CInt(iValeur)
> Valeur_rep = rep
> MsgBox ("rep module = " & rep)
> End Function
> --------------
> Le formulaire "stocks" :
>
> Option Compare Database
>
> Private Sub Catégorie_AfterUpdate()
> MsgBox ("rep avant = " & rep)
> Valeur_rep 1
> rep = Valeur_rep
> MsgBox ("rep après = " & rep)
> Datedermaj = Date
> End Sub
> ----------------------- le "rep après" m'affiche bien "1" ----------
> Option Compare Database
>
> Private Sub Form_Close()
> Dim rep As Integer
> rep = Valeur_rep
> MsgBox ("Clôture: rep = " & rep & "; " & Date)
> If rep = 1 Then
> Derdat = Date
> End If
> End Sub
> ---------------------------ici, le rep clôture s'affiche à "0" ----
> Où me plante-je ????
> Amicalement
> Roland
> -----------------------------------------------------------------------------------------
> "Michel__D" wrote:
>
>> Re,
>>
>> "lecrol" >>
>> > Voilà ce que j'ai écrit mais qui ne marche pas.
>> > -----
>> > Le module Module_rep:
>> >
>> > Option Compare Database
>> > Public rep As Integer
>>
>> Tu peux remplacer la ligne précédente par
>> Dim rep As Integer
>>
>> > Function Valeur_rep(Optional iValeur As Variant) As Integer
>> > If TypeName(iValeur) = "Integer" Then rep = CInt(iValeur)
>> > Valeur_rep = rep
>> > MsgBox ("rep module = " & rep)
>> > End Function
>> > -----------------------------------
>> > Dans mon formulaire « stocks », à chaque entrée de données, pour chaque
>> > «champ » :
>> >
>> > Option Compare Database
>>
>> La ligne suivante doit être enlever
>>
>> > Public rep As Integer
>>
>>
>> > Private Sub Fille__oui_non__AfterUpdate()
>> > Valeur_rep 1
>> > Datedermaj = Date
>> > End Sub
>> > -----
>> > Private Sub Date_d_entrée_AfterUpdate()
>> > Valeur_rep 1
>> > Datedermaj = Date
>> > End Sub
>> > ----------------------------
>> > Dans mon formulaire de clôture ( sous formulaire sur le menu général)
>> > Option Compare Database
>> >
>>
>>
>> La ligne suivante doit être enlever
>>
>> > Public rep As Integer
>>
>>
>> > Private Sub Form_Close()
>>
>> Et rajoute ici la déclaration de ta variable locale
>> Dim rep As Integer
>>
>> > rep = Valeur_rep
>> > MsgBox ("Clôture: rep = " & rep & "; " & Date)
>> > If rep = 1 Then
>> > Derdat = Date
>> > End If
>> > End Sub
>> > -------------------------------------------------
>> > Le but du « jeu » est de stocker sur le menu d’entrée (dans un sous
>> > formulaire) la date de la dernière modif effectuée sur une des fiches de la
>> > table « stocks ».
>> > J’ai créé pour cela un table « derdate » et un sous formulaire correspondant
>> > Dans le formulaire « stocks » je mets à jour un repère « rep » à chaque «
>> > after update » des contrôles
>> > ---
>> > Mais ça ne marche pas. Mon « rep » se retrouve à 0 à la clôture, après
>> > pourtant être passé par des 1 ( je le piste par des msgbox)
>> > ----------------------------------------------------------
>> > Merci d'avance si tu me trouves mon erreur.
>> > Amicalement
>> > Roland
>>
>>




lecrol
Le #18807691
Michel, je suis désolé mais ça ne marche pas ! y'a un bidulle empoisonné
qui me remet ma variable à 0 au moment de la clôture J'ai tout essayé, mais
rien à faire. Si j'osais, je t'enverrai ma base toute entière ...
roland
----------------------------------
Michel__D
Le #18812831
Bonjour,

"lecrol"
Michel, je suis désolé mais ça ne marche pas ! y'a un bidulle empoisonné
qui me remet ma variable à 0 au moment de la clôture J'ai tout essayé, mais
rien à faire. Si j'osais, je t'enverrai ma base toute entière ...
roland



Si elle n'est pas trop importante et s'il n'y a pas de donnée personnelle
tu peux la mettre sur http://cjoint.com
lecrol
Le #18813311
Génial. Tu es vraiment sympa Mais je n'ai pas ton adresse e-mail et
"cjoint.com" me la demande. Moi, c'est
Roland
Publicité
Poster une réponse
Anonyme