IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

IHM Discussion :

Variable sur des zones de texte [AC-2010]


Sujet :

IHM

  1. #1
    Membre actif
    Homme Profil pro
    Inscrit en
    Mars 2009
    Messages
    408
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Eure et Loir (Centre)

    Informations professionnelles :
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Mars 2009
    Messages : 408
    Points : 216
    Points
    216
    Par défaut Variable sur des zones de texte
    Bonjour,
    Pouvez vous m'aider sur ce problème?
    Sur un formulaire, j'ai des zones de textes dont la taille de caractère va dépendre du contenu.
    Par contre j'ai beaucoup de zone de texte donc j'aurais voulu faire une boucle, j'ai fait ce code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
     
    with Me
     
    'Nom des texbox
     
    X1 = DEM_N_C2
    X2 = DEM_N_C1
    X3 = Te_FormuleAutoSomme
    X4 = DEM_N_T2
     
    For I = 1 To 4
     
    X = X & I ' j'ai essayé comme ca mais ca ne marche pas non plus : "X" & Trim(Str(Val(I)))
     
            If Len(.Controls(X)) > 2 Then
                .Controls(X).FontSize = 14
                Else
                .Controls(X).FontSize = 18
            End If
     
    Next I
     
    end with
    J'aurai voulu que X prenne le contenu de la variable X1 puis X2 Puis...etc

    Merci pour votre aide.

  2. #2
    Expert éminent
    Avatar de jimbolion
    Homme Profil pro
    Moulticien
    Inscrit en
    Janvier 2013
    Messages
    3 150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Moulticien
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2013
    Messages : 3 150
    Points : 7 001
    Points
    7 001
    Billets dans le blog
    2
    Par défaut
    dodo28,

    je viens de tester ton code, et il fonctionne très bien de cette façon :
    je l'active par un clic sur un bouton (comment est il déclenché de ton côté ?)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    Private Sub Commande4_Click()
    Dim monctl As String
    With Me
     
    'Nom des texbox
     
    For i = 1 To 2
     
    monctl = "X" & Trim(Str(Val(i))) ' j'ai essayé comme ca mais ca ne marche pas non plus : "X" & Trim(Str(Val(I)))
     
            If Len(.Controls(X)) = 1 Then
                .Controls(X).FontSize = 14
                Else
                .Controls(X).FontSize = 18
            End If
     
    Next i
     
    End With
    End Sub
    jimbolion
    N'oubliez pas le Tag si la réponse donnée vous a été utile et pour une réponse pertinente.
    Retrouvez-moi sur le chat en salon base de données

  3. #3
    Membre actif
    Homme Profil pro
    Inscrit en
    Mars 2009
    Messages
    408
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Eure et Loir (Centre)

    Informations professionnelles :
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Mars 2009
    Messages : 408
    Points : 216
    Points
    216
    Par défaut
    Bonjour,
    Merci pour votre aide.
    Il est actionné par bouton avec un call.

    J'ai mis un msgbox sous :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    monctl = "X" & Trim(Str(Val(i)))
    et là le msgbox me dit que monctl = X1, et il faudrait que monctl = DEM_N_C2 soit le contenu de la variable X1.

    Merci

  4. #4
    Membre régulier
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Juin 2003
    Messages
    129
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Juin 2003
    Messages : 129
    Points : 122
    Points
    122
    Par défaut
    Bonjour,

    Il te faut utiliser la fonction Eval (et des guillemets pour les différents X) , ce qui te donnerait un code du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    with Me
     
    'Nom des texbox
     
    X1 = "Me.DEM_N_C2"
    X2 = "Me.DEM_N_C1"
    X3 = "Me.Te_FormuleAutoSomme"
    X4 = "Me.DEM_N_T2"
     
    For I = 1 To 4
     
    nomctrl="X" & I
     
            If Len(Eval(nomctrl)) > 2 Then
                Eval(nomctrl).FontSize = 14
                Else
                Eval(nomctrl).FontSize = 18
            End If
     
    Next I
     
    end with
    Filou07

  5. #5
    Membre actif
    Homme Profil pro
    Inscrit en
    Mars 2009
    Messages
    408
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Eure et Loir (Centre)

    Informations professionnelles :
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Mars 2009
    Messages : 408
    Points : 216
    Points
    216
    Par défaut
    Merci Filou,
    Excuse du retard pour la réponse, vacances obligent.

    Malheureusement ca ne marche pas non plus avec Eval.
    Je dois zapper quelques choses.
    L'erreur est : ne parvient pas a trouver X1 ( ce qui est normal, vu qu'il doit trouver "DEM_N_C2").

    Je remets mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
     
    With MonFormulaire
     
        X1 = "DEM_N_C2"
        X2 = "DEM_N_C1"
        X3 = "Te_FormuleAutoSomme"
        X4 = "DEM_N_T2"
     
     
        For I = 1 To 4
     
         X = "X" & Trim(Str(Val(I)))
     
     
         MsgBox (Eval(X))
     
                If Len(.Controls(Eval(X))) > 2 Then
                    .Controls(Eval(X)).FontSize = 14
                    Else
                    .Controls(Eval(X)).FontSize = 18
                End If
     
        Next I
     
     
    End With
    Merci pour votre aide

  6. #6
    Membre régulier
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Juin 2003
    Messages
    129
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Juin 2003
    Messages : 129
    Points : 122
    Points
    122
    Par défaut
    J'ai répondu un peu vite, la fonction Eval ne va rien t'apporter. Il vaut mieux considérer X comme un array allant de X(1) à X(4)

    Je t'ai mis le code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
     
    Dim nomctrl As String
    Dim X(4)
    With Me
        X(1) = "DEM_N_C2"
        X(2) = "DEM_N_C1"
        X(3) = "Te_FormuleAutoSomme"
        X(4) = "DEM_N_T2"
     
        For i = 1 To 4
            nomctrl = X(i)
            If Len(.Controls(nomctrl)) > 2 Then
                .Controls(nomctrl).FontSize = 14
            Else
                .Controls(nomctrl).FontSize = 18
            End If
        Next i
    End With
    Et là ça va aller mieux !
    Filou07

  7. #7
    Membre actif
    Homme Profil pro
    Inscrit en
    Mars 2009
    Messages
    408
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Eure et Loir (Centre)

    Informations professionnelles :
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Mars 2009
    Messages : 408
    Points : 216
    Points
    216
    Par défaut
    Merci beaucoup.
    c'est la bonne solution.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [AC-2010] Inserer un texte et des variables dans une zone de texte
    Par acpsc dans le forum Access
    Réponses: 5
    Dernier message: 05/05/2013, 17h39
  2. compléter des zones de texte sur un site web en delphi
    Par larnaud888 dans le forum API, COM et SDKs
    Réponses: 1
    Dernier message: 06/02/2012, 15h32
  3. 2 questions sur le tuto des zones de texte
    Par minibus dans le forum GTK+ avec C & C++
    Réponses: 5
    Dernier message: 14/07/2009, 16h26
  4. [Toutes versions] Faire des operations sur des zones de texte d'un formulaire
    Par lolo25 dans le forum IHM
    Réponses: 1
    Dernier message: 01/04/2009, 13h37
  5. Comment faire des zones de texte sur image
    Par Myogtha dans le forum Général Conception Web
    Réponses: 3
    Dernier message: 12/03/2007, 15h27

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo