(debutant) Déclarations et passage de variables. Help !

Le
alainL
Le sub suivant me donne la date de Paques. (et plus tard, celles des autres
fetes)
--
Private Sub FetesMobiles(ByVal Annee As Integer)

Dim L(6) As Long, Lj As Long, Lm As Long
Dim paques As Date


.
paques = (Lj & "/" & Lm & "/" & Annee)

End Sub
______________________________________________________

Je l'appelle ds un autre sub :
--
Private Sub Rafraichir()

Dim Annee As Integer

Annee = MonthCalendar1.SelectionStart.Year

TextBox1.Text = "Pâques est le " & paques
___________________________________________________________

J'obtiens deux messages d'erreur:
1- Argument non spécifié pour le param "Annee" de Private Sub
FetesMobiles(Annee as integer)
2- Le nom "paques" n'est pas déclaré

A part ça, le progr tourne mais y a qd meme qqchose qui cloche !
Merci pour une correction .

alain
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
PierreSlideM
Le #12226491
Il faut modifier le code ainsi

Private Function FetesMobiles(ByVal Annee As Integer)
Dim L(6) As Long, Lj As Long, Lm As Long
Dim paques As Date
paques = (Lj & "/" & Lm & "/" & Annee)
Return paques
End Function

et

Dim Annee As Integer
Annee = MonthCalendar1.SelectionStart.Year
TextBox1.Text = "Pâques est le " & FetesMobiles (Annee)



"alainL" a écrit :

Le sub suivant me donne la date de Paques. (et plus tard, celles des autres
fetes)
--------------------------------------------------------------------------------------------------------------
Private Sub FetesMobiles(ByVal Annee As Integer)

Dim L(6) As Long, Lj As Long, Lm As Long
Dim paques As Date


......................
paques = (Lj & "/" & Lm & "/" & Annee)

End Sub
______________________________________________________

Je l'appelle ds un autre sub :
--------------------------------------------------------------------------------------------------------
Private Sub Rafraichir()
...
Dim Annee As Integer

Annee = MonthCalendar1.SelectionStart.Year
...
TextBox1.Text = "Pâques est le " & paques
___________________________________________________________

J'obtiens deux messages d'erreur:
1- Argument non spécifié pour le param "Annee" de Private Sub
FetesMobiles(Annee as integer)
2- Le nom "paques" n'est pas déclaré

A part ça, le progr tourne mais y a qd meme qqchose qui cloche !
Merci pour une correction .

alain





alainL
Le #12226481
Merci. J'avais transféré cela (function) dans un sub FetesMobiles car je
pensais pouvoir y calculer aussi les autres dates (pentecote etc...) Je
n'arrive pas à récupérer Lj et Lm en partant de paques dans mon sub
principal. et ce sont surtout ces deux valeurs qui m'intéressent !

Alain

"PierreSlideM" message de groupe de discussion :

Il faut modifier le code ainsi

Private Function FetesMobiles(ByVal Annee As Integer)
Dim L(6) As Long, Lj As Long, Lm As Long
Dim paques As Date
paques = (Lj & "/" & Lm & "/" & Annee)
Return paques
End Function

et

Dim Annee As Integer
Annee = MonthCalendar1.SelectionStart.Year
TextBox1.Text = "Pâques est le " & FetesMobiles (Annee)



"alainL" a écrit :

Le sub suivant me donne la date de Paques. (et plus tard, celles des
autres
fetes)
--------------------------------------------------------------------------------------------------------------
Private Sub FetesMobiles(ByVal Annee As Integer)

Dim L(6) As Long, Lj As Long, Lm As Long
Dim paques As Date


......................
paques = (Lj & "/" & Lm & "/" & Annee)

End Sub
______________________________________________________

Je l'appelle ds un autre sub :
--------------------------------------------------------------------------------------------------------
Private Sub Rafraichir()
...
Dim Annee As Integer

Annee = MonthCalendar1.SelectionStart.Year
...
TextBox1.Text = "Pâques est le " & paques
___________________________________________________________

J'obtiens deux messages d'erreur:
1- Argument non spécifié pour le param "Annee" de Private Sub
FetesMobiles(Annee as integer)
2- Le nom "paques" n'est pas déclaré

A part ça, le progr tourne mais y a qd meme qqchose qui cloche !
Merci pour une correction .

alain







Patrice
Le #12226461
Les variables sont locales à la procédure et ne sont donc connues que dans
celle ci.

