Jump to content
jyescass

Evitar datos duplicados en ListBox en la segunda columna

Recommended Posts

Hola que tal muy buen día.

Por este medio quisiera su apoyo para lo siguiente ya que no he podido encontrar la solución.

Necesito evitar que se ingresen datos repetidos en un ListBox, pero el campo para hacer la comparación esta en la segunda columna.

Tengo el siguiente código pero solo funciona cuando el dato repetido se encuentra en la primera fila.

No se si me explico.

Adjunto archivo de ejemplo.

Les agradezco la atención.

 

Saludos.

Private Sub CommandButton1_Click()
Dim a As String
Dim b As Long
Dim d As Long

a = TextBox2
b = 0
For d = 0 To ListBox1.ListCount - 1
If ListBox1.Column(1, Index) = a Then b = (b + 1)
Next d

If b > 0 Then
MsgBox ("Dato repetido")
Exit Sub
End If

ListBox1.ColumnCount = 3
ListBox1.AddItem Me.TextBox1
ListBox1.List(k, 1) = Me.TextBox2
ListBox1.TextColumn = 3
k = k + 1
End Sub

FORO.xlsm

Share this post


Link to post
Share on other sites

Mi estimado Riddle, muchísimas gracias por tu valioso apoyo.

Funciona a la perfección.

Basándome en en tu ejemplo he modificado el mío y ya esta funcionando.

Te lo agradezco mucho.

Dejo el código que tengo por si a alguien le sirve.

Saludos y que Dios les siga bendiciendo.

Private Sub CommandButton1_Click()
Dim a As String
Dim b As Long
Dim d As Long

a = TextBox2
b = 0
For d = 0 To ListBox1.ListCount - 1
If ListBox1.List(d, 1) = a Then b = (b + 1)
Next d

If b > 0 Then
MsgBox ("Dato repetido")
Exit Sub
End If

ListBox1.ColumnCount = 3
ListBox1.AddItem Me.TextBox1
ListBox1.List(k, 1) = Me.TextBox2
ListBox1.TextColumn = 3
k = k + 1
End Sub

  

Share this post


Link to post
Share on other sites

Un placer ayudar, sin embargo te recomiendo revisar bien tu código ya que podrías optimizarlo un poco, como ejemplo tu código recorre todo el listbox aunque ya haya encontrado el dato repetido puesto que la validación esta después del ciclo for, en el ejemplo que te adjunte puedes observar que al momento de encontrar el dato repetido sale inmediatamente del ciclo for muestra el mensaje y marca donde esta duplicado.

Tal vez esto lo que te puede ahorrar sean solo unos milisegundos, pero quien sabe esos milisegundos te pueden hacer falta en el futuro. ;)

Saludos.     

Share this post


Link to post
Share on other sites

Estimado Riddle muy buenas tardes.

Una vez mas tienes toda la razón

No hay por que recorrer todo el ListBox después de encontrar el duplicado.

Te agradezco mucho la observación.

Saludos 

Share this post


Link to post
Share on other sites
Guest
This topic is now closed to further replies.



×
×
  • Create New...

Important Information

Privacy Policy


CTA Templates.png