Problème avec TypeOf objControl Is MSForms.MultiPage
Résolu
GrandJean
-
pijaku Messages postés 12263 Date d'inscription Statut Modérateur Dernière intervention -
pijaku Messages postés 12263 Date d'inscription Statut Modérateur Dernière intervention -
Bonjour,
Je développe une application bilingue. Tous mes libellés doivent donc être soit en Français, soit en Anglais.
J'ai créé une feuille dans laquelle se trouvent les libellés source. Je n'ai pas de problème pour alimenter les labels, CB, Frame... Là où je coince, c'est pour les légendes des onglets du multipage.
Voici le bout de code concernant cette partie :
J'ai essayé de remplacer Multipage par page ou par pages. Cela ne change rien. Je me demande s'il ne faut pas créer une sous boucle pour balayer les pages du multipage. J'ai fait quelques essais, sans succès. Si jamais vous aviez une piste, je vous en serais reconnaissant.
D'avance, merci
Jean
Je développe une application bilingue. Tous mes libellés doivent donc être soit en Français, soit en Anglais.
J'ai créé une feuille dans laquelle se trouvent les libellés source. Je n'ai pas de problème pour alimenter les labels, CB, Frame... Là où je coince, c'est pour les légendes des onglets du multipage.
Voici le bout de code concernant cette partie :
ElseIf TypeOf objControl Is MSForms.MultiPage Then For i = 490 To 519 'lignes correspondant aux légendes spécifiques multipage If objControl.Tag = .Cells(i, "C") Then 'j'utilise tag comme repère d'identification objControl.Caption = .Cells(i, col) objControl.ControlTipText = .Cells(i, col + 3) Exit For Else End If Next i
J'ai essayé de remplacer Multipage par page ou par pages. Cela ne change rien. Je me demande s'il ne faut pas créer une sous boucle pour balayer les pages du multipage. J'ai fait quelques essais, sans succès. Si jamais vous aviez une piste, je vous en serais reconnaissant.
D'avance, merci
Jean
A voir également:
- Problème avec TypeOf objControl Is MSForms.MultiPage
- What is my movie français - Télécharger - Divers TV & Vidéo
- Who is on my wifi - Télécharger - Outils Internet
- Where is it - Télécharger - Gestion de fichiers
- User is over quota - Forum Mail
- Boite mail over quota ✓ - Forum Mail
5 réponses
Bonjour,
Qu'appelles tu "légende des onglets du multipages"?
Qu'appelles tu "légende des onglets du multipages"?
pijaku
Messages postés
12263
Date d'inscription
Statut
Modérateur
Dernière intervention
2 761
En attendant ta réponse, voici comment boucler sur les pages et renvoyer le nom (Name) et le Caption :
Merci d'avoir pris le temps de regarder ma question.
Ce que j'apelle l'onglet, c'est en fait le caption.
Je connais la procédure que tu indiques et je l'utilise aussi. Mais dans mon cas, l'avantage du contrôle MSForms, c'est que j'ai plusieurs multipage dans mon application et que je veux tous les "balayer" avec une seule procédure.
J'espère que cette explication complémentaire clarifie le sujet
Ce que j'apelle l'onglet, c'est en fait le caption.
Je connais la procédure que tu indiques et je l'utilise aussi. Mais dans mon cas, l'avantage du contrôle MSForms, c'est que j'ai plusieurs multipage dans mon application et que je veux tous les "balayer" avec une seule procédure.
J'espère que cette explication complémentaire clarifie le sujet
Et bien tu mixes les deux procédures...
Comme ceci :
Ou alors il y a un truc qui m'échappe......
Cordialement,
Franck
Comme ceci :
Dim objControl As Control, i As Byte For Each objControl In Me.Controls If TypeOf objControl Is MsForms.MultiPage Then For i = 0 To Me.MultiPage1.Pages.Count - 1 MsgBox objControl.Name & " " & objControl.Caption Next i End If Next objControl
Ou alors il y a un truc qui m'échappe......
Cordialement,
Franck
La macro qui gère l'affichage est dans un module. A chaque ouverture de UF, j'appelle la macro. J'alimente ainsi, et successivement titre de formulaire, label, bouton, frame...
Je suis certain qu'il faut imbriquer une deuxième procédure dans la boucle mais c'est là où je coince. J'ai essayé d'appliquer ton idée, sans succès, parce que le nom du multipage change d'un UF à l'autre.
Une solution serait peut-être d'inclure la procédure dans le UF lui-même juste pour le nom des pages.
Je suis certain qu'il faut imbriquer une deuxième procédure dans la boucle mais c'est là où je coince. J'ai essayé d'appliquer ton idée, sans succès, parce que le nom du multipage change d'un UF à l'autre.
Une solution serait peut-être d'inclure la procédure dans le UF lui-même juste pour le nom des pages.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Bonsoir Franck,
Finalement, j'ai creusé ton idée et maintenant, cela fonctionne parfaitement. En fait, comme toujours, j'ai fait un break et cela m'a permis de réfléchir à la solution...
Voilà le code :
Pour moi, la question est résolue. Si jamais tu as une idée pour améliorer mon code, je suis preneur.
En tout cas, merci de ton aide et de ton temps
Bonne soirée
Jean
Finalement, j'ai creusé ton idée et maintenant, cela fonctionne parfaitement. En fait, comme toujours, j'ai fait un break et cela m'a permis de réfléchir à la solution...
Voilà le code :
ElseIf TypeOf objControl Is MSForms.MultiPage Then For i = 0 To UF.MultiPage1.Pages.count - 1 For ii = 490 To 496 'lignes sur lesquelles se trouvent les variables à récupérer If CDbl(UF.MultiPage1.Pages(i).Tag) = CDbl(.Cells(ii, "C")) Then UF.MultiPage1.Pages(i).Caption = .Cells(ii, col) Exit For Else End If Next ii Next i
Pour moi, la question est résolue. Si jamais tu as une idée pour améliorer mon code, je suis preneur.
En tout cas, merci de ton aide et de ton temps
Bonne soirée
Jean