Variable public dans un module [Résolu]

pcpunch 1244 Messages postés mardi 7 mai 2002Date d'inscription 10 février 2016 Dernière intervention - 1 juin 2015 à 19:09 - Dernière réponse : pcpunch 1244 Messages postés mardi 7 mai 2002Date d'inscription 10 février 2016 Dernière intervention
- 2 juin 2015 à 19:15
Bonjour,

je cherche a déclarer une variable dans un module, et dans une fonction me servir de cette variable.
Apparemment ma variable ne se met pas a jour ; un petit exemple pour etre plus clair :

Module Module1
    Public OldStr As String

    Public Function test(ByVal Str As String) As String

        If OldStr = Str Then
            Return "Chaine identique"
            OldStr = Str
        Else
            Return "Chaine differente"
            OldStr = Str
        End If

    End Function


End Module

Lorsque j exécute :

MsgBox(test("aaa"))




Le retour est toujours "chaine différente" la variable oldstr ne reçoit pas la valeur de str ? normalement au bout de la seconde passe elle devrait être identique ?

Ou est l 'erreur ?
Afficher la suite 

Votre réponse

11 réponses

Meilleure réponse
NHenry 14278 Messages postés vendredi 14 mars 2003Date d'inscriptionModérateurStatut 21 octobre 2018 Dernière intervention - 1 juin 2015 à 19:16
1
Merci
Return retourne le résultat et sort de la fonction.
En pas à pas, tu l'aurais vu tout de suite.

Merci NHenry 1

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 93 internautes ce mois-ci

Très juste !!! merci beaucoup
Commenter la réponse de NHenry
ucfoutu 18039 Messages postés lundi 7 décembre 2009Date d'inscriptionModérateurStatut 11 avril 2018 Dernière intervention - 1 juin 2015 à 19:15
0
Merci
Bonjour,
La déclaration d'un variable ne concerne que sa portée et son type.
Où et comment l'as-tu initialisée ?
Initialisée ou non initialisée. Telle est la question !

J' "adore" au passage que l'on se foule le poignet pour dire que toto = toto (relis le code que tu as écrit, s'il te plait !)
Commenter la réponse de ucfoutu
0
Merci
non toto n est pas égale a toto justement ?????

En gros je cherche a faire un fonction qui me renvoie une valeur si elle n est pas identique a la précédente ?

la c est un code de test
Premier clic ça me renvoie pas identique et je cherche a faire qu au second ça me met identique !!

Dsl mais je code en amateur ; et en Vb6 ca fonctionner ! enfin si ma memoire est bonne
Commenter la réponse de pcpunch
0
Merci
"Où et comment l'as-tu initialisée ?
Initialisée ou non initialisée. Telle est la question ! "

tu entend quoi par initialisé ?
Public OldStr As String
elle est déclare au niveau du module ?
Commenter la réponse de pcpunch
ucfoutu 18039 Messages postés lundi 7 décembre 2009Date d'inscriptionModérateurStatut 11 avril 2018 Dernière intervention - Modifié par ucfoutu le 1/06/2015 à 21:17
0
Merci
C'est une plaisanterie ?
J'espère que oui, car sinon ...
Regarde ce que tu as écrit (bis répetita :
     If OldStr = Str Then  ' ====>>> si titi = toto
Return "Chaine identique"
OldStr = Str ' =====>>> alors titi = toto !!!!
Else ' =====>>> sinon
Return "Chaine differente"
OldStr = Str ' ====>>> titi = toto !!!
End If


Hé bé !!!! Quelle splendide démonstration de logique ! Acec ou sans informatique/code ...
Et tu ne sais pas ce que veut dire initialiser une variable ? Vraiment ? ===>> je trouve assez surprenant et bien au-delà de mes forces et de ma "religion" d'avoir à t'expliquer ce que veut dire cela....
Bonne chance.

________________________
Nul ne saurait valablement coder ce qu'il ne saurait exposer clairement.
Commenter la réponse de ucfoutu
pcpunch 1244 Messages postés mardi 7 mai 2002Date d'inscription 10 février 2016 Dernière intervention - 1 juin 2015 à 21:18
0
Merci
Héé béééé qué malheur !!! comme on dit dans ma région !!
Oui comme je le disais je débute ; mais je ne te demande rien.

A l'avenir ne repond pas a un post si le sujet te semble bien trop bas du chapeau et loin de ton niveau qui doit être proche de l'excellence !!!

Merci a NHenry qui a parfaitement compris ma question (maladroitement posé certes !!) et a répondu a mon interrogation.
Commenter la réponse de pcpunch
NHenry 14278 Messages postés vendredi 14 mars 2003Date d'inscriptionModérateurStatut 21 octobre 2018 Dernière intervention - 1 juin 2015 à 21:19
0
Merci
L'initialisation par défaut suffit, je pense pour le premier tout.
Ensuite, le problème vient surtout que "Return" sort de la fonction et donc n'exécute pas l'assignation qui suit.
Commenter la réponse de NHenry
pcpunch 1244 Messages postés mardi 7 mai 2002Date d'inscription 10 février 2016 Dernière intervention - 1 juin 2015 à 21:21
0
Merci
Oui tout a fait , une grosse erreur de débutant et de logique (pour le return)
Mais bon j'apprends :) merci encore.
Commenter la réponse de pcpunch
ucfoutu 18039 Messages postés lundi 7 décembre 2009Date d'inscriptionModérateurStatut 11 avril 2018 Dernière intervention - 1 juin 2015 à 21:41
0
Merci

toto = "identique"
If oldsgtr <> str then
toto = "differente"
OldStr = Str
End If
return "chaîne " + toto
Commenter la réponse de ucfoutu
pcpunch 1244 Messages postés mardi 7 mai 2002Date d'inscription 10 février 2016 Dernière intervention - Modifié par pcpunch le 2/06/2015 à 19:19
0
Merci
Module Module1
    Public OldStr As String

    Public Function test(ByVal Str As String) As String

        If OldStr = Str Then
            
            Return "Chaine identique"
        Else
            
            OldStr = Str
            Return "Chaine differente"
        End If

    End Function


La fonction test "aaa" renvoie differente lors de la premiere passe et identique lors de la seconde.

pas grand intérêt ici, mais c'est pour que ma fonction qui est lancer toute les x secondes ne revoit quelque chose que si la valeur est changer !

l'urgent est fait, l'impossible est en cours, pour les miracles prévoir un délai ...
Commenter la réponse de pcpunch

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.