Visual Basic - No repetir elementos en una lista

Life is soft - evento anual de software empresarial
 
Vista:

No repetir elementos en una lista

Publicado por Dani (2 intervenciones) el 31/05/2007 19:32:04
Hola, estoy haciendo un programa en Visual Basic, os explico el problema:
El caso es que tengo un listbox y un command button; al pulsar el command button tengo que meter en el listbox el contenido de una variable, y así sucesivamente, pero no puedo introducir elementos que ya estén en la lista, en ese caso me tiene que salir un mensaje informándome de que el elemento ya está en la lista.
Lo he intentado muchas veces pero no me sale:
---------------------------------------------------------------------------------------------------------------------------
For a = 0 To List1.ListCount
If resultado = List1.List(a) Then
repetido = MsgBox("La resistencia seleccionada ya está en la lista.", vbOKOnly + vbInformation, "¡ATENCIÓN!")
GoTo fin
Else
List1.AddItem resultado
End If
Next a
fin:
---------------------------------------------------------------------------------------------------------------------------
a = 0
Do While a <= List1.ListCount
If resultado = List1.List(List1.ListIndex) Then
repetido = MsgBox("La resistencia seleccionada ya está en la lista.", vbOKOnly + bInformation, "¡ATENCIÓN!")
Else
List1.AddItem resultado
End If
a = a + 1
Loop
---------------------------------------------------------------------------------------------------------------------------

A ver si me podeis echar un cable.
Salu2 y Gracias!!!!!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:No repetir elementos en una lista

Publicado por Tomas (28 intervenciones) el 31/05/2007 20:13:18
Bueno el error esta en la primera linea del for tu lo tienes asi

For a = 0 To List1.ListCount

pero es asi

For a = 0 To List1.ListCount -1

prueba y veras
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:No repetir elementos en una lista

Publicado por Dani (2 intervenciones) el 31/05/2007 23:14:04
Pues si pongo:
For a=0 to list1.listcount-1, no me añade ningún elemento a la lista, o sea que esta no es la solución.
Gracias de todas formas.
¿¿A alguien se le ocurre como podría ser??
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Inténtalo así ...

Publicado por Ayudante (62 intervenciones) el 31/05/2007 23:38:10
Usa una variable lógica, pero deberás recorrer toda la lista, salvo cuando sea localizado el contenido de "resultado", se sale del ciclo:

blYaEsta = False
For a = 0 To List1.ListCount -1 'Sí debe ser "menos uno", como dice Tomas
If resultado = List1.List(a) Then
blYaEsta = True
MsgBox "La resistencia seleccionada ya está en la lista.", vbOKOnly + vbInformation, "¡ATENCIÓN!"
Exit For ' Ya no sigue buscando, si ya lo encontró.
End if
Next ' No necesitas la variable "a"

' SI la variable blYaEsta quedó en False, es porque no lo localizó en la lista, entonces lo agregas.
If Not blYaEsta Then List1.AddItem resultado
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar