fixou81
Messages postés200Date d'inscriptionlundi 9 mai 2005StatutMembreDernière intervention12 juin 2007
-
22 mars 2007 à 15:05
fixou81
Messages postés200Date d'inscriptionlundi 9 mai 2005StatutMembreDernière intervention12 juin 2007
-
23 mars 2007 à 11:17
bonjour,
voila j'ai un treeview avec des cases a cocher. Quand l'utilisateur coche une case alors la case cochée s'ajoute dans une combobox.
Pour ca je fais :
Private Sub arborescence1_NodeCheck(ByVal Node As MSComctlLib.Node)
If Node.Checked Then
If Node.Text = "auto rééducation" Then
ComboBox1.AddItem "auto rééducation"
end if
If Node.Text = "hanche" Then
ComboBox1.AddItem "auto rééducation"
end if
......
end if
end sub.
Ca ca marche bien mais ensuite j'aimerai que si on decoche alors l'item s'enlève.
j'ai ajouté juste avant mon end sub précédent :
If Not Node.Checked Then
If Node.Text = "adducteurs" Then
ComboBox1.RemoveItem "adducteurs"
End If
end if
maisca ne marche pas ca me dit "argument non valide".
Je pense qu'il faudrait que j'indexe mes item mais j'ai beau essayer je ne vois pas et je ne trouve pas sur le site comment faire.
Quelqu'un aurait il une suggestion s'il vous plait?
Merci!
jmfmarques
Messages postés7666Date d'inscriptionsamedi 5 novembre 2005StatutMembreDernière intervention22 août 201427 22 mars 2007 à 15:23
Tu ne peux détruire un article d'une ComboBox qu'en te référant son indice.
Si tu veux te référer à son contenu, il te faudra commencer par une boucle sur les articles de ta combo jusqu'à trouver l'indice de l'article contenant ce "contenu", puis effacer l'article ayant cet indice-là ...!
fixou81
Messages postés200Date d'inscriptionlundi 9 mai 2005StatutMembreDernière intervention12 juin 2007 22 mars 2007 à 15:33
ok merci mais comment je fais pour donner des indices. J'ai pensé a :
Private Sub arborescence1_NodeCheck(ByVal Node As MSComctlLib.Node)
If Node.Checked Then
If Node.Text = "auto rééducation" Then
ComboBox1.AddItem "auto rééducation",1
end if
If Node.Text = "hanche" Then
ComboBox1.AddItem "hanche",2
....
If Not Node.Checked Then
If Node.Text = "adducteurs" Then
ComboBox1.RemoveItem (1)
End If
end if
mais apparement c pas comme ca qu'on indexe mais items....
fixou81
Messages postés200Date d'inscriptionlundi 9 mai 2005StatutMembreDernière intervention12 juin 2007 22 mars 2007 à 16:13
voila ce que j'ai fait :
If Node.Checked Then
If Node.Text = "auto rééducation" Then
ComboBox1.AddItem "auto rééducation", num5
End If
If Node.Text = "hanche" Then
ComboBox1.AddItem "hanche", num4
..........
end if
If Not Node.Checked Then
If Node.Text = "auto rééducation" Then
ComboBox1.RemoveItem (num5)
End If
If Node.Text = "hanche" Then
ComboBox1.RemoveItem (num4)
End If
.....
Mais ca ne marche pas parce qu'en fait ca m'enleve toujours le dernier item coché dans mon treeview et non l'item décoché..
A quoi servent les index alors...?
fixou81
Messages postés200Date d'inscriptionlundi 9 mai 2005StatutMembreDernière intervention12 juin 2007 22 mars 2007 à 16:59
j'ai essayé de faire comme tu la dis jmfmarques. Voila ce que j'ai fait :
Private Sub arborescence1_NodeCheck(ByVal Node As MSComctlLib.Node)
Dim var As String
If Node.Checked Then
If Node.Text = "auto rééducation" Then
ComboBox1.AddItem "auto rééducation"
End If
If Node.Text = "hanche" Then
ComboBox1.AddItem "hanche"
End If
...
If Not Node.Checked Then
For i = 1 To arborescence1.Nodes.Count
var = Node.Text
For j = 1 To ComboBox1.ListCount
If ComboBox1.Value = var Then
indice = ComboBox1.ListIndex
End If
Next
Next
ComboBox1.RemoveItem (indice)
End If
mais ca ne marche pas...je ne comprend plus trop la...
jmfmarques
Messages postés7666Date d'inscriptionsamedi 5 novembre 2005StatutMembreDernière intervention22 août 201427 22 mars 2007 à 17:31
Fais un petit projet avec une Combo Combo1 et un bouton Command1
et ce code :
Private Sub Form_Activate()
For i = 0 To 5
Combo1.AddItem i & "a"
Next
End Sub
Private Sub Command1_Click()
Var = "3a" ' ce que tu veux enlever
For i = 0 To Combo1.ListCount - 1
If Combo1.List(i) = Var Then
Combo1.RemoveItem (i)
Exit Sub
End If
Next
End Sub
fixou81
Messages postés200Date d'inscriptionlundi 9 mai 2005StatutMembreDernière intervention12 juin 2007 23 mars 2007 à 10:11
je comprend pas. J'ai fais comme tu ma dis. J'ai fais le petit projet et j'y est mis une textbox pour saisir ce qu'on veut enlever. Ca marche et ca donne :
Private Sub UserForm_Activate()
For i = 0 To arborescence1.nodes.count
ComboBox1.AddItem i & Node.text
TextBox1.Text = Node.Text
Next
End Sub
Private Sub Commandbutton1_Click()
Dim var As String
var = Node.text ' ce que tu veux enlever
For i = 0 To ComboBox1.ListCount - 1
If ComboBox1.List(i) = var Then
ComboBox1.RemoveItem (i)
Exit Sub
End If
Next
End Sub
donc ca ca marche très bien. Je l'ai donc adapté pour mon treeview a cocher. Je veux ken je coche ke ca ajoute a treeview et kan je decoche ca l'enleve :
Private Sub arborescence1_NodeCheck(ByVal Node As MSComctlLib.Node)Dim Dim image As String
Dim var As String
If Node.Checked Then
ComboBox1.AddItem i & Node.Text
end if
If Not Node.Checked Then
var = Node.Text
For i = 1 To ComboBox1.ListCount - 1
If var = Node.Text
For i = 1 To ComboBox1.ListCount - 1
If ComboBox1.ListIndex(i) = var Then
ComboBox1.RemoveItem (i)
End If
Next
End If var = Node.Text
For i = 1 To ComboBox1.ListCount - 1
If ComboBox1.ListIndex(i) = var Then
ComboBox1.RemoveItem (i)
End If
Next
End If
end sub
mais ca me met un message d'erreur au niveau de ComboBox1.ListIndex(i) = var a me dis incompatibilité de types. Alors que ca marchait avant...Je n'y comprend plus rien!
fixou81
Messages postés200Date d'inscriptionlundi 9 mai 2005StatutMembreDernière intervention12 juin 2007 23 mars 2007 à 10:36
rah mauvais copier coller. Je remet ce que j'ai fait :
Private Sub arborescence1_NodeCheck(ByVal Node As MSComctlLib.Node)Dim var As String
If Node.Checked Then
ComboBox1.AddItem Node.Text
end if
If Not Node.Checked Then
var = Node.Text
If ComboBox1.List(i) = var Then
ComboBox1.RemoveItem (i)
End If
Next
End If
end sub
J'ai toujours un souci au niveau de combobox1.list(i) alors que ca marchait quand j'ai fait un petit projet ou j'y est mis une textbox pour saisir ce qu'on veut enlever. Ca marche et ca donne :
Private Sub UserForm_Activate()
For i = 0 To arborescence1.nodes.count
ComboBox1.AddItem i & Node.text
TextBox1.Text = Node.Text
Next
End Sub
Private Sub Commandbutton1_Click()
Dim var As String
var = Node.text ' ce que tu veux enlever
For i = 0 To ComboBox1.ListCount - 1
If ComboBox1.List(i) = var Then
ComboBox1.RemoveItem (i)
Exit Sub
End If
Next
End Sub
et la j'ai pas de souci a combobox1.list(i).
Je ne vois pas ce qui change pour qu'il veuille pas....
fixou81
Messages postés200Date d'inscriptionlundi 9 mai 2005StatutMembreDernière intervention12 juin 2007 23 mars 2007 à 11:17
bon je comprend rien. Combobox.list(i) il veut pas alors qu'il a voulut avec le petit projet que j'ai fait avant... Peut etre qu'il y a un truc avec le treeview en tout cas je ne vois pas l'erreur....