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 :

Affecter un entier à une variable dans un formulaire


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2015
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2015
    Messages : 2
    Par défaut Affecter un entier à une variable dans un formulaire
    Bonjour à tous,

    Je débute en VBA, et je bloque dans le code d'un formulaire:

    Je souhaite réaliser un formulaire qui me permettrait via des boutons d'option, d'affecter une variable de type Long à une variable publique (ici absisse, déclarée au tout début de mon module) en fonction du choix de l'utilisateur. J'ai réalisé le code ci-dessous, mais j'ai l'impression que ma boucle n'est pas du tout prise en compte lors de la simulation, car ma variable est toujours nulle lorsque je ferme le formulaire (Ok ou annuler).

    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
    32
    33
    Option Explicit
     
    Private Sub absisses_Option(Absisse)
     
    Select Case xlOn
     
    Case .OptionButtons(1).Value
    Module1.Absisse.Value = 1
     
    Case .OptionButtons(2).Value
    Module1.Absisse.Value = 2
     
    Case .OptionButtons(3).Value
    Module1.Absisse.Value = 3
     
    Case .OptionButtons(4).Value
    Module1.Absisse.Value = 4
     
    End Select
    End Sub
     
     
     
    Private Sub Ok_Click()
    Custom_Graphique.Hide
    End Sub
     
    Private Sub Cancel_Click()
    Call Graphique.Reset
    End Sub
     
    Private Sub UserForm_Click()
    End Sub
    C'est peut être tout bête, mais à l'aiiiide

    Merci d'avance!

  2. #2
    Membre éclairé
    Avatar de tamtam64
    Homme Profil pro
    stagiaire developpement vba
    Inscrit en
    Mai 2012
    Messages
    456
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : stagiaire developpement vba
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2012
    Messages : 456
    Billets dans le blog
    17
    Par défaut Pas de boucle a l'orizon lol
    Tout bete oui probablement qu'il n'y a pas de boucle lol , je ne vois pas ta boucle en fait
    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
    32
    33
    Option Explicit
     
    Private Sub absisses_Option(Absisse)
     
    Select Case xlOn
     
    Case .OptionButtons(1).Value
    Module1.Absisse.Value = 1
     
    Case .OptionButtons(2).Value
    Module1.Absisse.Value = 2
     
    Case .OptionButtons(3).Value
    Module1.Absisse.Value = 3
     
    Case .OptionButtons(4).Value
    Module1.Absisse.Value = 4
     
    End Select
    End Sub
     
     
     
    Private Sub Ok_Click()
    Custom_Graphique.Hide
    End Sub
     
    Private Sub Cancel_Click()
    Call Graphique.Reset
    End Sub
     
    Private Sub UserForm_Click()
    End Sub

  3. #3
    Nouveau candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2015
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2015
    Messages : 2
    Par défaut
    Oui désolé, je ne voulais pas dire boucle, mais plutôt macro... Je débute :s Enfin le soucis c'est que ma variable ne prend pas les valeurs que je veux lui affecter via le formulaire.

  4. #4
    Expert confirmé

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 169
    Billets dans le blog
    5
    Par défaut
    Bonjour,

    on a du mal à comprendre ce que tu fais, tu parles d'un userform mais ton code semble provenir d'un module standard (même si c'est pas le cas)

    à quel moment doit s'effectuer ce traitement ? quand on sélectionne un optionbutton ou quand on appuie sur un bouton ?

    si c'est sur un click de bouton :

    1) Déclarer en début d'un module standard
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Public Abscisse as Long
    2) Dans ton userform et en partant du principe :

    - que tes optionbuttons s'appellent OptionButtonX (où X correspond à la valeur voulue pour l'abscisse, entre 1 et 9)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Private Sub CommandButton1_Click()
    Dim Ctrl As Control
     
    For Each Ctrl In Me.Controls
        If Ctrl And TypeOf Ctrl Is msforms.OptionButton Then
            Abscisse = Right(Ctrl.Name, 1)
            MsgBox Abscisse
            Exit For
        End If
    Next Ctrl
     
    End Sub

    si tes chiffres vont au delà de 9, ou ne sont pas des chiffres entiers :

    1) Déclarer ta variable Abscisse de la même manière, mais en type Double

    2) Utiliser la propriété "Tag" de chaque optionbutton pour y mettre la valeur voulue pour ton abscisse

    modifier légèrement le code du bouton pour obtenir le .Tag plutôt que le .Name retravaillé



    Voilà deux méthodes, y'en a pleins d'autres... y compris des méthodes qui affectent une valeur à abscisse lors de la sélection directe de l'optionbutton (voir les évènements possibles pour ce controle)

Discussions similaires

  1. passage d'une variable dans un formulaire
    Par porco dans le forum Langage
    Réponses: 1
    Dernier message: 14/04/2007, 13h08
  2. Renvoi d'une variable dans un formulaire
    Par boisp dans le forum Access
    Réponses: 4
    Dernier message: 01/12/2006, 18h23
  3. integrer une variable dans un formulaire html
    Par oops! dans le forum Langage
    Réponses: 3
    Dernier message: 08/09/2006, 19h48
  4. integrer une variable dans un formulaire html
    Par oops! dans le forum Langage
    Réponses: 3
    Dernier message: 08/09/2006, 19h48
  5. Réponses: 7
    Dernier message: 02/08/2006, 15h51

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