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 userform variable


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    161
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 161
    Par défaut Nom userform variable
    Bonjour à tous,
    j'aimerais arriver a faire ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    'laform est une userform
    laform = "Form_achats"
     
    For Each ct In laform.Controls
        If ct.Name Like "ListBox*" Then
        ct.Clear
        End If
    Next
    VBA.UserForms.Add(laform).Repaint
    j'ai cherché et trouvé ça mais ça ne fonctionne pas
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    For Each ct In VBA.UserForms.Add(laform).Controls
    et aussi avec Callbyname mai c'est encore un échec!

    si quelqu'un a une solution, et ben c'est cool?

  2. #2
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    Citation Envoyé par spookyz Voir le message
    Bonjour à tous,
    j'aimerais arriver a faire ça
    ...
    Bonjour,

    et bien si tu exécute ton code il doit bien faire ça .... ! ( la seule description que l'on as de "ça" c'est ton code .. donc la réaction correspond bien à ta description ..)

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    161
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 161
    Par défaut
    Effectivement c'est pas très clair!
    ce que j'essaie de faire avec ce code
    c'est de partager une macro qui se trouve dans un module, sur plusieurs userforms qui ont la même architecture
    pour éviter de reproduire le même code dans chaque userforms
    donc je voudrais pouvoir si c'est possible,agir sur le userforms dont le nom serait passer à la macro par une variable
    dans l'exemple que je donne "laform"
    j'èspere que c'est plus clair

  4. #4
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    non, montre nous un exemple de code ... que tu voudrais rendre utilisable avec plusieurs userform..

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    161
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 161
    Par défaut
    voila un exemple de ce que je cherche a faire.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Sub effaceliste22(laform, lafeuille)
    With Sheets(lafeuille)
    .Range(.Cells(3, 1), .Cells(100, 22)).ClearContents
    End With
    For Each ct In VBA.UserForms.Add(laform).Controls
        If ct.Name Like "ListBox*" Then
        ct.Clear
        End If
    Next
    VBA.UserForms.Add(laform).Repaint
    End Sub

  6. #6
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    Bonjour,

    plutôt que passer des chaines en paramètres de ta fonction tu peu passer des références à tes objets :



    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
    Option Explicit
    '
    '
    '
    Sub effaceliste22(ByRef laform As MSForms.UserForm, ByRef lafeuille As Worksheet)
    Dim ct As Control
    With lafeuille
        .Range(.Cells(3, 1), .Cells(100, 22)).ClearContents
    End With
     
    For Each ct In laform.Controls
        If ct.Name Like "ListBox*" Then
        ct.Clear
        End If
    Next
    laform.Repaint
    End Sub
    avec dans ton UserForm un bouton pour appeler ta fonction :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub CommandButton1_Click()
    effaceliste22 Me, ThisWorkbook.Worksheets("Feuil1")
    End Sub


    ou un appel "ailleurs" ...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Sub MonTestSpooky()
            effaceliste22 UserForm1, ThisWorkbook.Worksheets("Feuil1")
    End Sub

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

Discussions similaires

  1. [XL-2010] Alimenter Combobox dans Userform avec noms définis variables
    Par aethangaia dans le forum Macros et VBA Excel
    Réponses: 13
    Dernier message: 27/06/2014, 14h24
  2. Nom de variable dans une autre variable
    Par lsdInside dans le forum Linux
    Réponses: 5
    Dernier message: 04/12/2004, 19h36
  3. [SQL SERVER 2000] Noms de variables dynamiques
    Par cassoulet dans le forum MS SQL Server
    Réponses: 9
    Dernier message: 08/09/2004, 11h44
  4. Nom de variable
    Par lilia dans le forum Flash
    Réponses: 4
    Dernier message: 07/08/2004, 13h11
  5. Generer des noms de variables avec une boucle
    Par moutanakid dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 28/07/2004, 17h45

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