Je conseille de lire au moins une fois la spécification du langage pour
comprendre comment tout cela fonctionne (ici c'est la "portée des variables"
qui 'il faut chercher).

Par exemple :
http://msdn2.microsoft.com/fr-fr/library/90h82b3x(VS.80).aspx pour la
"visite guidée"...

(je ne vois malheureusement qu'une spéc en anglais, il me semblait pourtant
qu'il en existait une en français).

Pour aller vite, ce qu'on fait généralement est de passer des paramètres à
la sub pour que celle ci puisse calculer et modifier ces valeurs qui sont
alors disponibles dans le programme principal...

"alainL" 47547148$0$21144$
Merci. J'avais transféré cela (function) dans un sub FetesMobiles car je
pensais pouvoir y calculer aussi les autres dates (pentecote etc...) Je
n'arrive pas à récupérer Lj et Lm en partant de paques dans mon sub
principal. et ce sont surtout ces deux valeurs qui m'intéressent !

Alain

"PierreSlideM" message de groupe de discussion :

Il faut modifier le code ainsi

Private Function FetesMobiles(ByVal Annee As Integer)
Dim L(6) As Long, Lj As Long, Lm As Long
Dim paques As Date
paques = (Lj & "/" & Lm & "/" & Annee)
Return paques
End Function

et

Dim Annee As Integer
Annee = MonthCalendar1.SelectionStart.Year
TextBox1.Text = "Pâques est le " & FetesMobiles (Annee)



"alainL" a écrit :

Le sub suivant me donne la date de Paques. (et plus tard, celles des
autres
fetes)
--------------------------------------------------------------------------------------------------------------
Private Sub FetesMobiles(ByVal Annee As Integer)

Dim L(6) As Long, Lj As Long, Lm As Long
Dim paques As Date


......................
paques = (Lj & "/" & Lm & "/" & Annee)

End Sub
______________________________________________________

Je l'appelle ds un autre sub :
--------------------------------------------------------------------------------------------------------
Private Sub Rafraichir()
...
Dim Annee As Integer

Annee = MonthCalendar1.SelectionStart.Year
...
TextBox1.Text = "Pâques est le " & paques
___________________________________________________________

J'obtiens deux messages d'erreur:
1- Argument non spécifié pour le param "Annee" de Private Sub
FetesMobiles(Annee as integer)
2- Le nom "paques" n'est pas déclaré

A part ça, le progr tourne mais y a qd meme qqchose qui cloche !
Merci pour une correction .

alain









alainL
Le #12226411
"PierreSlideM" message de groupe de discussion :

Il faut modifier le code ainsi

Private Function FetesMobiles(ByVal Annee As Integer)
Dim L(6) As Long, Lj As Long, Lm As Long
Dim paques As Date
paques = (Lj & "/" & Lm & "/" & Annee)
Return paques
End Function

et

Dim Annee As Integer
Annee = MonthCalendar1.SelectionStart.Year
TextBox1.Text = "Pâques est le " & FetesMobiles (Annee)





Bonsoir, Je retrouve toujours la même erreur:
"Argument non spécifié pour le param "Annee" de Private Function
fPaques(Annee as Integer) as Date " dans ce bout de code:
_______________________________________________________________________________________________
Private Function fPaques(ByVal Annee As Integer) As Date

Dim L(6) As Long, Lj As Long, Lm As Long

L(1) = Annee Mod 19 : L(2) = Annee Mod 4 : L(3) = Annee Mod 7
L(4) = (19 * L(1) + 24) Mod 30
L(5) = ((2 * L(2)) + (4 * L(3)) + (6 * L(4)) + 5) Mod 7
L(6) = 21 + L(4) + L(5)

If L(6) > 31 Then
Lj = L(6) - 31
Lm = 4
Else
Lj = L(6)
Lm = 3
End If


fPaques = (Lj & "/" & Lm & "/" & Annee)

End Function
_________________________________________________________________________________
le sub appelant contient :

dim Annee as integer
Annee = MonthCalendar1.SelectionStart.Year
..........
TextBox1.Text = "Pâques sera le " & fPaques()
____________________________________________________________________________________________
Le pire est que ça marchait avant que j'essaie de remplacer Function par Sub
et maintenant que j'ai remis en l'état d'origine, ça ne va plus :-(((((((((
alainL
Le #12226401
"alainL" discussion : 4756e9d7$0$21145$



...........> Bonsoir, Je retrouve toujours la même erreur:
"Argument non spécifié pour le param "Annee" de Private Function
fPaques(Annee as Integer) as Date " dans ce bout de code:
_______________________________________________________________________________________________
Private Function fPaques(ByVal Annee As Integer) As Date



.........>
fPaques = (Lj & "/" & Lm & "/" & Annee)

End Function
_________________________________________________________________________________
le sub appelant contient :

dim Annee as integer
Annee = MonthCalendar1.SelectionStart.Year
..........
TextBox1.Text = "Pâques sera le " & fPaques()
____________________________________________________________________________________________



Je cherchais l'erreur ds le code de la fonction, elle était dans l'appel de
celle-ci 'fPaques(Annee)'

Bonne soirée
alain
Publicité
Poster une réponse
Anonyme