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

VB 6 et antérieur Discussion :

Tableau de variables


Sujet :

VB 6 et antérieur

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 28
    Par défaut Tableau de variables
    BonSoir,

    Je voudrais creer un tableau avec pour exemple

    50 100
    In (A) 70 141
    Icc (kA) 1,76 3,5
    Ucc (%) 4 4

    Apartir d'une unique combobox, on peut faire le choix de 50 ou 100;
    Quand je selectionne 50, il s'affiche dans :
    label1.caption 70
    label2.caption 1,76
    label3.caption 4

    Quand je selectionne 100, il s'affiche
    label1.caption 141
    label2.caption 3,5
    label3.caption 4

    Merci d'avance

  2. #2
    Membre expérimenté
    Inscrit en
    Janvier 2011
    Messages
    112
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 112
    Par défaut
    _ Ia ora na.
    _ Par exemple :

    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
    Option Explicit
    Dim T(3, 1) As Single
    '----------------------------------------------------
    Private Sub Form_Load()
     
    T(0, 0) = 50: T(0, 1) = 100
    T(1, 0) = 70: T(1, 1) = 141
    T(2, 0) = 1.76: T(2, 1) = 3.5
    T(3, 0) = 4: T(3, 1) = 4
    List1.AddItem Format$(T(0, 0)): List1.AddItem Format$(T(0, 1))
     
    End Sub
    '----------------------------------------------------
    Private Sub List1_Click()
    Dim I%
     
    I% = List1.ListIndex
    Label1 = T(1, I%)
    Label2 = T(2, I%)
    Label3 = T(3, I%)
     
    End Sub
    _ Il est aussi possible de définir T comme String à la ligne 2 et de modifier la ligne 10 en conséquence :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Dim T(3, 1)  As String
    '[...]
    List1.AddItem T(0, 0): List1.AddItem T(0, 1)
    _ Bon courage pour la suite.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 28
    Par défaut Tableau de variables
    BonJour,

    Merci, de mon côté j'ai modifié de cette façon et ca marche, y volyer vous un inconvenient ?

    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
    Private Sub Command1_Click()
    '   Calcul réseau HTA et transformateur HTA\BTA
    Dim T(3, 1)  As String
     
    T(0, 0) = 50:   T(0, 1) = 100
    T(1, 0) = 70:   T(1, 1) = 141
    T(2, 0) = 1.76: T(2, 1) = 3.5
    T(3, 0) = 4:    T(3, 1) = 4
     
    Combo11.AddItem Format$(T(0, 0)): Combo11.AddItem Format$(T(0, 1))
    i% = Combo11.ListIndex
    Label200.Caption = T(1, i%)
    Label201.Caption = T(2, i%)
    Label202.Caption = T(3, i%)
     
    End Sub

  4. #4
    Membre expérimenté
    Inscrit en
    Janvier 2011
    Messages
    112
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 112
    Par défaut
    _ Ia ora na faahou.
    Citation Envoyé par stephane.dantigny Voir le message
    y volyer vous un inconvenient ?

    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
    Private Sub Command1_Click()
    '   Calcul réseau HTA et transformateur HTA\BTA
    Dim T(3, 1)  As String
     
    T(0, 0) = 50:   T(0, 1) = 100
    T(1, 0) = 70:   T(1, 1) = 141
    T(2, 0) = 1.76: T(2, 1) = 3.5
    T(3, 0) = 4:    T(3, 1) = 4
     
    Combo11.AddItem Format$(T(0, 0)): Combo11.AddItem Format$(T(0, 1))
    i% = Combo11.ListIndex
    Label200.Caption = T(1, i%)
    Label201.Caption = T(2, i%)
    Label202.Caption = T(3, i%)
     
    End Sub
    _ Je suis heureux que cela fonctionne chez vous, mais chez moi, ça coince.
    _ Simplement gênant :
    1) si T() est un tableau de chaînes, Format$() est inutile ;
    2) aux lignes 5 et sqq, vous remplissez ce tableau de chaîne avec des nombres décimaux ; la fonction Variant de VB évite une erreur, mais ce n'est guère satisfaisant pour l'esprit :
    T() as String >>>> T(0, 0) = "50"
    T() as Single >>>> T(0, 0) = 50
    3) à chaque fois que vous appuyez sur ce bouton, VB ajoute les deux mêmes lignes (50 et 100) à la liste, comme spdev666 l'a fait observer ;
    _ Plus grave :
    4) la variable I% n'est pas déclarée ;
    5) quand vous cliquez sur le bouton, il remplit la liste (ligne 10) ; mais à ce moment, aucun des deux items n'est choisi, et Combo11.ListIndex vaut -1 ; d'où une erreur Indice en dehors de la plage aux ligne 12 à 14 : il faut en réalité que la liste ait été remplie et que l'on ait sélectionné l'une de ses valeurs avant que ces trois lignes puissent être exécutées sans erreur.
    _ Mais si
    ca marche
    pourquoi s'inquiéter ?
    _ Bonne chance pour la suite de votre projet.

    Post-scriptum :
    1) pourquoi initialiser la zone de texte de Combo1 (dans Form_Load) pour ensuite remplir Combo11 dans Command1_Click ?
    2) simple curiosité : avez-vous une raison particulière d'employer un contrôle ComboBox plutôt qu'une simple liste ListBox ?

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 28
    Par défaut Tableau de variables
    Post-scriptum :
    1) pourquoi initialiser la zone de texte de Combo1 (dans Form_Load) pour ensuite remplir Combo11 dans Command1_Click ?
    2) simple curiosité : avez-vous une raison particulière d'employer un contrôle ComboBox plutôt qu'une simple liste ListBox ?

    4) la variable I% n'est pas déclarée ;

    Réponses:
    1)J'initialise de sorte à ce chaque combo, textbox, label.caption soient vides.
    Histoires de ne pas faire d'erreur sur les choix des variables à renseigner.
    2)J'aime bien les combo !!
    4) Pourquoi dimensionner la variable %i, du genre I% as string, c'est ca?

  6. #6
    Membre expérimenté
    Inscrit en
    Janvier 2011
    Messages
    112
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 112
    Par défaut
    _ Ia ora na â.
    _ Merci de votre réponse.
    Citation Envoyé par stephane.dantigny Voir le message
    J'initialise de sorte à ce chaque combo, textbox, label.caption soient vides.?
    _ Ils sont vides pas nature, si vous n'y avez rien mis !
    _ Et, dans le cas évoqué, pourquoi ne pas réinitialiser la liste ?
    Citation Envoyé par stephane.dantigny Voir le message
    2)J'aime bien les combo !!
    _ C'est évidemment votre droit le plus strict ; je n'ai rien contre eux, sinon que leur emploi m'a donné à plusieurs occasions plus de fil à retordre que la simple ListBox ; mais qui peut le plus peut le moins.
    Citation Envoyé par stephane.dantigny Voir le message
    Pourquoi dimensionner la variable %i, du genre I% as string, c'est ca?
    _ Non, ce n'est pas vraiment ça.
    _ La variable I% est un entier, à déclarer comme
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Dim I%
    ' ou bien
    Dim I as Integer
    _ Si on essaye de dimensionner I% as String, on obtient une double erreur :
    1) % est le suffixe des entiers, pas des chaînes :2) on peut déclarer une variable soit par As soit par son suffixe - pas les deux à la fois.
    _ Cela étant, si vous avez placé Option Explicit dans les déclarations de votre feuille (Form), il est nécessaire de déclarer une variable avant de l'utiliser.

    _ Pour reprendre le problème du code de Command1_Click sous un autre angle, votre code lui demande
    (1) de fixer les valeurs initiales de T() et de remplir la liste ;
    (2) d'afficher les valeurs dans les étiquettes en fonction du choix dans la liste.
    _ Seul problème : il faut qu'entre (1) et (2), l'utilisateur puisse choisir 50 ou 100. Conséquence logique : il faut placer l'étape (1) en amont de Command1_Click , comme spdev666 l'avait noté ; je l'avais placée dans Form_Load ; et vous ?
    _ Et dans ce cas, à quoi sert le bouton Command1 ? pourquoi demander à l'utilisateur de cliquer dans la liste sur l'une des deux valeurs puis de cliquer sur le bouton - au lieu d'afficher directement les valeurs correspondantes quand il clique sur l'une des deux lignes de la liste ?

    _ Bon courage pour la suite.

  7. #7
    Membre éprouvé
    Inscrit en
    Septembre 2008
    Messages
    101
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 101
    Par défaut
    Je ne sais pas à quoi correspond Command1 (un bouton ?)

    En tout cas, chaque fois que Command1_Click est exécuté, 2 items sont ajoutés à la liste Combo11

    Sinon, pour fonctionner correctement, je suppose que vous avez initialisé la liste des items a l'ouverture de l écran ailleurs ?

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 28
    Par défaut Tableau des variables
    Commande 1 correspond à un bouton "Calculer"
    Oui effectivement j'initialise
    au début du code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Private Sub Form_Load()
    '   Initialisation de la Form
        Combo1.Text = ""
    Label200.Caption = ""
    Label201.Caption = ""
    Label202.Caption = ""
    End Sub

Discussions similaires

  1. [Tableaux] tableau et variable
    Par tyarak dans le forum Langage
    Réponses: 5
    Dernier message: 18/12/2005, 23h55
  2. [VBA] Mettre un tableau de variable en paramètre
    Par loacast dans le forum Général VBA
    Réponses: 10
    Dernier message: 15/11/2005, 11h28
  3. [VB6] Déclaration d'un tableau avec variable en paramètre.
    Par méphistopheles dans le forum VB 6 et antérieur
    Réponses: 9
    Dernier message: 23/10/2005, 12h21
  4. Comment obtenir un tableau à taille variable ?
    Par marsupilami34 dans le forum Langage
    Réponses: 6
    Dernier message: 27/06/2005, 15h03
  5. Fonction max d'un tableau de variables...
    Par Romalafrite dans le forum ASP
    Réponses: 7
    Dernier message: 20/07/2004, 10h38

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