Comment modifier les propriétés d'un objet à partir de données dans un tableau ?
ziold
Messages postés16Date d'inscriptionlundi 27 novembre 2000StatutMembreDernière intervention27 septembre 2005
-
20 sept. 2005 à 13:09
ziold
Messages postés16Date d'inscriptionlundi 27 novembre 2000StatutMembreDernière intervention27 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...
A voir également:
Comment modifier les propriétés d'un objet à partir de données dans un tableau ?
ziold
Messages postés16Date d'inscriptionlundi 27 novembre 2000StatutMembreDernière intervention27 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
ziold
Messages postés16Date d'inscriptionlundi 27 novembre 2000StatutMembreDernière intervention27 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
ziold
Messages postés16Date d'inscriptionlundi 27 novembre 2000StatutMembreDernière intervention27 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 ??