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 :
Là je bloque (et mes collègues aussi !). Pouvez-vous m’aider ? (en espérant avoir été assez clair)
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
Par avance merci
Partager