La non répétition d'un événement dans VB

NagNag -  
Polux31 Messages postés 7219 Statut Membre -
Bonjour,
comment je peux valider des donnés à partir d'un combobox, et si à chaque fois un élément est sélectionné l'événement ne sera pas exécuté une autre fois de ce même élément.
Configuration: Windows 2000
Internet Explorer 6.0

16 réponses

  1. PBGunner Messages postés 64 Statut Membre 64
     
    euh...j'ai pas tout compris...

    Qu'appelle tu un élément?
    Sur quel logiciel? Excel? Word? Access? autre?
    0
  2. PBGunner Messages postés 64 Statut Membre 64
     
    Si j'ai bien compris:
    tu a un certain nombre d'objets que tu selectionne via un combobox,
    tu lance une action sur l'objet selectionné dans le combobox, mais tu ne peux faire cette action qu' une seule fois...exacte?
    Que se passe-t-il si tu selectionne un autre objet, que tu relance l'action: Peux tu revenir au premier objet et relancer l'action?
    0
  3. NagNag
     
    Non, le contraire est vraie, je veux sélectionner l'élément du combobox. Autrement, une fonction que l'exécution se fait qu'une seule fois.
    0
  4. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  5. Polux31 Messages postés 7219 Statut Membre 1 204
     
    Salut Nagnag,

    Pourquoi ne pas supprimer l'item de la combo une fois le code exécuté ?
    0
  6. NagNag
     
    Tu LEADER du programmation POLUX31, mais où est-tu ? tu es mon sauveur ahhhhh!!!!!!!!!!!, mais tu restes trop pour me repondre en tout cas merci beaucoup.
    0
  7. Polux31 Messages postés 7219 Statut Membre 1 204
     
    de rien ;o)
    0
  8. NagNag
     
    tu vois POLUX31, que l'idée est toujours difficile, ici l'experience et l'intellegence!
    0
  9. Polux31 Messages postés 7219 Statut Membre 1 204
     
    lol l'expérience peut être ... pour l'intelligence je ne crois pas ... je galère aussi souvent ...

    bon courage

    ;o)

    polux
    0
  10. NagNag
     
    POLUX31,
    Je veux remplir une Listview(LstA) de la form "A" dans une Listview (LstB) dans une autre form "B" j'ai essayé comme ça :


    Dim i As Long

    Load B

    With B

    For i = 1 To LstA.ListItems.Count
    .LstB.AddItem LstA.ListItems(i).ListSubItems(i).Text
    Next i
    .Show
    End With



    NB: ca na pas marché
    0
  11. Polux31 Messages postés 7219 Statut Membre 1 204
     
    arfff non ça ne peut pas marcher ...

    Pour manipuler des données il est préférable de les stocker dans des variables ou dans des tableaux. Récupère d'abord les items de listB dans un tableau puis fait passer les données vers lstA ... c'est plus propre ...

    ;o)

    n'hésite pas si tu as un blème.

    Polux
    0
  12. NagNag
     
    Bonjour,
    J'ai ce qui suit POLUX31:
    Public Function ListvwRun(LSV1 As ListView, LSV2 As ListView)

    Dim lg As Long
    Dim x As Long
    Dim lstitem As ListItem

    x = LSV1.ListItems.Count

    ReDim Tabl(x) As Long

    For lg = 1 To x

    With LSV1.ListItems
    Set lstitem = LSV2.ListItems.add(, , CStr(.Item(lg).SubItems(1)))
    If Not IsNull(.Item(lg).SubItems(1)) Then lstitem.SubItems(1) = _
    CStr(.Item(lg))
    End With

    Next

    End Function
    NB : RESTE A TROUVER A RECUPERER L'INDEX ?
    0
  13. NagNag
     
    Bonjour, POLUX31
    Comment peut-on divier une Liste (ListBox) en n colonnes à partir d'une base de donnée, puis renvoyer chaque colonne dans Labels, Merci de m'aider.
    0
  14. Polux31 Messages postés 7219 Statut Membre 1 204
     
    Bonjour Nagnag

    Peux-tu m'expliquer pourquoi tu veux renvoyer chaque colonne de la listbox dans un Label ?? C'est possible de faire des colonnes dans un listBox, mais il existe un composant qui fait très bien ça c'est le MSFlexGrid ou le DataGrid. Pour avoir plus d'info sur ces 2 composants, fait un tour sur le site http://www.developpez.com, et consulte la FAQ sur VB6.

    Je crois que la collection Microsoft Forms 2.0, gère les colonnes dans les listBox ... sinon il faut utiliser une API (librairie intégrée à Windows) ... ensuite on peut effectivement renvoyer chaque colonne dans un label... moyennant quelques lignes de code qui vont bien ...

    ;o)

    Polux
    0
  15. Nagnag Messages postés 3 Statut Membre
     
    C'est simple d'utiliser Datagrid,MSHFlexGrid,Datarepeater.... mais je veux dans la listbox, OK POLUX31
    0
  16. Polux31 Messages postés 7219 Statut Membre 1 204
     
    voilà ce que j'ai trouvé (http://www.developpez.com) ... à toi d'adapter, mais je ne l'ai jamais utilisé:

    Les items doivent être inserés dans la liste séparés par des tabulations, par exemple:

    List1.Additem "champ1" & vbTab & "champ2" & vbTab & "champ3"

    Si la police est à chasse fixe (Courrier, par exemple), les colonnes sont alors correctement alignées, mais si la police est à chasse variable (ce qui est le cas la plupart du temps), il faut utiliser les API de Windows pour faire un alignement correct, comme suit:

    Placez ce code dans un module:

    Public Declare Function SendMessage Lib "user32" Alias "SendMessageA" _
    (ByVal hwnd As Long, ByVal wMsg As Long, _
    ByVal wParam As Long, lParam As Any) As Long

    Public Const LB_SETTABSTOPS = &H192

    Utilisez ensuite le code suivant pour produire une liste avec des champs alignés proprement:

    Private Sub Form_Load()

    'ce tableau va contenir les positions des tabulations (ce qui equivaut
    'à la largeur des colonnes
    ReDim tabstop(0 To 2) As Long

    'on positionne les tabulations
    tabstop(0) = 90
    tabstop(1) = 130
    tabstop(2) = 185

    'on efface puis on réinitialise les tabulations
    Call SendMessage(List1.hwnd, LB_SETTABSTOPS, 0&, ByVal 0&)
    Call SendMessage(List1.hwnd, LB_SETTABSTOPS, 3, tabstop(0))
    List1.Refresh

    End Sub
    0