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 :

Controle des Combos


Sujet :

VB 6 et antérieur

  1. #41
    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
    J'ai oublié quelque chose

    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
     
    Private Sub RempliComboCheque()
     
    Dim paiement(1) as string
    paiement(0)=  "Paiement_Cheque"
    paiement(1)=  "Paiement_Virement"
     
    'remplacer sauf la procédure tous les combochèque par Combo1(index)
     OuvreTable TableTemporaire, paiement(index), False
     Combo1(index).Clear
    If TableTemporaire.EOF Then
     Combo1(index).AddItem "Cette table est vide d'enregistrement"
     Combo1(index).ItemData(0) = "-1"
     Else
     TableTemporaire.MoveFirst
     For t = 1 To TableTemporaire.RecordCount
       if index=0 then 
           Combo1(index).AddItem TableTemporaire![Num_Code_Cheque]
           Combo1(index).ItemData(Combo1(index).NewIndex) = TableTemporaire![Num_Cheque] 'Num_Cheque]
                  else
           Combo1(index).AddItem TableTemporaire![Num_Code_virement]
           Combo1(index).ItemData(Combo1(index).NewIndex) = TableTemporaire![Num_virement] 'Num_virement]
       End if 
       TableTemporaire.MoveNext
     Next t
     TableTemporaire.Close
    End If
    Combo1(index).ListIndex = 0
    LabNumPaiement = Combo1(index).ItemData(Combo1(index).ListIndex)
    End Sub

  2. #42
    Membre à l'essai
    Inscrit en
    Avril 2009
    Messages
    130
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 130
    Points : 22
    Points
    22
    Par défaut Problème avec ... Erreur de compilation: Procédure Sub ou Function non définie
    Bonjour tout le monde

    Bonjour iclic Merci j'apprécie beaucoup ton idée ça rend mon code plus propre

    Citation Envoyé par iclic
    Au lieu de faire un combovirement et un combochéque ,fait un seul combo mais indexé par exemple combo1(0) et combo(1) (ce sera la variable index qui orientera soit vers virement soit vers chèque.
    Le combo est indexée
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Combo1(0)======>un seul combo
    il me resort Erreur de compilation: Procédure Sub ou Function non définie ...

    il surligne le combo en gris

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Private Sub OptionB_Click(index As Integer)
    Dim inver As Integer
    inver = index
    inver = Abs(index - 1) 'si index = 1 ,inver=0 et vice versa
    combo = Combo1(inver).ItemData(combo(inver).ListIndex)
    If Combo1(index).Text <> "" Then
        combo = Combo1(index).ItemData(Combo1(index).ListIndex) = True
    End If
    End Sub
    si vous pouvez m'éclairer ca m'arrangerais, moi je vois pas ou est le problème, plus je le commprend même pas

    Merci iclic

  3. #43
    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,
    Procédure Sub ou Function non définie
    Veut simplement dire que tu emploies un nom de sub ou de fonction qui n'est pas reconnu donc il faut bien regarder dans ton code :le nom d'une sub ou d'une fonction doit être rigoureusement identique

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    combo = Combo1(inver).ItemData(combo(inver).ListIndex)
    combo ce n'est pas la même chose que Combo1

    Ne serait-ce pas là ton erreur! combo(inver).Listindex n'est pas reconnu:
    donc
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    combo = Combo1(inver).ItemData(Combo1(inver).ListIndex)
    Un truc que j'utilise pour être sûr de l'orthographe d'un objet:
    quand tu encodes son nom,au moment où tu mets le point il affiche une liste avec le choix des propriétés,s'il ne le fait pas c'est que le nom n'est pas correct.

    A+

  4. #44
    Membre à l'essai
    Inscrit en
    Avril 2009
    Messages
    130
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 130
    Points : 22
    Points
    22
    Par défaut
    Bonjour iclic

    OUPS!!!! j'ai rectifiée l'erreur ,l'erreur disparaitra

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Private Sub OptionB_Click(index As Integer)
    Dim inver As Integer
    inver = index
    inver = Abs(index - 1) 'si index = 1 ,inver=0 et vice versa
    '===>Erreur combo = Combo1(inver).ItemData(Combo1(inver).ListIndex)
    If Combo1(index).Text <> "" Then
        combo = Combo1(index).ItemData(Combo1(index).ListIndex) = True
    End If
    End Sub
    Il me resort un nouveau erreur

    Erreur de compliation:varaible non définie

    J'ai mis

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Private Sub OptionB_Click(index As Integer)
    Dim inver As Integer
    dim combo As Combobox
    inver = index
    inver = Abs(index - 1) 'si index = 1 ,inver=0 et vice versa
    combo = Combo1(inver).ItemData(Combo1(inver).ListIndex)
    If Combo1(index).Text <> "" Then
        combo = Combo1(index).ItemData(Combo1(index).ListIndex) = True
    End If
    End Sub
    Mais ça donne un nouveau erreur

    Erreur d'exécution'340":
    l'élément du groupe de contrôle '1'n'existe pas

    il me surligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    combo = Combo1(inver).ItemData(Combo1(inver).ListIndex)
    Merci d'avance

  5. #45
    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
    Bon alors,

    1.tu prends ton controle comb1 dans le vb6 et tu vérifies dans les propriétés, le premier Combo1, tu dois avoir la propriété index=0

    2.Le deuxième controle Combo1 ,tu dois avoir la propriété index=1

    si ce n'est pasle cas tu la mets à 1

    Bosoir lunixienne

  6. #46
    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
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    dim combo As Combobox
    C'est quoi ça
    Là ce n'est pas logique
    puisque alors celà demande

    set... puisque combo devient un objet Combobox et il faut définir quel Combobox

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    dim combo As Combobox
    inver = index
    inver = Abs(index - 1) 'si index = 1 ,inver=0 et vice versa
    combo = Combo1(inver).ItemData(Combo1(inver).ListIndex)
    donc combo doit êtreune variable numérique et pas une variable objet.

    DE temps en temps il faut aller dans la MSDN car on y apprend beaucoup de choses nécessaires et primordiales

  7. #47
    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
    Encore une erreur,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    If Combo1(index).Text <> "" Then
        combo = Combo1(index).ItemData(Combo1(index).ListIndex) = TrueEnd If
    = puis =
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Combo1(index).ItemData(Combo1(index).ListIndex) = True
    combo = True
    A vérifier avec ton code ,de toute façon ,la première solution n'est pas bonne

  8. #48
    Membre à l'essai
    Inscrit en
    Avril 2009
    Messages
    130
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 130
    Points : 22
    Points
    22
    Par défaut
    Bonjour tout l'monde


    Un tout grand merci pour ton aide iclic

    @iclic je sollicite de nouveau votre aide


    Citation Envoyé par iclic
    Un truc que j'utilise pour être sûr de l'orthographe d'un objet:
    quand tu encodes son nom,au moment où tu mets le point il affiche une liste avec le choix des propriétés,s'il ne le fait pas c'est que le nom n'est pas correct.
    je ferai bon usage


    Erreur d'exécution'381":
    Index de tableau de propriétés incorrect

    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
     
    Private Sub OptionB_Click(Index As Integer)
    Dim inver As Integer
     
    inver = Index
    inver=1 Index=0
     
    inver = Abs(Index - 1) 'si index = 1 ,inver=0 et vice versa
    inver=1, Abs(Index -1)=1, Index=0
     
     
    combo = Combo1(inver).ItemData(Combo1(inver).ListIndex)
    combo=0 ------>inver=1--------------->inver=1
     
    If Combo1(Index).Text <> "" Then
        Combo1(Index).ItemData(Combo1(Index).ListIndex) = True
        combo = True
    End If
    End Sub
    Comment initialiser les OptionButtons dans la sub From-Load

    Merci d'avance

  9. #49
    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
    Bonjour,

    tant qu'à mettre du code autant mettre vraiment le code que tu as plutot que les lignes suivantes qui ne peuvent pas être acceptées par VB :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    inver=1 Index=0
    combo=0 ------>inver=1--------------->inver=1
    Autant préciser aussi sur quelle ligne se produit ton erreur.
    Enfin, utilises tu les moyens de débogage que propose VB et dont je t'avais parlé il y a quelques temps ? (points d'arrêts, exécution pas à pas, espions).
    Pour rappel :
    Citation Envoyé par OhMonBato Voir le message
    Pour débuguer un code, il est aussi très utile d'utiliser les outils de débogage (points d'arrêt, espions, etc...). Utilises tu ces outils ? Je te conseille par exemple de mettre le curseur sur la ligne "Select Case KeyAscii" et d'appuyer sur la touche F9, cela vaajouter un point d'arret, lances alors ton programme et quand tu vas saisir un numéro de chèque, le programme va s'arreter à cette ligne, pour suivre son exécution pas à pas, appuis ensuite sur F8, tu devrais mieux comprendre ce qui se passe
    Citation Envoyé par lunixienne Voir le message
    Je vous remercie beaucoup pour cette information très détaillée. je ne l'oubliera jamais C'est Promis.
    Pour finir, as tu tapé "initialiser OptionButtons VB" sur Google ? Une simple réflexion d'ailleurs suffirait si tu te posais la question "quelle propriété du contrôle dois-je modifier pour qu'un optionbutton soit activé ou pas ?"
    Pour VB6 : N'oubliez pas d'aller voir la FAQ et les Tutoriels
    Vous trouvez une reponse particulierement utile ? Votez pour !

  10. #50
    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,

    Dans le Form_Load en initialisant l'optionbutton
    par Option1(0).value = True
    tu fais un appel à la procédure
    Private sub OptionButton_Click (index as integer)

    or la valeur de la propriété listindex de la combo est égal à -1

    et tu as dans cette procédure:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Combo1(index).itemdata(Combo1(index).listindex) = True
    donc itemdata( -1 ) d'où
    certainement l'erreur Index de tableau de propriétés incorrect
    (un appel a Itemdata avec un indice plus grand que listcount -1 a le même effet)

    solution à essayer

    Mettre toutes les instructions de la procédure

    Private sub OptionButton_Click (index as integer)
    dans une autre procédure (ex:sub babar) que tu appelleras à un autre endroit,

    et mettre dans la procédure
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    Private sub OptionButton_Click (index as integer)
       dim inver as integer
     
       Combo1(index).visible = True  'par ex choix virement accessible
     
       inver = abs (index -1)
       Combo1(inver).visible = False 'donc chèque ne doit pas être accessible 
     
    End sub
    puis valider l'introduction de la zone texte de la Combo

    et faire à ce moment appel à la procédure que j'ai appelée Babar

    NB:
    1.Ne pas confondre Optionbutton et Checkbox


    Quand un OptionButton a la valeur true,tous les autres éléments sont automatiquement à false dans la form ou
    dans une frame (d' où l'intérêt de les mettre dans une frame).
    par contre le Checkbox peut avoir plusieurs éléments cochés.

    2.Un Combobox n'est jamais q'un Listbox associé avec un textbox
    donc toutes les propriétés d'un Combobox sont les mêmes qu'un Listbox

    A+

  11. #51
    Membre à l'essai
    Inscrit en
    Avril 2009
    Messages
    130
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 130
    Points : 22
    Points
    22
    Par défaut
    Bonsoir à tous

    Bonsoir iclic , OhMonBato , ProgElect

    Grand merci !

    Citation Envoyé par iclic
    Mettre toutes les instructions de la procédure

    Private sub OptionButton_Click (index as integer)
    dans une autre procédure (ex:sub babar) que tu appelleras à un autre endroit,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    Sub OptButton()
    Dim inver As Integer
    'Dim combo As Integer
    inver = index
    inver = Abs(index - 1) 'si index = 1 ,inver=0 et vice versa
    combo = Combo1(inver).ItemData(Combo1(inver).ListIndex)
    If Combo1(index).Text <> "" Then
        combo = Combo1(index).ItemData(Combo1(index).ListIndex) = True
        combo = True
    End If
    End Sub
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    Private Sub OptionButton_Click(index As Integer)
    Dim inver As Integer
     
       Combo1(index).Visible = True  'par ex choix virement accessible
     
       inver = Abs(index - 1)
    Debug.Print Combo1(inver).Visible = False   'donc chèque ne doit pas être accessible
     
    End Sub
    Code iclic : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    puis valider l'introduction de la zone texte de la Combo
     
    et faire à ce moment appel à la procédure que j'ai appelée Babar

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Private Sub Combo1_Change(index As Integer)
    Call OptButton
    End Sub
    il me envoie un nouveau erreur

    Erreur d'exécution'340":
    l'élément du groupe de contrôle '1'n'existe pas


    l'erreur surligne la ligne en rouge
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Private Sub OptionButton_Click(index As Integer)
    Dim inver As Integer
     
       Combo1(index).Visible = True  'par ex choix virement accessible
     
       inver = Abs(index - 1)
    Debug.Print Combo1(inver).Visible = False   'donc chèque ne doit pas être accessible
    
    End Sub
    Citation Envoyé par iclic
    Quand un OptionButton a la valeur true,tous les autres éléments sont automatiquement à false dans la form ou
    dans une frame (d' où l'intérêt de les mettre dans une frame).
    Je les ai placée dans une Frame

    Bonne soirée

  12. #52
    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'erreur est parlante.
    Combo1(1) n'est pas créé
    Il faut cliquer sur chaque Combo dans la form et vérifier la propriété index

    1er combo: propriété index = 0

    2e combo: propriété index = 1

  13. #53
    Membre à l'essai
    Inscrit en
    Avril 2009
    Messages
    130
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 130
    Points : 22
    Points
    22
    Par défaut
    Bonsoir,


    Merci iclic pour ta réponse . Tu m'as remis sur la bonne voie.

    Actuellement le code ça marche sauf pour une seule OptionButton l'autre ne marche pas

    quand je clique sur l'optionbutton1(0) le combo est rempli par les données de la table Paiement_Chèque mais quand je clique sur l'autre OptionButton1(1) pour remplir le combo par les données de la table Paiement_Virement le combo vide

    pas d'erreur

    Comment tester l'optionBUtton pour remplir le combo par les données de la table Paiement_virement

    Merci d'avance

Discussions similaires

  1. [xml]Controler des fichiers
    Par rafounette dans le forum XML/XSL et SOAP
    Réponses: 1
    Dernier message: 26/04/2006, 16h19
  2. controle des caracteres d'un formulaire
    Par pimpmyride dans le forum Langage
    Réponses: 4
    Dernier message: 11/01/2006, 11h35
  3. Controle des numéros utilisés
    Par Microquant dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 26/09/2005, 17h54
  4. controle des ports sous Delphi
    Par jakjoud dans le forum API, COM et SDKs
    Réponses: 2
    Dernier message: 10/07/2005, 19h16
  5. [jsp]controles des formulaires servlet ou javascript ?
    Par alexandra_ape dans le forum Servlets/JSP
    Réponses: 7
    Dernier message: 05/07/2004, 14h46

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