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 :

nom d'un userform dans une variable


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 27
    Par défaut nom d'un userform dans une variable
    Bonjour,
    J'ai userform qui enregistre des configurations de couleurs pour d'autres userform.

    Avec des lignes de code, dans lesquelles le nom du formulaire appelant est écrit, aucun problème de mise à jour de la couleur de l'userform appelant après avoir quitté l'userform qui enregistre les configurations couleur.

    Il serait plus "propre" de mettre le nom du formulaire appelant,déjà stocké dans une cellule excel, dans une variable. J'ai trouvé sur ce site : VBA.UserForms.add(sVariable).show (où sVariable est une variable de type string). Ce code rappelle bien mon formulaire appelant, initialement déchargé, mais sans les couleurs et sans les données (listbox vide).

    J'ai cherché sur le net mais j'ai trouvé très peu de chose. Aussi je remercie tous ceux qui voudront bien m'aider

    Sylvie Bastien

  2. #2
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 13 173
    Billets dans le blog
    53
    Par défaut
    Bonjour Sylvie,
    Je n'ai peut-être pas compris ta question mais je n'ai aucun problème avec cette méthode.
    J'ai créé un UserForm avec un ListBox ainsi que deux couleurs (Caption du UserForm) et BackColor
    Avec la procédure ci-dessous écrite rapidement donc sans test sur Target, j'affiche bien le UserForm dont le nom est la valeur de la cellule (Target). Les couleurs sont bien là et la liste correctement alimentée.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
     UserForms.Add(Target.Value).Show
     Cancel = True
    End Sub
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  3. #3
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 84
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Par défaut
    Bonjour
    Pas bien compris non plus la question.
    Montre le code qui fait ceci, en nous précisant dans quel module de code il est placé :
    Avec des lignes de code, dans lesquelles le nom du formulaire appelant est écrit, aucun problème de mise à jour de la couleur de l'userform appelant après avoir quitté l'userform qui enregistre les configurations couleur.
    Cela nous "parlera" peut-être un peu plus

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 27
    Par défaut nom d'un userform dans une variable
    Merci à tous les deux,

    Philippe, j'essaye ta solution et je vous tiens informés

    Sylvie Bastien

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 27
    Par défaut nom d'un userform dans une variable
    Merci Philippe,

    J'ai testé ton code qui affiche bien la boite de dialogue quand je double-clique sur le nom d'une boite de dialogue contenu dans une cellule excel.

    Voici ce que j'ai dans mon application

    1) label de l'userform usf_bteChoix

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Private Sub Label6_Click()
    '---
    '   Intitulé appelant la boite couleur
    '---
        Unload usf_bteChoix
        usf_bteCouleur.Show
    End Sub
    2) bouton quitter de l'userform usf_bteCouleur : (userform qui possède les boutons "Ajouter", "Modifier", "Supprimer" et "Quitter")

    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
    Private Sub CommandButton4_Click()
    '---
    '   Bouton "QUITTER" de la boite couleur
    '---
        'fermeture de la boite couleur
        Unload usf_bteCouleur
     
        'témoin de boite appelante
        monTexte = Worksheets("Renseignements").Cells(2, 15).Value
     
        'affichage de la boite de dialogue selon le témoin
        Select Case monTexte
            Case Is = "usf_bteChoix"
                usf_bteChoix.Show
     
            Case Is = "usf_btePersonnels"
                usf_btePersonnels.Show
        End Select
    '---
    '   décharger les variables utilisées
    '---
        Set monTexte = Nothing
    End Sub
    Certes, avec select case..., les boites de dialogue sont chargées avec leurs couleurs et leurs données.

    VBA.UserForms.add(monTexte).show ne semble pas passer par Private Sub UserForm_Initialize() de la boite contenue dans la variable.

    Philippe et unparia, si vous avez une idée... je suis preneuse

  6. #6
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 84
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Par défaut
    Ce code ne permets pas de voir quel est le problème.
    J'y note par ailleurs une aberration évidente entre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    monTexte = Worksheets("Renseignements").Cells(2, 15).Value
    et
    commence s'il te plait par travailler en Option Explicit, ce qui t'obligera à typer ta variable montexte
    Lance et tu la verras, cette aberration ...

    Et enfin : si des instructions sont à exécuter pour modifier des contrôles dans un userform, elles ne sont pas à mettre dans son évènement Initialize, mais dans son évènement Activate.

Discussions similaires

  1. [XL-2007] Nom d un userform dans une variable
    Par chrisaccess dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 01/02/2016, 08h49
  2. Récupérer le nom d'un fichier dans une variable
    Par JeanDan dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 07/07/2009, 18h12
  3. Requète SQL avec nom de table contenu dans une variable
    Par samoussa dans le forum Langage SQL
    Réponses: 2
    Dernier message: 13/05/2009, 13h58
  4. Nom d'un control dans une variable
    Par cheverny dans le forum ASP.NET
    Réponses: 8
    Dernier message: 19/03/2009, 15h59
  5. affectation d'un nom de classeur ouvert dans une variable
    Par nolive915 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 29/09/2006, 10h55

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