| | Mach | Posté le 09/02/2005 @ 06:55 | Petit astucien
24 Messages
| Bonjour,
J'ai un form contenant particulièrement 3 ComboBox :
CboNature= Nature d'un équipement (Imprimante,Moniteur,Scanner)
CboRendu prend les items "Couleurs" et "Noir/blanc"
CboTechnologie prend soit "Laser" et "Jet d'encre"; soit "CRT" et "LCD"; soit encore "A Plat" et "A Main" ; selon qu'il s'agit respectivement d'une imprimante, d'un moniteur ou d'un scanner
Lorqu'on choisit une imprimante, CboRendu prend les Items "Couleurs" et "Noir/blanc". Dans les autres cas, la liste se vide totalement de tout son contenu.Et, CboTechnologie actualise ses items (suppression totale/insertion)
Au chargement du formulaire, CboRendu et CboTechnologie sont vides (sans item)
Mon problème:
J'ai des restes des items qui reapparaissent dans les cas où ils ne le devraient pas.
Comment y remedier ?
Voici un extrait de mon code. 2 linges d'astérisques rapprochées encadrent le code qui supprime le contenu d'une liste modifiable
Merci d'avance
[code]Private Sub CboNature_AfterUpdate()
On Error Resume Next
Dim I As Long
'CAS IMPRIMANTE/FAX
If Me.CboNature.Text = "Imprimante" Then
'RENDU
'Charger la liste
Me.CboRendu.AddItem "Couleurs"
Me.CboRendu.AddItem "Noir/blanc"
'TECH
'**********************************************
'Vider la liste
For I = 0 To Me.CboTechnologie.ListCount - 1
Me.CboTechnologie.RemoveItem (I)
Next I
'**********************************************
'Charger la liste des technologies
Me.CboTechnologie.AddItem "Jet d'encre"
Me.CboTechnologie.AddItem "Laser"
End If
'CAS MONITEUR
If Me.CboNature.Text = "Moniteur" Then
'RENDU
'**********************************************
'Vider la liste
For I = 0 To Me.CboRendu.ListCount - 1
Me.CboRendu.RemoveItem (I)
Next I
'**********************************************
'TECH
'**********************************************
'Vider la liste des technologies
For I = 0 To Me.CboTechnologie.ListCount - 1
Me.CboTechnologie.RemoveItem (I)
Next I
'**********************************************
'Charger la liste des technologies
Me.CboTechnologie.AddItem "CRT"
Me.CboTechnologie.AddItem "LCD"
End If
'CAS DU SCANNER
If Me.CboNature.Text = "Scanner" Then
'RENDU
'**********************************************
'Vider la liste
For I = 0 To Me.CboRendu.ListCount - 1
Me.CboRendu.RemoveItem (I)
Next I
'**********************************************
'TECH
'**********************************************
'Vider la liste des tech
For I = 0 To Me.CboTechnologie.ListCount - 1
Me.CboTechnologie.RemoveItem (I)
Next I
'**********************************************
'Charger la liste des tech
Me.CboTechnologie.AddItem "A Plat"
Me.CboTechnologie.AddItem "A Main"
End If
End Sub[/code]
| | |
| |
| Publicité |
|
| | Woully | Posté le 11/02/2005 à 12:14 | Petit astucien
24 Messages
| Salut,
ton probleme viens du fait que ta boucle qui est censée supprimer tes items va de 0 jusqu'à List.count
Lors du premier passage dans ta boucle, l'item[0] est supprimé, ce qui décrémente également ta valeure List.count.
Du coup l'item[List.count-1] ne sera plus supprimé!!!!
Je ne sais pas si tu t'en sors avec me explications :-)
En tous les cas, pour supprimer tous les items, integre ce code :
'TECH
'**********************************************
'Vider la liste
For I = Me.CboTechnologie.ListCount - 1 DownTo 0 Me.CboTechnologie.RemoveItem (I)
Next I
'**********************************************
a+
woully | | | |
| | Haut de la page |
| | Inscrivez-vous ! |
- Posez vos questions
- Résolvez vos problèmes
- Aidez les autres
- Participez et créez vos discussions
- Dialoguez en privé avec d'autres membres
- Suivez vos sujets préférés
- Affichez les signatures des membres
|
|