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, diminuer le nombre de boutons [XL-365]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre régulier
    Homme Profil pro
    Educateur sportif
    Inscrit en
    Avril 2019
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Educateur sportif
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2019
    Messages : 6
    Par défaut Userform, diminuer le nombre de boutons
    Bonsoir,
    Je suis en train de nettoyer un projet que j'avais réalisé il y a quelque temps.
    Avant de me lancer dans une aventure hasardeuse, j'aurais aimé avoir votre opinion.

    J'utilise un Userform qui couvre de nombreuses fonctions, parmi lesquelles, une qui consiste à répertorier plusieurs informations situées sur un tableau (en vu d'un debreaf).
    Le "problème", c'est qu'il y a pas mal de données à récupérer et jusqu'à présent la seule solution que j'ai trouvée consiste à octroyer un bouton pour chaque info recherchée.
    Les boutons apparaissent et disparaissent une fois qu'ils ont rempli leur role et tout fonctionne…
    Mais que c'est moche!

    J'aimerais donc remplacer ces boutons (7 ou 8 au total...) par une seule commande et je pensais donc utiliser un "SpinButton". Cependant n'ayant jamais utilisé cet outil, je me demande si c'est la solution la plus judicieuse.
    Auriez-vous un avis ou des conseils sur la question?


    Merci de votre attention.
    (Ci-joint un fichier très simplifié ainsi que le code qui l'accompagne)

    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
    Private Sub Recap_Click()
    Recap.Visible = False
    RecapA.Visible = True
    TextBox1 = "Temps max:" + " " + Range("D2").Text + " " + "(S?rie n?" + Range("D3").Text + ")"
    End Sub
    Private Sub RecapA_Click()
    RecapA.Visible = False
    RecapB.Visible = True
    TextBox1 = "Temps Min:" + " " + Range("E2").Text + " " + "(S?rie n?" + Range("E3").Text + ")"
    End Sub
    Private Sub RecapB_Click()
    RecapB.Visible = False
    RecapC.Visible = True
    TextBox1 = "Moyenne:" + " " + Range("F2").Text
    End Sub
    Private Sub RecapC_Click()
    RecapC.Visible = False
    RecapD.Visible = True
    TextBox1 = "LAP:" + " " + Range("G2").Text + " " + "(S?rie n?" + Range("G3").Text + ")"
    End Sub
    Private Sub RecapD_Click()
    RecapD.Visible = False
    RecapE.Visible = True
    TextBox1 = Range("J2").Text + " " + "mvt/" + " " + "25m" + " " + "(S?rie n?" + Range("G3").Text + ")"
    End Sub
    Private Sub RecapE_Click()
    RecapE.Visible = False
    RecapF.Visible = True
    TextBox1 = "Rendement:" + " " + Range("F2").Text + " " + "(S?rie n?" + Range("G3").Text + ")"
    End Sub
    Private Sub RecapF_Click()
    RecapF.Visible = False
    Recap.Visible = True
    TextBox1 = "Etc, etc..."
    End Sub
    Fichiers attachés Fichiers attachés

  2. #2
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par markotxe Voir le message
    Bonjour,

    Vous pourriez faire nettement mieux et plus facilement sans VBA.

    • Pour faire cela, j'utiliserais un simple onglet de présentation avec en haut une table des sujets abordés (comme une table des matières dans Word).
    • L'onglet de présentation est lié à une table des données. Une cellule associée à une liste de validation permet de choisir la personne souhaitée, les résultats s'affichent avec des formules RechercheV. De ce point de vue, votre table de données n'est pas structurée pour faire cela.
    • A partir du menu indiqué plus haut, des liens hypertextes permettent d'accéder aux différents sujets.
    • Un sujet occupe tout l'écran et contient un ou plusieurs graphes pour montrer le résultat / standard ou / progression. C'est d'ailleurs ces graphes que vos interlocuteurs retiendront.
    • Des liens hypertextes permettent de passer au sujet suivant, précédent ou de retourner au menu.
    • L'édition de l'onglet est daté et paramétré pour une édition avec les bons sauts de page.
    • La présentation est évolutive, mais pas plus de 5 diapos (pardon 5 sujets) sinon vos interlocuteurs risqueraient de dormir. En fonction de vos interlocuteurs, il n'est donc pas nécessaire de tout présenter en mettant vos différents sujets en mode plan vertical. C'est peut-être là que le VBA pourrait être utile pour réduire ou développer le mode plan en fonction de vos interlocuteurs.


    Bon courage.

  3. #3
    Membre régulier
    Homme Profil pro
    Educateur sportif
    Inscrit en
    Avril 2019
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Educateur sportif
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2019
    Messages : 6
    Par défaut
    Bonjour Éric,

    Oulah…, j'avoue avoir été pris totalement à contre-pied.
    Néanmoins sur le papier, votre proposition semble séduisante. Je m'aventure ici sur un terrain inconnu et beaucoup des termes que vous employez me sont totalement étrangers.
    Il me faudra donc digérer un peu tout ça avant...
    Question:
    Cette opération ne risque t'elle pas d'alourdir le fichier (déjà assez conséquent…)?

    Je laisse le sujet ouvert car il est fort possible que je puisse avoir besoin à nouveau de vos conseils.
    En vous remerciant pour votre disponibilité et conseils.

    Bien cordialement.

  4. #4
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par markotxe Voir le message
    Question:
    Cette opération ne risque t'elle pas d'alourdir le fichier (déjà assez conséquent…)?
    Désolé de vous avoir arrêté dans votre élan... Quant à l'alourdissement, quelle est la taille de votre fichier actuel ? Si c'est pour 8 items à représenter, c'est rien du tout. Vous avez aussi la possibilité d'analyser vos données dans un fichier distinct.

    Nb : Lorsque vous répondez, aucun mail n'est envoyé en retour. Sans doute parce que, sauf erreur de ma part, votre paramétrage des discussions n'est pas réglé sur "Instantané, par email". Vous risquez qu'on ne vous réponde pas.

  5. #5
    Membre régulier
    Homme Profil pro
    Educateur sportif
    Inscrit en
    Avril 2019
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Educateur sportif
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2019
    Messages : 6
    Par défaut
    Bonjour Éric,
    Nb : Lorsque vous répondez, aucun mail n'est envoyé en retour. Sans doute parce que, sauf erreur de ma part, votre paramétrage des discussions n'est pas réglé sur "Instantané, par email". Vous risquez qu'on ne vous réponde pas.
    En effet c'est ballot… J'ai fouillé un peu partout sans pouvoir mettre la main sur ce fameux paramétrage, je me risque donc à envoyer ce message sans qu'il ne soit relayé.

    C'est d'autant plus malheureux que j'ai trouvé une solution qui correspond à mes attentes.
    Bon, un peu à l'image de mon fichier c'est du bricolage et en jargon rugbystique on parlerai de "taper en touche" mais ça marche bien et les objectifs sont atteints.
    À savoir qu'à présent:
    . Je n'ai plus qu'un seul bouton qui gère toutes les infos (au lieu de 8)
    . Je gagne de la place (environ 27KB).
    . L'Userform garde toute sa fonctionnalité.


    La solution était toute simple...
    Chaque fois que qu'on click sur le bouton "récap" on incremente un texbox2 (dieu merci je n'en manque pas dans Userform original) en lui rajoutant +1.
    Il ne suffit plus que d'écrire If TextBox2=1 Then Texbox1=… , If Texbox2=2 then Texbox1=…, etc etc...


    Voici le code du fichier exemple.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Private Sub Recap_Click()
    TextBox2 = TextBox2.Value + 1
    If TextBox2 = 1 Then TextBox1 = "Temps max:" + " " + Range("D2").Text + " " + "(S?rie n?" + Range("D3").Text + ")"
    If TextBox2 = 2 Then TextBox1 = "Temps Min:" + " " + Range("E2").Text + " " + "(S?rie n?" + Range("E3").Text + ")"
    If TextBox2 = 3 Then TextBox1 = "Moyenne:" + " " + Range("F2").Text
    If TextBox2 = 4 Then TextBox1 = "LAP:" + " " + Range("G2").Text + " " + "(S?rie n?" + Range("G3").Text + ")"
    If TextBox2 = 5 Then TextBox1 = "Rendement:" + " " + Range("L2").Text + " " + "(S?rie n?" + Range("G3").Text + ")"
    If TextBox2 = 6 Then Call UserForm_initialize
    End Sub
     
     
    Private Sub UserForm_initialize()
    TextBox2 = "0"
    End Sub


    P.S: David, même si la solution que j'apporte ne correspond pas à votre suggestion, je garde tout de même sous le coude votre proposition.
    L'idée me semble toujours aussi séduisante et je pense bien l'exploiter en vu d'un debreaf plus pointu. Comme vous le faites remarquer j'exporterai les données sur un autre fichier (ce qui permettra de remanier les tableaux pour une rechercheV).

    À moins qu'il n'y ait d'autres propositions plus élégantes, je vais donc clore le sujet puisque les objectifs sont atteints.

    Merci encore pour votre disponibilité et expérience.
    Bonne Journée
    Fichiers attachés Fichiers attachés

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

Discussions similaires

  1. [XL-2002] Userform. Affichage permanent d'un bouton
    Par magninde dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 20/05/2009, 15h02
  2. Réponses: 2
    Dernier message: 16/06/2008, 11h42
  3. Comment diminuer le nombre de lignes de code
    Par mouaa dans le forum VBA Access
    Réponses: 14
    Dernier message: 31/01/2008, 20h51
  4. Réponses: 3
    Dernier message: 19/10/2007, 08h19
  5. Diminuer le nombre de chiffre après la virgule
    Par gadalla dans le forum Langage
    Réponses: 7
    Dernier message: 22/07/2007, 02h07

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