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 :

Charger une colonne d'un tableau dans une combo


Sujet :

VB 6 et antérieur

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 28
    Points : 15
    Points
    15
    Par défaut Charger une colonne d'un tableau dans une combo
    BonSoir,

    Le tout dans la pièce jointe

    Merci d'avance
    Images attachées Images attachées  

  2. #2
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 038
    Points
    20 038
    Par défaut
    ont dit que rien ne vaut un dessin ...

    mais bon le tien nous dis pas tout ..

    c'est quoi ces tableaux ? comment rempli tu tes combobox actuellement.

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

    Informations forums :
    Inscription : Septembre 2007
    Messages : 28
    Points : 15
    Points
    15
    Par défaut re
    Ces tableaux représentent des types de câbles.
    Avec colonne de gauche une référence et colonne de droite le diamètre

    Je vais les créer dans le code
    Pour le moment les combo's sont vident, d'ailleurs pour le moment je ne m'occupe de la combo 1.

    Sinon, je pense avoir tout écrit dans le dessin !mais pas toujours facile de se faire comprendre !! rires

  4. #4
    Modérateur
    Avatar de Overcrash
    Homme Profil pro
    Architecte Logiciel et responsable CRM (Salesforce)
    Inscrit en
    Mai 2008
    Messages
    1 254
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Architecte Logiciel et responsable CRM (Salesforce)
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 1 254
    Points : 1 875
    Points
    1 875
    Par défaut
    Bonsoir,

    Personnellement j'ai rien compris ...

    J'ai lu le texte de ta pièce jointe, et ce que tu appelles un problème moi j'appelle ça un algorithme ...
    Quel est le soucis exactement, qu'est ce qui bloque ? ce que tu arrive pas a faire ?
    ---
    Overcrash

    Je ne lis pas les codes qui ne sont pas indentés.
    Merci de les messages utiles en cliquant en bas à droite du message

    Bloqué par le firewall pour accéder au chat ? Essayez avec l'adresse en direct : http://87.98.168.209/

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

    Informations forums :
    Inscription : Septembre 2007
    Messages : 28
    Points : 15
    Points
    15
    Par défaut
    BonSoir,
    Donc je vais être obligé de mettre un peu de code !!rires
    Alors je souhaite depuis une combo1 selectionner le tableau BF1 ou le tableau BF2.Ensuite suivre l'exemple

    exemple:
    Si j'ai selectionné le tableau BF1 depuis la combo 1, j'affiche dans la combo2
    10
    15
    25
    Ensuite si je choisi 25, j'affiche dans le label 8 la valeur immédiatement à droite
    0.95

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Dim BF1(2, 2) As String
    'tableau BF1
    BF1(0, 0) = 10:    BF1(0, 1) = 1.1:      
    BF1(1, 0) = 15:    BF1(1, 1) = 1.05:     
    BF1(2, 0) = 25:    BF1(2, 1) = 0.95:  
     
    Dim BF2(2, 2) As String
    'tableau BF2
    BF2(0, 0) = 10:    BF2(0, 1) = 0.9:      
    BF2(1, 0) = 20:    BF2(1, 1) = 1.15:     
    BF2(2, 0) = 30:    BF2(2, 1) = 1.20:
    Merci d'avance

  6. #6
    Membre actif
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    261
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 261
    Points : 216
    Points
    216
    Par défaut
    Essaye le suivant ça doit t'aider!

    Attention de bien déclarer
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim BF1(2, 2) As String
    soit en haut de ton formulaire, soit dans un module (en tant que public)
    Je ne peux pas trop dire car je connais pas l'architecture de ton application en détail !
    Sinon je n'ai pas compris non plus comme tu sélectionnes ton combo1 ou 2 , mais en tout cas, tu peux modifier mon code comme tu veux pour répondre à tes attentes, moi je t'ai donné l'exemple comment remplir le combo1 quand tu charge le formulaire en question.

    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
    27
    28
    Dim BF1(2, 2) As String
     
    Private Sub Combo1_Click()
     Label8.Caption = BF1(Combo1.ListIndex, 1)
    End Sub
     
    Private Sub Form_Load()
    'tableau BF1
    BF1(0, 0) = 10:    BF1(0, 1) = 1.1:
    BF1(1, 0) = 15:    BF1(1, 1) = 1.05:
    BF1(2, 0) = 25:    BF1(2, 1) = 0.95:
     
    Dim BF2(2, 2) As String
    'tableau BF2
    BF2(0, 0) = 10:    BF2(0, 1) = 0.9:
    BF2(1, 0) = 20:    BF2(1, 1) = 1.15:
    BF2(2, 0) = 30:    BF2(2, 1) = 1.2:
     
     
    'Ajoute ton If combo est selectionné remplir combo1, sinon remplir combo2 de la meme façon
    Dim Taille As Integer
     
    Taille = UBound(BF1)
    Combo1.Clear
    For i = 0 To Taille
    Combo1.AddItem BF1(i, 0)
    Next
    End Sub

  7. #7
    Membre expert Avatar de OhMonBato
    Homme Profil pro
    Inscrit en
    Mars 2007
    Messages
    2 660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2007
    Messages : 2 660
    Points : 3 685
    Points
    3 685
    Par défaut
    Citation Envoyé par stephane.dantigny Voir le message
    BonSoir,
    Donc je vais être obligé de mettre un peu de code !!rires
    Alors je souhaite depuis une combo1 selectionner le tableau BF1 ou le tableau BF2.Ensuite suivre l'exemple

    exemple:
    Si j'ai selectionné le tableau BF1 depuis la combo 1, j'affiche dans la combo2
    10
    15
    25
    Ensuite si je choisi 25, j'affiche dans le label 8 la valeur immédiatement à droite
    0.95

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Dim BF1(2, 2) As String
    'tableau BF1
    BF1(0, 0) = 10:    BF1(0, 1) = 1.1:      
    BF1(1, 0) = 15:    BF1(1, 1) = 1.05:     
    BF1(2, 0) = 25:    BF1(2, 1) = 0.95:  
     
    Dim BF2(2, 2) As String
    'tableau BF2
    BF2(0, 0) = 10:    BF2(0, 1) = 0.9:      
    BF2(1, 0) = 20:    BF2(1, 1) = 1.15:     
    BF2(2, 0) = 30:    BF2(2, 1) = 1.20:
    Merci d'avance
    Bonjour,

    tu appelles ça mettre du code ? Jusqu'ici je vois une image comme premier message, puis maintenant quelques lignes pour affecter des valeurs à des variables mais en revanche je n'ai toujours pas vu la moindre ligne mettant en rapport ces variables avec les controles de ta feuille. Comme forcément tu as commencé à coder, puisque tu sais qu'on ne vient pas demander ici aux autres de faire intégralement un code à sa place, pourrais tu nous montrer où tu en es dans ton code et nous expliquer ce qui ne va pas ? Ce serait plus facile ainsi de t'aider à résoudre ton problème.
    Pour VB6 : N'oubliez pas d'aller voir la FAQ et les Tutoriels
    Vous trouvez une reponse particulierement utile ? Votez pour !

  8. #8
    Membre éclairé
    Inscrit en
    Décembre 2007
    Messages
    512
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 512
    Points : 671
    Points
    671
    Par défaut
    Bonjour,

    Charger une colonne d'un tableau dans une combo

    Avant de poster

    D'abord la première chose à faire serait de regarder dans la MSDN.
    Choix de la liste déroulante: Rechercher

    Entrez le mot à rechercher: Listbox ou Combobox

    Cliquer sur: Utilisation du contrôle
    et... de s'informer sur les propriétés du controle à utiliser

  9. #9
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 28
    Points : 15
    Points
    15
    Par défaut
    BonJour,
    Pour charger une colonne d'un tableau ca fonctionne ! génial
    1-Cependant je n'arrive pas à choisir le tableau 1 ou 2 pour remplir ma combo 2-Je voudrais mettre des lettres au lieu de chiffres dans ma colonne de gauche, mais ca ne s'affiche pas .

    Voici le code et une image

    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
    27
    28
    29
    30
    31
    32
    33
    34
    Dim BF1(2, 2) As String
    Dim BF2(2, 2) As String
    Private Sub Combo1_Click()
     Label8.Caption = BF1(Combo1.ListIndex, 1)
    End Sub
     
    Private Sub Form_Load()
     
    'choix du tableau pour remplir la combo1
    If (Controls("Option1").Value = True) Then
     tableau = 1
    End If
    If (Controls("Option2").Value = True) Then
     tableau = 2
    End If
     
    'tableau BF1
    BF1(0, 0) = 10:    BF1(0, 1) = 1.1:
    BF1(1, 0) = 15:    BF1(1, 1) = 1.05:
    BF1(2, 0) = 25:    BF1(2, 1) = 0.95:
     
    'tableau BF2
    BF2(0, 0) = 10:    BF2(0, 1) = 0.9:
    BF2(1, 0) = 20:    BF2(1, 1) = 1.15:
    BF2(2, 0) = 30:    BF2(2, 1) = 1.2:
     
    Dim Taille As Integer
     
    Taille = UBound(BF1)
    Combo1.Clear
    For i = 0 To Taille
    Combo1.AddItem BF1(i, 0)
    Next
    End Sub







    Merci d'avance
    Images attachées Images attachées  

  10. #10
    Membre éclairé
    Inscrit en
    Décembre 2007
    Messages
    512
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 512
    Points : 671
    Points
    671
    Par défaut
    Bonjour,

    Là, je ne comprends pas la syntaxe
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    'choix du tableau pour remplir la combo1
    If (Controls("Option1").Value = True) Then
    object.Controls(index)

    MSDN

    object.Controls(index)

    La syntaxe de la collection Controls comprend les éléments suivants :

    Élément Description
    Object Expression d'objet qui correspond à la valeur d'un objet figurant dans la rubrique "Application".
    Index Un entier compris entre 0 et Controls.Count - 1.
    Or "Option1" est une chaîne de caractères et pas un entier?

    Vu plus bas dans MSDN
    Vous pouvez aussi accéder aux membres à partir de leur nom. Par exemple :
    Controls("Command1").Top
    Donc excuse:syntaxe correcte

    Par contre,je ne vois aucune référence à la variable Tableau dans ton code.

  11. #11
    Membre actif
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    261
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 261
    Points : 216
    Points
    216
    Par défaut
    stephane.dantigny , De rien , pour le code que je t'ai fourni !

    Sinon lis ce qu'on t'a dit OhMonBato et iclic, car ils ont raison tu n'es pas du tout claire sur ce que tu veux, et apparement tu ne lis même pas les propriétés des composants !



    Voici le Code qui fera ce que tu veux, si j'ai bien compris !


    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
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    Dim BF1(2, 2) As String
    Dim BF2(2, 2) As String
    'Variable globale pour savoir quel combo on a selectionné
    Dim Combo As Byte
     
    Private Sub Combo1_Click()
     Label8.Caption = BF1(Combo1.ListIndex, 1)
    End Sub
     
    Public Sub RemplirCombo(MonCombo As Byte)
    Dim Taille As Integer
    Combo1.Clear
     
    If MonCombo = 1 Then
            Taille = UBound(BF1)
     
            For i = 0 To Taille
             Combo1.AddItem BF1(i, 0)
            Next
     
    Else
            Taille = UBound(BF2)
     
            For i = 0 To Taille
             Combo1.AddItem BF2(i, 0)
            Next
     
    End If
     
     
    End Sub
     
     
    Private Sub Form_Load()
     
    If Option1.Value = True Then
        Combo = 1
        Call RemplirCombo(1)
    Else
        Combo = 2
        Call RemplirCombo(2)
    End If
     
    'tableau BF1
    BF1(0, 0) = "A1":    BF1(0, 1) = 1.1:
    BF1(1, 0) = "B2":    BF1(1, 1) = 1.05:
    BF1(2, 0) = "C3":    BF1(2, 1) = 0.95:
     
    'tableau BF2
    BF2(0, 0) = "A2":    BF2(0, 1) = 0.9:
    BF2(1, 0) = "B2":    BF2(1, 1) = 1.15:
    BF2(2, 0) = "B3":    BF2(2, 1) = 1.2:
     
     
    End Sub
     
    Private Sub Option1_Click()
        Combo = 1
        Call RemplirCombo(1)
     End Sub
     
    Private Sub Option2_Click()
        Combo = 2
        Call RemplirCombo(2)
    End Sub

  12. #12
    Membre éclairé
    Inscrit en
    Décembre 2007
    Messages
    512
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 512
    Points : 671
    Points
    671
    Par défaut
    Bonjour justgreat,

    Moi personnellement, je préfère les groupes de contrôle indexés

    et faire 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
     
    Private Sub Option1_Click(Index As Integer)
      Select Case Index
     
         Case 0
                'afficher tableau 1 dans la Combo avec Additem
     
         Case 1
                 'afficher tableau 2 dans la Combo avec Additem
     
     End Select
    Mais chacun son choix...

    A+

  13. #13
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 28
    Points : 15
    Points
    15
    Par défaut
    Merci beaucoup à tous ceux qui m'ont répondu
    Bien entendu "justgreat" ! désolé si je n'y ai pas mis les formes mais vous, comme tous ceux qui contribuent à nous faire avancer ! nous !!novices !je vous tire mon chapeau !j'aurai bien aimé allé voir dans mdsn mais je ne l'ai pas chargé!

    J'ai juste modifié cette partie pour répondre à mes exigences

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    Private Sub Combo1_Click()
    If Option1.Value = True Then
    Label8.Caption = BF1(Combo1.ListIndex, 1)
    End If
    If Option2.Value = True Then
    Label8.Caption = BF2(Combo1.ListIndex, 1)
    End If
    End Sub
    Merci encore.. Et à la prochaîne..vs n'en avez pas fini encore avec moi !!!rires

  14. #14
    Modérateur
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 077
    Points : 17 165
    Points
    17 165
    Par défaut
    Citation Envoyé par justgreat Voir le message
    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
    Private Sub Form_Load()
     
    If Option1.Value = True Then
        Combo = 1
        Call RemplirCombo(1)
    Else
        Combo = 2
        Call RemplirCombo(2)
    End If
     
    'tableau BF1
    BF1(0, 0) = "A1":    BF1(0, 1) = 1.1:
    BF1(1, 0) = "B2":    BF1(1, 1) = 1.05:
    BF1(2, 0) = "C3":    BF1(2, 1) = 0.95:
     
    'tableau BF2
    BF2(0, 0) = "A2":    BF2(0, 1) = 0.9:
    BF2(1, 0) = "B2":    BF2(1, 1) = 1.15:
    BF2(2, 0) = "B3":    BF2(2, 1) = 1.2:
     
     
    End Sub
    Ne vaudrait il pas remplir les tableaux avant que de faire appel à Call RemplirCombo(1) ou Call RemplirCombo(2)?
    Soyez sympa, pensez -y
    Balises[CODE]...[/CODE]
    Balises[CODE=NomDuLangage]...[/CODE] quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Balises[C]...[/C] code intégré dans une phrase.
    Balises[C=NomDuLangage]...[/C] code intégré dans une phrase quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Le bouton en fin de discussion, quand vous avez obtenu l'aide attendue.
    ......... et pourquoi pas, pour remercier, un pour celui/ceux qui vous ont dépannés.
    👉 → → Ma page perso sur DVP ← ← 👈

  15. #15
    Membre actif
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    261
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 261
    Points : 216
    Points
    216
    Par défaut
    Citation Envoyé par stephane.dantigny Voir le message
    Merci beaucoup à tous ceux qui m'ont répondu
    Bien entendu "justgreat" ! désolé si je n'y ai pas mis les formes mais vous, comme tous ceux qui contribuent à nous faire avancer ! nous !!novices !je vous tire mon chapeau !j'aurai bien aimé allé voir dans mdsn mais je ne l'ai pas chargé!

    J'ai juste modifié cette partie pour répondre à mes exigences

    Private Sub Combo1_Click()
    If Option1.Value = True Then
    Label8.Caption = BF1(Combo1.ListIndex, 1)
    End If
    If Option2.Value = True Then
    Label8.Caption = BF2(Combo1.ListIndex, 1)
    End If
    End Sub

    Merci encore.. Et à la prochaîne..vs n'en avez pas fini encore avec moi !!!rires
    Pas de soucis.
    En fait, je t'avais déclarer une variable qui s'appelle Combo que tu peux utiliser aussi , si je l'ai fais c'était expres pour te donner plus d'idées.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Private Sub Combo1_Click()
    If Combo= 1 Then
    Label8.Caption = BF1(Combo1.ListIndex, 1)
    End If
    If Combo=2 Then
    Label8.Caption = BF2(Combo1.ListIndex, 1)
    End If
    End Sub
    Et si tu veux le faire comme t'as mis, donc tu peux ignorer les parties du code en rapport avec cette variable


    En tout cas, si c'est résolu, met que c'est résolu stp.

  16. #16
    Membre actif
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    261
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 261
    Points : 216
    Points
    216
    Par défaut
    Citation Envoyé par ProgElecT Voir le message
    Ne vaudrait il pas remplir les tableaux avant que de faire appel à Call RemplirCombo(1) ou Call RemplirCombo(2)?
    Tout à fait



    Sinon iclic, moi aussi pour les options j'aime bien utiliser les controls indexés, mais n'oubli pas il est débutant, donc faut lui expliquer ça après, en plus ce qu'il veut est simple, donc j'ai pas voulu lui compliquer les choses

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 08/05/2015, 10h23
  2. [WD-2007] Remplacement dans une colonne d'un tableau
    Par Liz99 dans le forum VBA Word
    Réponses: 3
    Dernier message: 29/09/2011, 17h02
  3. [Dojo] insertion d'éléments dans une colonne d'un tableau
    Par tapoutapou dans le forum Bibliothèques & Frameworks
    Réponses: 9
    Dernier message: 23/06/2010, 10h56
  4. Réponses: 4
    Dernier message: 13/01/2010, 09h37
  5. [XSL~FO] Débordement dans une colonne d'un tableau
    Par palmelas dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 29/01/2007, 20h59

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