IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Non affectation d'une variable de type string


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2014
    Messages
    58
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Mexique

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Juillet 2014
    Messages : 58
    Points : 35
    Points
    35
    Par défaut Non affectation d'une variable de type string
    Bonjour tout le monde,

    Voici mon problème. Je lance un UserForm dans lequel l'utilisateur indique son nom. Après avoir cliqué sur Valider (et vérifié que le champ n'est pas libre), le processus suivant se lance comme tel :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    confirmation(name)   'ou name correspond au nom de l'utilisateur (ayant peu d'utilisateurs, j'utilise des if imbriqués et je sais donc précisément de quel utilisateur il s'agit)
    En détail (processus situé dans une macro) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Dim realname As String  'variable globale
     
    Sub confirmation (ByRef name As String)
    realname = name
     
    'code...
     
    realname = ""
     
    End Sub
    Le problème est que lorsque je fais MsgBox de realname, juste avant et juste après son affectation, je récupère la même chose à savoir rien (ou si vous préférez "") !

    Je ne comprends pas la cause de cette erreur. J'espère que vous pourrez m'aider !

    Edit: Je remarque par ailleurs qu'en ajoutant un MsgBox name juste après le lancement de confirmation, je récupère "" ce qui signifie que le problème est déjà présent à ce moment là !

    Il semblerait qu'au lieu de prendre name = argument de confirmation, excel prenne name = ""

  2. #2
    Membre émérite Avatar de Thautheme
    Homme Profil pro
    salarié
    Inscrit en
    Août 2014
    Messages
    1 373
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : salarié

    Informations forums :
    Inscription : Août 2014
    Messages : 1 373
    Points : 2 594
    Points
    2 594
    Par défaut
    Bonsoir Forum, bonsoir le forum,

    C'est toujours difficile de comprendre un problème sans fichier exemple et encore plus avec uniquement des bouts de code... À première vue je dirais qu'il faut déclarer ta variable publique dans un module standard (pas dans une UserForm ni un composant onglet (Feui1(Feuil1) par exemple).
    Essaie, en première ligne du module Module1 (ou éventuellement juste en dessous de Option Explicit), de déclarer ta variable comme ça :

    et bien sûr, supprime l'ancienne déclaration Dim. Dès lors ta variable, une fois initialisée (dans l'UserForm) garde sa valeur et est accessible par n'importe quel composant de ton projet VBA. Une macro dans un module standard, une procédure événementielle d'un composant onglet, ThisWorkbook, etc. Pense quand même a la réinitialiser à la fin (name = "") pour éviter les mauvaises surprises.
    J'espère que ça va te permettre d'avancer dans ton projet. Sinon je te conseille de mettre un fichier exemple ou, au moins, le code en entier...

  3. #3
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 040
    Points
    20 040
    Par défaut
    bonsoir,

    ben avec ta ligne 8 :

    realname = ""Il n'y as rien d'étonnant au fait que ta variable realname soit vide ..

  4. #4
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2014
    Messages
    58
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Mexique

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Juillet 2014
    Messages : 58
    Points : 35
    Points
    35
    Par défaut
    realname = ""Il n'y as rien d'étonnant au fait que ta variable realname soit vide ..
    Mais cela est normal car cette ligne est placé à la toute fin de mon code, je vide cette variable. Mais normalement les MsgBox d'avant devrait me renvoyer la valeur.

    J'ai finalement trouvé mon erreur, une mauvaise utilisation de la fonction UCase !

    Merci à vous

  5. #5
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 040
    Points
    20 040
    Par défaut
    Bonsoir
    Citation Envoyé par forum2015 Voir le message
    Mais cela est normal car cette ligne est placé à la toute fin de mon code, je vide cette variable. Mais normalement les MsgBox d'avant devrait me renvoyer la valeur...
    a quoi bon passer cette variable par référence si c'est pour la 'vider' ensuite ?

    Je vois pas de Msgbox dans ton code .. cela nous aurez aider a t'aider !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. problème avec une variable de type string
    Par marsupilami34 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 14/06/2007, 14h53
  2. Réponses: 6
    Dernier message: 14/02/2007, 21h08
  3. Des " dans une variable de type String
    Par 4lkaline dans le forum Langage
    Réponses: 6
    Dernier message: 06/11/2006, 14h20
  4. convertir une variable de type String en Number
    Par lilbrother974 dans le forum Flash
    Réponses: 13
    Dernier message: 06/09/2006, 08h28
  5. Ajouter a une variable de type string, un entier
    Par Little-Freud dans le forum SL & STL
    Réponses: 12
    Dernier message: 05/03/2005, 19h33

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo