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 :

Userform - Boutons d'Options - association cellules


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Janvier 2013
    Messages
    661
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2013
    Messages : 661
    Par défaut Userform - Boutons d'Options - association cellules
    Bonjour,

    Un tableau A1:B5
    Colonne A : des dates (issues de formules)
    Colonne B : des numéros (liés aux dates de la colonne A)

    Objectif : récupérer le numéro dans la macro quand l'utilisateur sélectionne l'option correspondant à la date.
    Moyen : UF Contrôle Bouton d'Option
    Contraintes : les dates (et donc les numéros) sont dynamiques et doivent donc s'actualiser dans le UF

    Est-il possible :
    1 - Que le libellé du bouton d'Option récupère la valeur d'une cellule (date) ? (Si j'associe une cellule à la propriété Caption du UF ça ne fonctionne pas)
    2 - D'utiliser la fonction Offset pour récupérer le numéro correspondant à la date sélectionnées ? (l'utilisateur ne voit que les dates)

    En vous remerciant par avance pour vos lumières,
    Cordialement,
    jp

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    205
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 205
    Par défaut
    Bonjour,
    De manière générale les propriétés ne font pas d'action. Le fait d'être blond ne t'aide pas à te coiffer... De même que le fait d'être rouge n'aide pas ta voiture à rouler.
    Par contre les évènements et les actions de l'utilisateur peuvent aider. Le fait de prendre un peigne ou d'acheter de l'essence par exemple.

    Tu ne peux pas associer une cellule à une propriété par contre les évènements sont fait pour ça.
    Das l'évènement Initialize du UserForm tu peux décider que le caption de ton Button aura la valeur (texte) d'une cellule.
    Tu peux décider qu'au moment ou tu vas cliquer sur le bouton sa caption va changer et prendra une autre valeur.
    A+

  3. #3
    Membre Expert Avatar de Transitoire
    Homme Profil pro
    Auditeur informatique
    Inscrit en
    Décembre 2017
    Messages
    733
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Auditeur informatique

    Informations forums :
    Inscription : Décembre 2017
    Messages : 733
    Par défaut
    Bonjour, Chez vous ça ne marche pas? Chez moi ça marche voir pièce jointe. par ailleurs, on peut entrer cette valeur autrement qu'avec Initialise.
    Attention de rajouter la parentalité de la feuille et du UserForm(ce que je n'ai pas fait sur l'exemple ci-dessous.)

    Nom : Capture d’écran 2020-08-01 à 14.13.08.png
Affichages : 572
Taille : 57,1 Ko


    Cordialement

  4. #4
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Janvier 2013
    Messages
    661
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2013
    Messages : 661
    Par défaut
    Bonjour,

    Merci, j'ai tiré partie de ces explications (finalement, je n'ai plus besoin de recourir à Offset)

    J'imagine qu'il est possible de nettement simplifier ce code (hormis pour la déclaration des variables que je préfère en colonne ) ?!

    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
    34
    35
    36
    Option Explicit
    Private Sub Bouton_Annulation_Click()
        Unload UserForm1
    End Sub
    Private Sub Bouton_OK_Click()
    Dim Option1 As Integer
    Dim Option2 As Integer
    Dim Option3 As Integer
    Dim Option4 As Integer
    Dim Option5 As Integer
     
        Option1 = Range("ABY7")
        Option2 = Range("ABY8")
        Option3 = Range("ABY9")
        Option4 = Range("ABY10")
        Option5 = Range("ABY11")
     
        If OptionButton1 Then Col_Déb_Impress = Option1
        If OptionButton2 Then Col_Déb_Impress = Option2
        If OptionButton3 Then Col_Déb_Impress = Option3
        If OptionButton4 Then Col_Déb_Impress = Option4
        If OptionButton5 Then Col_Déb_Impress = Option5
     
        Unload UserForm1
        Call CreerPDF
     
        Col_Déb_Impress = Option1 '?? (si clic sur Ok sans avoir sélectionné une Option, je veux que ça soit celle-ci par défaut
     
    End Sub
    Private Sub Userform_Initialize()
        OptionButton1.Caption = Range("ABX7")
        OptionButton2.Caption = Range("ABX8")
        OptionButton3.Caption = Range("ABX9")
        OptionButton4.Caption = Range("ABX10")
        OptionButton5.Caption = Range("ABX11")
    End Sub
    PS :
    1. Col_Déb_Impress est déclarée comme Variable Public (dans un autre module)
    2. J'ai un doute sur la réinitialisation sur l'Option1 (cf. plus haut dans le code). Sans doute une propriété à mettre à True ?!
    3. Transitoire, tu dis
      on peut entrer cette valeur autrement qu'avec Initialize
      , mais c'est bien ce que tu proposes ici ?!


    Cordialement,
    jp

  5. #5
    Membre Expert Avatar de Transitoire
    Homme Profil pro
    Auditeur informatique
    Inscrit en
    Décembre 2017
    Messages
    733
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Auditeur informatique

    Informations forums :
    Inscription : Décembre 2017
    Messages : 733
    Par défaut
    J'ai simplement donné un exemple avec initialize du UserForm.
    Nous pourrons avoir une Macro appelé Test sur un module normal et qui serait lancée par un événement quelconque et qui modifierais le Caption
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Sub Test()
    UserForm1.OptionButton1.caption = Worksheets("Feuil1").range("B3").text 
    End Sub
    Cordialement

  6. #6
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Janvier 2013
    Messages
    661
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2013
    Messages : 661
    Par défaut
    Bonsoir,

    Certes mais cela optimise-t-il le code ? A mon niveau cela ne me paraît pas flagrant.

    Cordialement,
    jp

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

Discussions similaires

  1. [XL-2016] repérer le bouton d'option activé dans un userform
    Par koeuf dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 26/04/2020, 13h54
  2. Userform avec boutons d'options
    Par goninph dans le forum Macros et VBA Excel
    Réponses: 25
    Dernier message: 23/08/2019, 22h19
  3. Sélectionner Bouton d'option avec un userform
    Par steeeve34 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 10/04/2012, 21h42
  4. [WD-2003] UserForm VBA-Bouton d'option-Garder dernier click
    Par Francine222 dans le forum VBA Word
    Réponses: 5
    Dernier message: 02/09/2009, 18h50
  5. Bouton Option associé à du texte.
    Par rsoul dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 17/06/2008, 10h37

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