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 :

Recupérer le nom des labels des userforms


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Inscrit en
    Octobre 2008
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 4
    Par défaut Recupérer le nom des labels des userforms
    Bonjour à tous,

    Alors voilà, dans un fichier Excel qui est un questionnaire, sur la feuille 1, selon la cellule cliquée, j’affiche un userform qui aide à répondre aux questions (avec des checkbox, option bouton, des labels, ...)
    J’ai quelques userforms (environ 40, eh oui !)
    J’aimerais dans une seconde feuille (la feuil2) récupéré le nom complet de tout les labels de tout les userforms pour que dans l’avenir (plus ou moins proche) ce questionnaire soit bilingue, et donc en fonction d’une OptionButton1.Value, je puisse affecter une value français ou anglaise (relative à une colonne).

    Bon commençons par le début, récupéré les noms complets de tous les labels*:
    Alors voici le code est les explications des problèmes :

    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
    Public Sub recup_label()
    Dim feuille As String
    Dim LaForm As Object
     
    Sheets("Feuil2").Activate
     
        For Each LaForm In ThisWorkbook.VBProject.VBComponents
            If LaForm.Type = 3 Then 'Permet de récupérer les noms
                                    'des userforms du classeur actuel
                MsgBox LaForm.Name 'pour vérifier que les noms
                                    'de tous les userforms sont bien récupérés
            End If
     
            If LaForm.Type = 3 Then
            With A1_01 ' A1_01 est le nom d'un userform particulier et ca marche
            ' si je change A1_01 par la variable LaForm (par exemple)
            ' pour afficher dans la feuille 2 les noms de tout les labels (et plus
            ' uniquement les la bels du userform A1_01),
            ' le compteur ci-dessous ne fonctionne pas !
                For i = 0 To .Controls.Count - 1 ' là ca merde avec la variable LaForm
                ' mais ca fonction avec un userform clairement décrit
                    If Left(.Controls.Item(i).Name, 5) = "Label" Then
                        Cells(i, 1) = .Controls.Item(i).Name 'recup du nom
                        Cells(i, 2) = .Controls.Item(i).Caption 'recup du caption
                    End If
                Next i
            End With
            End If
     
        Next
     
    End Sub
    Là je bloque (et mes collègues aussi !). Pouvez-vous m’aider ? (en espérant avoir été assez clair)
    Par avance merci
    Fichiers attachés Fichiers attachés

Discussions similaires

  1. Réponses: 4
    Dernier message: 18/05/2015, 19h24
  2. aide pour les changement des labels des icones de mon menu
    Par Invité dans le forum GTK+ avec C & C++
    Réponses: 1
    Dernier message: 15/08/2009, 01h45
  3. nom par défaut des étiquettes des contrôles
    Par s.rais dans le forum IHM
    Réponses: 3
    Dernier message: 03/12/2007, 23h55
  4. Réponses: 1
    Dernier message: 06/07/2007, 13h46
  5. Gestion des majuscules des miniscules des accent
    Par issam16 dans le forum Access
    Réponses: 2
    Dernier message: 13/07/2006, 14h21

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