1 pièce(s) jointe(s)
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:
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