
validando un valor antes de añadirlo a un listbox
Publicado por Jorge (39 intervenciones) el 14/08/2021 15:28:12
Hola buenos días, recurro hacer la siguiente consulta ya que he buscado en videotutoriales, guias y en la web y no encuentro la falla en mi código o no logro reflejar el momento en que me esta dando problemas.
En mi formulario tengo una listbox1, si quiero agregar un nuevo item lo hago desde "cedula", lo que quiero es una condición que si el valor de cedula es igual a algún valor que haya en listbox1 me de el mensaje "No puedes agregar esta cédula ya que se encuentra en la lista", pero si cedula no coincide con ningún valor que este en el listbox1 me añada al listbox lo que haya en cedula.

El código mas cercano al resultado que agregue fue el presente a continuacion:
En mi formulario tengo una listbox1, si quiero agregar un nuevo item lo hago desde "cedula", lo que quiero es una condición que si el valor de cedula es igual a algún valor que haya en listbox1 me de el mensaje "No puedes agregar esta cédula ya que se encuentra en la lista", pero si cedula no coincide con ningún valor que este en el listbox1 me añada al listbox lo que haya en cedula.

El código mas cercano al resultado que agregue fue el presente a continuacion:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
Private Sub mas_cedula_AfterUpdate(): On Error Resume Next
Dim Fila As Long
Dim i As Integer
Dim cargo, nombre As String
Fila = Hoja3.Range("A" & Rows.Count).End(xlUp).Row
cargo = WorksheetFunction.VLookup(Val(mas_cedula), Hoja3.Range("A2:H" & Fila), 2, 0) 'busca el cargo de cedula
nombre = WorksheetFunction.VLookup(Val(mas_cedula), Hoja3.Range("A2:H" & Fila), 3, 0) 'busca el nombre de la cedula
If siHay = 1 Then 'siHay es una variable publica
With ListBox1
For i = 0 To .ListCount
If UCase(.List(i, 1)) Like UCase(mas_cedula) & "*" Then
MsgBox "El involucrado que intenta añadir ya se encuentra en la lista", vbCritical, "ATENCION"
mas_cedula = Empty
Exit Sub
Else
.AddItem
i = .ListCount - 1
.List(i, 0) = Val(ID)
.List(i, 1) = Val(mas_cedula)
.List(i, 2) = cargo
.List(i, 3) = nombre
mas_cedula = Empty
End If
Next i
End With
End If
End Sub
Valora esta pregunta


0