Recuperation d'une valeur d'une function dans une sub [Résolu]

Signaler
Messages postés
71
Date d'inscription
jeudi 21 février 2008
Statut
Membre
Dernière intervention
8 décembre 2011
-
Messages postés
21
Date d'inscription
vendredi 3 janvier 2003
Statut
Membre
Dernière intervention
19 juin 2008
-
salut à tous
je veux codifier les mois de l'année pour créer une reférence
j'ai une sub principale  puis j'appel cette fonction qui fonctionne très bien mais mon problème c'est que je n'arrive pas a recuperer  la lettre du code dans ma sub principale

Function codification()
Dim A , B , C.....
mois = (Format$(Date, "mm"))
Select Case mois
'Debug.Print (Format$(Date, "mm"))
Case 1
code = A 'janvier
Case 2
code = B 'fevrier
Case 3
code = C 'mars
Case 4
code = D 'avril
Case 5
code = E 'mai
Case 6
code = F  'juin
Debug.Print code
Case 7
code = G 'juillet
Case 8
code = H 'aout
Case 9
code = J 'septembre
Case 10
code = K 'octobre
Case 11
code = L 'novembre
Case 12
code = M 'decembre
End Select
end function

sub principale()
textbox1.text = code
end sub
 
voila j'espère avoir été claire merci

13 réponses

Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
37
mois = (Format$(Date, "mm"))



mois va recevoir une CHAINE. en juin on est en "06", toi tu testes 6 ...

Function MyMonthLetter() As String
    Dim m As Variant
    m = Array("A", "B", "C", "D", "E", "F", "G", "H", "J", "K", "L", "M")
    MyMonthLetter = CStr(m(Month(Date) - 1))
End Function

Sub principale()
    textbox1.Text = MyMonthLetter()
End Sub

<hr size="2" width="100%" />Prenez un instant pour répondre à [infomsg_SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp
Messages postés
15814
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
107
Salut,

Au lieu de passer par la variable code, fais ceci :

Function codification()
Dim A , B , C.....
mois = (Format$(Date, "mm"))
Select Case mois
'Debug.Print (Format$(Date, "mm"))
Case 1
codification = A 'janvier
Case 2
codification = B 'fevrier
Case 3
codification = C 'mars
Case 4
codification = D 'avril
Case 5
codification = E 'mai
Case 6
codification = F  'juin
Debug.Print code
Case 7
codification = G 'juillet
Case 8
codification = H 'aout
Case 9
codification = J 'septembre
Case 10
codification = K 'octobre
Case 11
codification = L 'novembre
Case 12
codification = M 'decembre
End Select
end function

sub principale()
textbox1.text = codification()
end sub
______________________________________
DarK Sidious
Messages postés
71
Date d'inscription
jeudi 21 février 2008
Statut
Membre
Dernière intervention
8 décembre 2011

desolé mais sa ne fonctionne toujour pas je n'arrive pas a recuperer la lettre
sa fait la meme chose qu' avant
Messages postés
71
Date d'inscription
jeudi 21 février 2008
Statut
Membre
Dernière intervention
8 décembre 2011

tu metterai quoi comme dimension pour A B C .....
et pour code ou codification
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
37
salut,
si A B C.... sont dans la fonction, tous tes résultats seront de 0

ou alors je n'ai pas compris ce que tu voulais faire...

Q : [doc/faq.aspx#vb_varpublic Code : Comment conserver le contenu d'une
variable entre différents formulaires]

<hr size="2" width="100%" />Prenez un instant pour répondre à [infomsg_SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp
Messages postés
71
Date d'inscription
jeudi 21 février 2008
Statut
Membre
Dernière intervention
8 décembre 2011

oui ils sont = à 0 mais ça depend de la dimension que je mets
Messages postés
21
Date d'inscription
vendredi 3 janvier 2003
Statut
Membre
Dernière intervention
19 juin 2008

Pour que ta fonction prenne en compte tes variables A,B,C.., il faut que tu les déclarent ailleurs que dans ta fonction et les rendrent public.
Si elles sont déclarées dans la fonction, comme c'est le cas ici, elle deviennent local et, dans ce cas là elle seront toujours vides car à aucun moment tu ne les a affectées.
Messages postés
71
Date d'inscription
jeudi 21 février 2008
Statut
Membre
Dernière intervention
8 décembre 2011

en faite je donner une lettre en fonction du mois du pc
exemple pour janvier = A
Puis apres incorporer la Lettre dans une textbox pour avoir une reférence
Messages postés
71
Date d'inscription
jeudi 21 février 2008
Statut
Membre
Dernière intervention
8 décembre 2011

j'ai laissé tomber la fonction et j'ai tout mis dans ma sub principale mais sa ne fonctionne toujour pas
qu'est que vous metteriez pour les dim de A B C
et de code
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
37
mais si tu veux mettre une lettre, mets une lettre ! pas uen variable lettre vide !!

dim hello
msgbox hello
c'est logique?

dim lettre as string
lettre = "hello"
msgbox lettre

++
<hr size="2" width="100%" />Prenez un instant pour répondre à [infomsg_SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp
Messages postés
71
Date d'inscription
jeudi 21 février 2008
Statut
Membre
Dernière intervention
8 décembre 2011

j'ai deja essayé sans variable pour les lettres et sa ne marche pas
Messages postés
71
Date d'inscription
jeudi 21 février 2008
Statut
Membre
Dernière intervention
8 décembre 2011

merci sa fonction nickel
a++
Messages postés
21
Date d'inscription
vendredi 3 janvier 2003
Statut
Membre
Dernière intervention
19 juin 2008

Si j'ai bien compris, tu veux donner une lettre à la place des mois. Si ces lettre sont de "A" jusqu'à "M", il n'y a qu'une solution:
sub principale()
textbox1.text = Chr(64 + Format$(Date, "mm")
end sub
Attention, je vois que le mois de septembre a sauté d'une lettre ("J" à la place de "I"), si c'est volontaire, il faut le prendre en compte.