Lecture des propriétés des atributs [Résolu]

Signaler
Messages postés
34
Date d'inscription
lundi 9 mai 2011
Statut
Membre
Dernière intervention
21 mai 2012
-
Messages postés
14770
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
27 février 2021
-
j'ai une tableau excel qui contion 3 colonnes
(1) form: contient les composants de form par exmple label1.caption,label2.caption
(2) Arabe:contient le caption de cet label en arabe
(3)français:contient le caption de cet label en français
Mon tache est de trouver une solution pour concaténé ces valeur sans ecrire dans vb labelX.caption=...
je dois ecrire Form.(colonne1)=(colonne2)
j'ai essayé avec cet exemple mais j'ai une erreur :(
Private Sub DataCombo1_Click(Area As Integer)
Dim xls As New Class1
Dim l, la, k, R As String


xls.DBConnect "C:\Users\mourad\Documents\langue.xls", True

Text1.Text = DataCombo1.Text




' select sur 1ère colonne
xls.RSExecute "SELECT form , [" & DataCombo1.BoundText & "]FROM [Arabe$];"


k = xls.RS.Fields(0).Value
R = xls.RS.Fields(1).Value

Form1.k = R

xls.RS.MoveNext

'Label2.Caption = xls.RS.Fields(1).Value


'affiche le 1e enregistrement
'MsgBox xls.RS.Fields(0).Value
Set xls = Nothing

End Sub

14 réponses

Messages postés
14770
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
27 février 2021
151
Bonjour,

Tu n'as vraiment pas cherché, car même en regardant dans la donc, tout est dit :
Private Sub Form_Load()
    SetValue Me, "Form1.LblTest.Caption", "Réussi"
End Sub

Private Sub SetValue(ByVal pForm As Form, ByVal pName As String, ByVal pValue As String)
    Dim ltNames() As String
    ltNames = Split(pName, ".")
    
    If pForm.Name <> ltNames(0) Then
        Exit Sub
    End If
    
    Dim lCtl As Control
    Set lCtl = pForm.Controls(ltNames(1))
    
    CallByName lCtl, ltNames(2), VbLet, pValue
End Sub


---------------------------------------------------------------------
[list=ordered][*]Pour poser correctement une question et optimiser vos chances d'obtenir des réponses, pensez à lire le règlement CS, celui-ci pour bien poser votre question ou encore celui-ci pour les PFE et autres exercices[*]Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite : )
[*]En VB.NET pensez à activer Option Explicit et Option Strict (propriété du projet) et à retirer l'import automatique de l'espace de nom Microsoft.VisualVasic (onglet Références dans les propriétés du projet).
[*]Si votre problème est résolu (et uniquement si c'est le cas), pensez à mettre "Réponse acceptée" sur le ou les messages qui vous ont aidés./list
---
Mon site
Messages postés
14770
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
27 février 2021
151
Bonjour,

Il faut appeler cette méthode lors du chargement de la form, donc, modifier une form fermée n'a pas de sens.

---------------------------------------------------------------------
[list=ordered][*]Pour poser correctement une question et optimiser vos chances d'obtenir des réponses, pensez à lire le règlement CS, celui-ci pour bien poser votre question ou encore celui-ci pour les PFE et autres exercices[*]Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite : )
[*]En VB.NET pensez à activer Option Explicit et Option Strict (propriété du projet) et à retirer l'import automatique de l'espace de nom Microsoft.VisualVasic (onglet Références dans les propriétés du projet).
[*]Si votre problème est résolu (et uniquement si c'est le cas), pensez à mettre "Réponse acceptée" sur le ou les messages qui vous ont aidés./list
---
Mon site
Messages postés
34
Date d'inscription
lundi 9 mai 2011
Statut
Membre
Dernière intervention
21 mai 2012

pas de soulution :(( !!!!
Messages postés
14770
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
27 février 2021
151
Bonjour,

Saches qu'ici, on est des bénévoles, donc les réponses peuvent mettre un peu de temps pour arriver.

Concernant ton problème, tu parles de Label, puis de DataGrid.
Cela choque un peu.

Ce que tu peux faire, par exemple, c'est faire :
3 colonnes, NomComposant, Français, Arabe.

Ensuite, tu parcours MaForm.Controls et pour chaque control si le nom de ce composant est connu, alors, tu lui assigne la bonne valeur.

---------------------------------------------------------------------
[list=ordered][*]Pour poser correctement une question et optimiser vos chances d'obtenir des réponses, pensez à lire le règlement CS, celui-ci pour bien poser votre question ou encore celui-ci pour les PFE et autres exercices[*]Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite : )
[*]En VB.NET pensez à activer Option Explicit et Option Strict (propriété du projet) et à retirer l'import automatique de l'espace de nom Microsoft.VisualVasic (onglet Références dans les propriétés du projet).
[*]Si votre problème est résolu (et uniquement si c'est le cas), pensez à mettre "Réponse acceptée" sur le ou les messages qui vous ont aidés./list
---
Mon site
Messages postés
34
Date d'inscription
lundi 9 mai 2011
Statut
Membre
Dernière intervention
21 mai 2012

je pense mon ami qui tu n'a pas bien compris mon problème et j'ai pas utilisé dataGRID
mon problème que je veux à partir de fichier excel changer mon langue c'est à dire l’utilisateur s'il choisi la langue arabe ou france je dois changer la langue de tous les controls de form et je cherche une solution très simple
qui permet charger à partir d'un excel le nom des form et ces controls ainsi c'est valeur selon le langue choisi
donc pour mon exemple j'ai essayé
k = xls.RS.Fields(0).Value 'exemple contient label1.caption
R = xls.RS.Fields(1).Value 'contient valeur de set label exp xxxxx

Form1.k = R 'c'est à dire form1.label1.caption=xxxx
tu m'as compris??
Messages postés
14770
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
27 février 2021
151
Bonjour,

D'accord, tu utilises Excel comme base de données.

Concernant le nom de la form, tu peucx le récupérer race à Me.Name, je pense.
Pour les controles, tu as la liste dans Me.Controls.
Ensuite, pour la propriété, peut être avec CallByName ou similaire.

---------------------------------------------------------------------
[list=ordered][*]Pour poser correctement une question et optimiser vos chances d'obtenir des réponses, pensez à lire le règlement CS, celui-ci pour bien poser votre question ou encore celui-ci pour les PFE et autres exercices[*]Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite : )
[*]En VB.NET pensez à activer Option Explicit et Option Strict (propriété du projet) et à retirer l'import automatique de l'espace de nom Microsoft.VisualVasic (onglet Références dans les propriétés du projet).
[*]Si votre problème est résolu (et uniquement si c'est le cas), pensez à mettre "Réponse acceptée" sur le ou les messages qui vous ont aidés./list
---
Mon site
Messages postés
34
Date d'inscription
lundi 9 mai 2011
Statut
Membre
Dernière intervention
21 mai 2012

Merci pour ton aide mais SVP mon ami tu peux mieux préciser c.a.d donner une exemple
Messages postés
34
Date d'inscription
lundi 9 mai 2011
Statut
Membre
Dernière intervention
21 mai 2012

mais moi je ne veux pas récupérer les paramètres mais je veux charger les paramétres contoles(bouton ou labelou...) et les frames à partir de fichier excel
Messages postés
34
Date d'inscription
lundi 9 mai 2011
Statut
Membre
Dernière intervention
21 mai 2012

Vraiment Merci beaucoupppp frère
Messages postés
34
Date d'inscription
lundi 9 mai 2011
Statut
Membre
Dernière intervention
21 mai 2012

Est ce que c'est pas possible de modifier les propriétés d'une form fermer c'est une autre form !!!
Messages postés
34
Date d'inscription
lundi 9 mai 2011
Statut
Membre
Dernière intervention
21 mai 2012

SVP est ce que c'est possible de changer avec la méthode " CallByName" les msgBox , les zone de text ou nom de la form et merci d'avance
Messages postés
14770
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
27 février 2021
151
Bonjour,

As-tu lu la doc concernant CallByName ?
As-tu compris pourquoi cette instruction était utilisée ?

---------------------------------------------------------------------
[list=ordered][*]Pour poser correctement une question et optimiser vos chances d'obtenir des réponses, pensez à lire le règlement CS, celui-ci pour bien poser votre question ou encore celui-ci pour les PFE et autres exercices[*]Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite : )
[*]En VB.NET pensez à activer Option Explicit et Option Strict (propriété du projet) et à retirer l'import automatique de l'espace de nom Microsoft.VisualBasic (onglet Références dans les propriétés du projet).
[*]Si votre problème est résolu (et uniquement si c'est le cas), pensez à mettre "Réponse acceptée" sur le ou les messages qui vous ont aidés./list
---
Mon site
Messages postés
34
Date d'inscription
lundi 9 mai 2011
Statut
Membre
Dernière intervention
21 mai 2012

oui :(
Messages postés
14770
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
27 février 2021
151
Bonjour,

Pour les MsgBox, pas besoin de CallByName, tu prends directement la traduction.

---------------------------------------------------------------------
[list=ordered][*]Pour poser correctement une question et optimiser vos chances d'obtenir des réponses, pensez à lire le règlement CS, celui-ci pour bien poser votre question ou encore celui-ci pour les PFE et autres exercices[*]Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite : )
[*]En VB.NET pensez à activer Option Explicit et Option Strict (propriété du projet) et à retirer l'import automatique de l'espace de nom Microsoft.VisualBasic (onglet Références dans les propriétés du projet).
[*]Si votre problème est résolu (et uniquement si c'est le cas), pensez à mettre "Réponse acceptée" sur le ou les messages qui vous ont aidés./list
---
Mon site