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 :

Afficher la valeur d'une variable stockée [XL-2010]


Sujet :

Macros et VBA Excel

  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2013
    Messages
    55
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2013
    Messages : 55
    Par défaut Afficher la valeur d'une variable stockée
    Bonjour,

    J'ai un problème, tout simple en sois, mais pour lequel je ne trouve pas de solution.

    j'ai dans Excel :

    Cellule A1 = 1
    Cellule A2 = 2

    j'ai dans vba :

    Variable1 = 111
    Variable2 = 222

    je souhaite pouvoir faire une boucle de type For :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    For i = 1 to 2
     
    if "Variable" & cells(i,1) > LimitSup then
    Msgbox "Erreur"
    end if
     
    Next
    Problème : " "Variable" & cells(i,1)" me renvoie "Variable1" puis "Variable2" et non la valeur de ces variables.... existe-t-il une solution pour récupérer la valeur de ces variables ?

    Pour la compréhension, j'ai simplifié le problème, mais dans l'idée j'ai un paquet de test à faire sur un paquet de variables....

    Je vous remercie d'avance

  2. #2
    Membre Expert Avatar de jerome.vaussenat
    Homme Profil pro
    Formateur Bureautique
    Inscrit en
    Janvier 2011
    Messages
    1 629
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Formateur Bureautique
    Secteur : Enseignement

    Informations forums :
    Inscription : Janvier 2011
    Messages : 1 629
    Par défaut
    Salut,

    Ta variable est entre guillemet. Donc ton code ne la reconnait pas en tant que variable mais en tant que texte.
    Il te faut :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if Variable & cells(i,1) > LimitSup then
    Msgbox "Erreur"
    end if
    Voir si je regarde ton message :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if Variable1 & cells(i,1) > LimitSup then
    Msgbox "Erreur"
    end if

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2013
    Messages
    55
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2013
    Messages : 55
    Par défaut
    Merci pour ta réponse.


    Cependant, ta solution me force a lire uniquement "variable1"

    disons que si j'ai 100 variables :
    variable1
    variable2
    ....
    variable100

    je voudrais lire toutes les variables à l'aide d'une boucle for

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    For i = 1 to 100
          msgbox ("variable" & i) ' de sorte à lire toutes mes variables qui ont un préfixe commun puis un compteur
    next
    Sauf que mon code "variable" & i me lis le nom de la variable voulu et non sa valeur

    Je sais pas si mon problème est plus clair comme ça

  4. #4
    Invité de passage
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2018
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2018
    Messages : 1
    Par défaut Si j'ai bien compris
    Salutation DevDev,

    Si j'ai bien compris ta demande se code devrait résoudre ton problème, les inputBox sont bien sur pas obligatoire et peuvent être remplacer.

    Tiens moi au courant de l'évolution de ton travail.

    Courage


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
     
    Sub x()
     
    Dim i, V1, V2, LimitSup As Integer
    V1 = InputBox("entrer V1:")
    V2 = InputBox("entrer V2:")
     
    LimitSup = 14
     
     
    For i = 1 To 2
        Select Case "V" & Cells(i, 1)
            Case "V1"
                If V1 > LimitSup Then
                    MsgBox ("Erreur")
                Else
                    MsgBox ("ok")
                End If
            Case "V2"
                If V2 > LimitSup Then
                    MsgBox ("Erreur")
                Else
                    MsgBox ("ok")
                End If
            Case Else
                    MsgBox ("se que tu veut")
        End Select
    Next i
     
     
    End Sub

  5. #5
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2013
    Messages
    55
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2013
    Messages : 55
    Par défaut
    Hello,


    Merci pour vos réponse.

    En effet, licornerousse ta réponse ferait le taf, mais c'est hyper lourd car j'ai mis 2 variables là, en réalité j'en ai beaucoup, ce qui rallongerai énormément ton code.

    en continuant de chercher, j'ai exploité une solution que je n'avais pas encore manipuler : les variables Tableau :

    j'ai donc pour résoudre mon problème un code de type :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Sub test()
     
    Dim tablo(2) As Single
     
    tablo(1) = 111
    tablo(2) = 222
     
    For i = 1 To 2
      Debug.Print tablo(i)
    Next
     
    End Sub
    exploitable très facilement pour mes X variables.

    Problème résolu !

  6. #6
    Expert confirmé
    Homme Profil pro
    Responsable des études
    Inscrit en
    Juillet 2014
    Messages
    2 676
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aude (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable des études
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2014
    Messages : 2 676
    Par défaut
    Citation Envoyé par Traputaca Voir le message
    Sauf que mon code "variable" & i me lis le nom de la variable voulu et non sa valeur
    Tu n'as pas bien lu la réponse de jerome.vaussenat
    ENLEVE les guillemets :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    For i = 1 to 100
          msgbox variable & i ' de sorte à lire toutes mes variables qui ont un préfixe commun puis un compteur
    next


    edit: erreur de ma part

  7. #7
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2013
    Messages
    55
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2013
    Messages : 55
    Par défaut
    Je ne suis pas d'accord ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Sub test()
     
    Variable1 = 111
    Variable2 = 222
     
    For i = 1 To 2
        MsgBox (variable & i)
    Next
     
    End Sub
    la msgbox me retour "1" puis "2" qui est la valeur de "i" car variable n'est pas défini

  8. #8
    Membre Expert Avatar de jerome.vaussenat
    Homme Profil pro
    Formateur Bureautique
    Inscrit en
    Janvier 2011
    Messages
    1 629
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Formateur Bureautique
    Secteur : Enseignement

    Informations forums :
    Inscription : Janvier 2011
    Messages : 1 629
    Par défaut
    Salut,

    Je ne sais pas pourquoi tu utilises 100 variables.

    Mais, peut être qu'une variable de type tableau serai adaptée à ton cas. Et dans ce cas, la mise en place d'une boucle serai simplissime.

    Vas voir par là :
    https://silkyroad.developpez.com/vba/tableaux/

  9. #9
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2013
    Messages
    55
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2013
    Messages : 55
    Par défaut
    Yessss c'est là dessus que je pars, je ne connaissais pas.

    merci !

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

Discussions similaires

  1. [D7] Afficher les valeurs d'une procédure stockée dans une table
    Par babacan dans le forum Bases de données
    Réponses: 1
    Dernier message: 22/06/2009, 08h10
  2. Mode debug : afficher les valeurs d'une variable
    Par zenux dans le forum Code::Blocks
    Réponses: 0
    Dernier message: 05/04/2008, 12h44
  3. Afficher la valeur d'une variable
    Par lvlaxime dans le forum VBScript
    Réponses: 2
    Dernier message: 10/11/2007, 22h26
  4. Afficher la valeur d'une variable
    Par larimoise dans le forum MATLAB
    Réponses: 4
    Dernier message: 29/01/2007, 12h33
  5. afficher la valeur d'une variable contenue dans une DB
    Par titoumimi dans le forum Langage
    Réponses: 3
    Dernier message: 28/02/2006, 17h00

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