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

[Fermé]
Signaler
-
Messages postés
6917
Date d'inscription
mardi 25 septembre 2007
Statut
Membre
Dernière intervention
1 novembre 2016
-
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.

16 réponses

Messages postés
64
Date d'inscription
mercredi 17 octobre 2007
Statut
Membre
Dernière intervention
29 juillet 2008
64
euh...j'ai pas tout compris...

Qu'appelle tu un élément?
Sur quel logiciel? Excel? Word? Access? autre?
Bonjour,
avec le VB6
Messages postés
64
Date d'inscription
mercredi 17 octobre 2007
Statut
Membre
Dernière intervention
29 juillet 2008
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?
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.
Messages postés
6917
Date d'inscription
mardi 25 septembre 2007
Statut
Membre
Dernière intervention
1 novembre 2016
1 182
Salut Nagnag,

Pourquoi ne pas supprimer l'item de la combo une fois le code exécuté ?
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.
Messages postés
6917
Date d'inscription
mardi 25 septembre 2007
Statut
Membre
Dernière intervention
1 novembre 2016
1 182
de rien ;o)
tu vois POLUX31, que l'idée est toujours difficile, ici l'experience et l'intellegence!
Messages postés
6917
Date d'inscription
mardi 25 septembre 2007
Statut
Membre
Dernière intervention
1 novembre 2016
1 182
lol l'expérience peut être ... pour l'intelligence je ne crois pas ... je galère aussi souvent ...

bon courage

;o)

polux
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é
Messages postés
6917
Date d'inscription
mardi 25 septembre 2007
Statut
Membre
Dernière intervention
1 novembre 2016
1 182
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
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 ?
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.
Messages postés
6917
Date d'inscription
mardi 25 septembre 2007
Statut
Membre
Dernière intervention
1 novembre 2016
1 182
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
Messages postés
3
Date d'inscription
vendredi 2 novembre 2007
Statut
Membre
Dernière intervention
2 novembre 2007

C'est simple d'utiliser Datagrid,MSHFlexGrid,Datarepeater.... mais je veux dans la listbox, OK POLUX31
Messages postés
6917
Date d'inscription
mardi 25 septembre 2007
Statut
Membre
Dernière intervention
1 novembre 2016
1 182
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