Comment modifier les propriétés d'un objet à partir de données dans un tableau ?

ziold Messages postés 16 Date d'inscription lundi 27 novembre 2000 Statut Membre Dernière intervention 27 septembre 2005 - 20 sept. 2005 à 13:09
ziold Messages postés 16 Date d'inscription lundi 27 novembre 2000 Statut Membre Dernière intervention 27 septembre 2005 - 6 oct. 2005 à 08:44
Yep

Après avoir créé un classeur+macros+UserForms sous Excel (VBA), je voudrais pouvoir traduire toutes les commandes en français et hollandais (pour l'instant je ne les aies écrites qu'en anglais). Je pensais faire un tableau avec une colonne "Objet général" (genre Worksheets(), UserForm), la suivante "Objet" (bouton, label) et ensuuite les trois colonnes avec les traductions. Mon ID était de recréer une commande du type Objet général.Objet.Caption = le contenu de la colonne correspondant à la langue sélectionnée, mais il s'avère que c'est plus compliqué que je ne le pensait...


Pouvez vous me filer un coup de main svp ?? Je me sens un peu perdu devant mon clavier...

6 réponses

ziold Messages postés 16 Date d'inscription lundi 27 novembre 2000 Statut Membre Dernière intervention 27 septembre 2005
20 sept. 2005 à 14:26
En fait G trouvé qu'à partir des Userforms on peut utiliser la commande "Controls" qui marche très bien. Retste le problème des boutons sur les pages , et à automatiser le remplacement du texte avec un choix automatique des UserForm (pour l'instant je lance une boucle pour chacune des UserForm..pénible...)

Y a-t-il des commandes "de plus haut niveau" (Controls appartient aux UserForms) pour pouvoir controler tout ça ?? merci
0
jpleroisse Messages postés 1788 Date d'inscription mardi 7 novembre 2000 Statut Membre Dernière intervention 11 mars 2006 27
20 sept. 2005 à 17:38
Bonjour,
Si tu as déjà un code mets-le sur le post, ce sera plus simple.

jpleroisse
0
ziold Messages postés 16 Date d'inscription lundi 27 novembre 2000 Statut Membre Dernière intervention 27 septembre 2005
21 sept. 2005 à 08:07
Voilà en gros le code que j'ai...
C vraiment trop bourrin ça ne me plait pas du tou, mais ça marche.
L'ID ça serait d'avoir une seule commande pour changer tous les intitulés.
(Rque: en colonne 1 il y a les objets principaux et en 2 les objets, cf début topic...)

Sheet1.BSearch.Caption = .Cells(iLine, iColumn).Value
iLine = iLine + 1
Sheet1.BSearchBackup.Caption = .Cells(iLine, iColumn).Value
iLine = iLine + 1

iLine = iLine + 2

While .Cells(iLine, 2).Value <> ""
UFMain.Controls(.Cells(iLine, 2).Value).Caption = .Cells(iLine, iColumn).Value
iLine = iLine + 1
Wend

iLine = iLine + 2

While .Cells(iLine, 2).Value <> ""
UFBackup.Controls(.Cells(iLine, 2).Value).Caption = .Cells(iLine, iColumn).Value
iLine = iLine + 1
Wend

iLine = iLine + 2

While .Cells(iLine, 2).Value <> ""
UFExistBack.Controls(.Cells(iLine, 2).Value).Caption = .Cells(iLine, iColumn).Value
iLine = iLine + 1
Wend

Merci
0
ziold Messages postés 16 Date d'inscription lundi 27 novembre 2000 Statut Membre Dernière intervention 27 septembre 2005
21 sept. 2005 à 08:08
Rque2: le iColumn correspond à la colonne contenant le texte dans la langue choisie
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
ziold Messages postés 16 Date d'inscription lundi 27 novembre 2000 Statut Membre Dernière intervention 27 septembre 2005
5 oct. 2005 à 14:15
Re à tous

suite à moultes problèmes, je suis passé de VBA à VB, et j'ai fait ce que je voulais faire de façon très bourrine pour modifier les noms de tous les controles...

Soit:
FileNumber = FreeFile

'read the "General.txt" file to translate all forms
Open App.Path & "\Datas\Langage" & sLangage & "\General.txt" For Input As #FileNumber
Input #FileNumber, sLine
Do While Not EOF(FileNumber)
If sLine = "[UFBackup]" Then
Do While sLine <> "[UFMain]"
Input #FileNumber, sControl, sCaption
If sControl <> "" Then
UFBackup.Controls(sControl).Caption = sCaption
End If
sLine = sCaption
Loop
bFinished1 = True
ElseIf sLine = "[UFMain]" Then
Do While sLine <> "[UFWelcome]"
Input #FileNumber, sControl, sCaption
If sControl <> "" Then
UFMain.Controls(sControl).Caption = sCaption
End If
sLine = sCaption
Loop
bFinished2 = True
ElseIf sLine = "[UFWelcome]" Then
Do While Not EOF(FileNumber)
Input #FileNumber, sControl, sCaption
If sControl <> "" Then
UFWelcome.Controls(sControl).Caption = sCaption
End If
sLine = sCaption
Loop
bFinished3 = True
End If
'in case of problem...
If bFinished1 False And bFinished2 False And bFinished3 = False Then
MsgBox "File General.txt corrupted or absent", vbCriticalError, "Error"
Exit Sub
End If

Loop

Close #FileNumber

ça marche, mais le souçi est qu'il me laisse des trucs en mémoire à la fin, donc même en fermant tous mes Forms il continue à tourner... Quelqu'un aurait une ID ??

Merci
0
ziold Messages postés 16 Date d'inscription lundi 27 novembre 2000 Statut Membre Dernière intervention 27 septembre 2005
6 oct. 2005 à 08:44
up
0
Rejoignez-nous