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 :

Donner dynamiquement un nom à un bouton de formulaire [XL-2016]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Homme Profil pro
    Retraité
    Inscrit en
    Juillet 2017
    Messages
    1 288
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Juillet 2017
    Messages : 1 288
    Par défaut Donner dynamiquement un nom à un bouton de formulaire
    Bonjour,

    je voudrai modifier dynamiquement par une macro le libellé affiché sur un bouton de formulaire en fonction d'une valeur (identifiant de la personne qui utilise) au moment de l'affichage de la feuille
    Le bouton pointe sur la même macro mais le traitement est différent suivant les autorisations.
    Je voudrai mettre soit "Transfert" soit "Récupération"

    Si ce n'est pas possible je peux toujours créer 2 boutons dans la feuille Excel et supprimer dans la macro qui affiche la feuille celui qui ne correspond pas à la valeur, mais je trouve plus propre de n'avoir qu'un bouton.

    merci si vous avez une solution

  2. #2
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    3 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 3 453
    Par défaut
    Bonjour,

    Une piste :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    Private Sub Worksheet_Activate()
     
        Dim S As Shape
     
        Set S = ActiveSheet.Shapes("Bouton 1")
        S.TextFrame.Characters.Text = Environ("UserName")
     
    End Sub

  3. #3
    Membre éprouvé
    Homme Profil pro
    Retraité
    Inscrit en
    Juillet 2017
    Messages
    1 288
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Juillet 2017
    Messages : 1 288
    Par défaut
    bonjour,

    j'ai testé :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Dim S As Shape    
     
    Set S = Sheets("Modele").Shapes("Parchemin : horizontal 1") 
    S.TextFrame.Characters.Text = Environ("Récupération des données")
    Le texte d'origine n'est pas modifié sur le bouton "Parchemin : horizontal 1" de la feuille "Modele"

  4. #4
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    3 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 3 453
    Par défaut
    Bonjour,

    Environ() est une fonction qui attend soit un argument de type String soit un argument de type Integer et retourne une chaîne dont voici un extrait de l'aide :
    Si l'argument envstring est introuvable dans la table d'environnement, une chaîne de longueur nulle ("") est renvoyée. Dans le cas contraire, Environ renvoie le texte associé à l'argument envstring, à savoir le texte de la table d'environnement suivant le signe égal (=) pour cette variable d'environnement.
    donc quand dans cette ligne de code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    S.TextFrame.Characters.Text = Environ("UserName")
    j'indique en argument "UserName", ce n'est pas un hasard, c'est pour retourner le nom de l'utilisateur car ta question était :
    en fonction d'une valeur (identifiant de la personne qui utilise)
    avec un argument de ce type :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Environ("Récupération des données")
    la valeur retournée par la fonction sera "" (voir la partie mise en gras de l'extrait d'aide !
    Si tu veux qu'il y ai juste marqué "Récupération des données" alors c'est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    S.TextFrame.Characters.Text = "Récupération des données"

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

Discussions similaires

  1. Affecter une macro à un bouton de formulaire créé dynamiquement
    Par yelem dans le forum Macros et VBA Excel
    Réponses: 12
    Dernier message: 31/07/2018, 22h23
  2. utiliser nom de boutons créés dynamiquement
    Par Daboliu dans le forum VB.NET
    Réponses: 11
    Dernier message: 12/08/2010, 13h33
  3. Réponses: 4
    Dernier message: 18/03/2009, 14h04
  4. Réponses: 1
    Dernier message: 15/09/2005, 11h59
  5. [VB.Net] Créer dynamiquement un nom de variable
    Par chuck_m dans le forum ASP.NET
    Réponses: 5
    Dernier message: 20/07/2005, 15h08

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