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 :

Bouton Option associé à du texte.


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau membre du Club
    Inscrit en
    Mai 2008
    Messages
    50
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 50
    Points : 33
    Points
    33
    Par défaut Bouton Option associé à du texte.
    Bonjour à tous, Bonjour à toi!
    J'utilise des Boutons d'ioptions dans un userform, avec 3 options dispo pour l'utilisateur.
    J'aimerais que lorsque l'utilisateur selectionne une des options et appuie sur Ok, sa reponse soit enregistré par excel.
    Par exemple
    l'utilisateur choisi Option1, alors excel enregistre reponse = "ARVFWD".
    Ensuite VBA va réutiliser reponse = "ARVFWD" pour renommer des fichiers etc...
    Mais mon pb est qu'il me renvoi que reponse= vide...

    Voici une partie du code en question(de l'userform):

    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
    Private Sub Forwards_Click()
    If Forwards = True Then
    reponse = "ARVFWD"
    Else
    End If
    End Sub
     
    Private Sub Options_Click()
    If Options = True Then
    reponse = "ARVALL-OPT"
    Else
    End If
    End Sub
     
    Private Sub Offres_Click()
    If Offres = True Then
    reponse = "ARVALL-OPT"
    Else
    End If
    End Sub
     
    Private Sub OK_MouseUp(ByVal Button As Integer, ByVal Shift As Integer, ByVal x As Single, ByVal Y As Single)
    UserForm1.Hide
    ouvrir_fichier
    End Sub
    Sub ouvrir_fichier()
     
    FichFin = ActiveWorkbook.Sheets(1).Cells(18, 12).Value
    'MsgBox prompt:=FichFin
     
    If reponse = "ARVALL-OPT" Then Call opt Else
     
    Workbooks.Open Filename:=Worksheets("1").Range("J12") & "\" & reponse & ".xls"
    Merci pour vos eclairages @+

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 51
    Points : 57
    Points
    57
    Par défaut
    Bonjour,

    Pas sûr d'avoir tout compris mais essaye :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Private reponse as string
    en début de ton module UF.

    et, sans rapport avec la question, réduits :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub Forwards_Click()
    If Forwards = True Then reponse = "ARVFWD"
    End Sub
    Cordialement

  3. #3
    Membre émérite
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    2 130
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2 130
    Points : 2 443
    Points
    2 443
    Par défaut
    Salut rsoul et le forum
    Le problème, tel que je le comprends renient à un problème de transmission de paramètre
    Comme tu ne déclares même pas tes variables, tu ne visualises pas la portée de celles-ci.
    une variable déclarée dans une macro s'initialise au lancement de cette macro, n'est visible que par cette macro, et disparaît à la fin de la macro.
    Si tu utilises le même nom de variables sur plusieurs macros différentes, chacune sera indépendante des autres.

    Celles qui sont déclarées en tête d'un module sont valable dans le module.
    (c'est pas tout à fait vrai, tu peux les rendre globales, mais c'est plus simple à comprendre) et elle ne sont initialisées, "supprimées" qu'avec le module (donc, tant que le classeur est ouvert ou l'USF chargé, elles restent à la dernière valeur qu'on leur a définie

    Donc, pour ton problème, 2 solutions :
    Soit tu déclares une variable en tête du module de l'USF (solution proposée par spitnolan) et tu peux traiter ta variable par toutes tes macros liées à l'USF.

    Soit tu testes tes boutons d'options dans la macro finale (eux, ils restent dans la position tant que tu ne décharges pas l'USF)
    Début macro
    tests des 3 boutons, et mise à jour de la variable
    masquage/déchargement de l'USF
    traitement de la variable
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    If Forwards = True Then
         reponse = "ARVFWD"
    Else
    End If
    ??? l'écriture de Else n'est obligatoire que si tu l'utilises.. La même chose en tant que feignant ;
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    If Forwards = True Then
         reponse = "ARVFWD"
         'autre instructions
    End If
    syntaxe utilisée quand tu as plusieurs instructions déclechées par le If (tu peux séparer par ":", mais c'est illisible et n'apporte rien. Comme tu n'as qu'une seule instruction, tu peux utiliser l'autre syntaxe :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If Forwards = True Then reponse = "ARVFWD"
    La déclaration obligatoire des variables te permet d'éviter les erreurs de frappe, toujours très difficiles à détecter, et réduit la place utilisée en RAM (pourvu que le type ne soit pas variant)
    A+

  4. #4
    Nouveau membre du Club
    Inscrit en
    Mai 2008
    Messages
    50
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 50
    Points : 33
    Points
    33
    Par défaut Parfait
    Une fois de plus Merci

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

Discussions similaires

  1. Recherche Multi-Critères et boutons options
    Par guenfood dans le forum Access
    Réponses: 1
    Dernier message: 04/06/2006, 13h00
  2. [VB5]Bouton option
    Par mpat dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 20/04/2006, 13h53
  3. Réponses: 4
    Dernier message: 30/03/2006, 03h29
  4. [VB]Désactivation de boutons options
    Par frevale dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 21/03/2006, 20h07
  5. bouton option ou case a ccocher
    Par zouille dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 20/12/2005, 21h10

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