Buscar valor con macro

Buenas tarde Sres.
tengo un inconveniente poseo el siguiente código el cual me presenta un pegon. El objetivo de este código es que busque el valo del textbox txttrasmicion en el libro activo si lo encuentra en le label lblllave aparezca duplicado y por ende se oculten los demás textbox, etc. Si no lo encuentra en lblllave aparezca pago aceptado y aparezcan los demás textbox, etc. El problema de esta macro es que no me ejecuta la parte de que si encuentra el valor
gracias por su ayuda
Sub buscar2()
If txtTrasmicion = "" Then Exit Sub
For Each hoja In Sheets
If hoja.Name <> "1" Then
With hoja.Range("A2:AA5000")
Set N = Cells.Find(txtTrasmicion)
If N Is Nothing Then
lblLlave = "PAGO ACEPTADO"
txtMonto.Visible = True
txtFecha.Visible = True
cbMes.Visible = True
cmbGuardar.Visible = True
Frame3.Visible = True
txtObservacion.Visible = True
Sheets("1").Select
Else
lblLlave = "PAGO DUPLICADO"
txtMonto.Visible = False
txtFecha.Visible = False
cbMes.Visible = False
cmbGuardar.Visible = False
Frame3.Visible = False
txtObservacion.Visible = False
Sheets("1").Select
Exit Sub
End If
End With
End If
Next hoja
End Sub
?

1 Respuesta

Respuesta
1
¿Cómo qué no te ejecuta la parte de que si encuentra el valor?
Veamos la parte del SET:
Set N = Cells.Find(txtTrasmicion)     'falta acotar la búsqueda

'si el resultado de la búsqueda, o sea N está vacía (nothing) entonces se ejecuta lo siguiente
If N Is Nothing Then   
   lblLlave = "PAGO ACEPTADO"
   txtMonto.Visible = True
   txtFecha.Visible = True
   cbMes.Visible = True
   cmbGuardar.Visible = True
   Frame3.Visible = True
   txtObservacion.Visible = True
   Sheets("1").Select
Else
'sino (es decir que sí encontró el dato, se ejecuta el resto
   lblLlave = "PAGO DUPLICADO"
   txtMonto.Visible = False
   txtFecha.Visible = False
   cbMes.Visible = False
   cmbGuardar.Visible = False
   Frame3.Visible = False
   txtObservacion.Visible = False
   Sheets("1").Select
   Exit Sub
End If
Es decir que sí está contemplado. Pero quizás no encuentra el dato porque en el textbox aparece como texto y quizás en la hoja se trate de un valor o una fecha...
Si es un valor numérico tenés que usar Set N = Cells.Find(Val(txtTrasmicion))
Buenos días es un placer saludarle y un privilegio que usted sea la persona que me ayuda
el valor de del textbox es alfanumérico por ejemplo 20110610L1234, probé con el código que usted me esta aclarando pero aun no se ejecuta la parte que si encuentra el valor, 
??lblLlave = "PAGO DUPLICADO"
txtMonto.Visible = False
txtFecha.Visible = False
cbMes.Visible = False
cmbGuardar.Visible = False
Frame3.Visible = False
txtObservacion.Visible = False
Sheets("1").Select
Exit Sub
Bien, entonces la línea del Set es ésta:
Set N = .Find(txtTrasmicion)
Porque hoja y rango ya lo tenés definido en el With (vá un pto delante del Find)
PD) no dejes de visitar mi sitio: hay ejemplos y material sin cargo para empezar...
Sdos
Elsa
http://aplicaexcel.galeon.com/manuales.htm
buenos días me es un placer saludarle nuevamente
le agradezco la ayuda brindada, solo un favor mas poseo un problema con la siguiente sentencia, no se ejecuta, el objetivo de esta es buscar un valor de una celda en otra hoja especifica.
?Sub aplicar()
Sheets("consulta").Select
dat = Range("E7").Select ' este es el valor a buscar
If Range("I7") = "Ene" Then 'esta la hoja en la cual va a buscar
Sheets("ENE").Select
Cells.Find(What:=dat, After:=ActiveCell, LookIn:=xlValues, _
LookAt:=xlPart, SearchOrder:=xlByColumns, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False).Activate
ActiveCell.Offset(0, 9).Activate
ActiveCell.FormulaR1C1 = "Pago Efectuado"
Sheets("consulta").Select
End If
End Sub
No, disculpa pero solo respondemos 1 tema por vez.
Finaliza ésta, y deja la nueva en el tablón que con mucho gusto la atenderé... pero hay otros usuarios que también necesitan recibir sus respuestas y así vamos tratando de llegar a todos.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas