Ver Mensaje Individual
  #6 (permalink)  
Antiguo 10/07/2006, 02:07
Avatar de 3pies
3pies
Colaborador
 
Fecha de Ingreso: diciembre-2003
Ubicación: Desde una destilería
Mensajes: 2.584
Antigüedad: 20 años, 5 meses
Puntos: 144
En el ejemplo anterior, cambia el código que hay por este otro más elaborado.
Código:
Private Sub CommandButton1_Click()
'Ocultamos el procecimiento, para que no se muestre en pantalla,
'como recorre todas las filas, en busca del código
Application.ScreenUpdating = False
'Indicamos cual es la celda actual donde estamos, para volver a ella posteriormente,
'así parecerá que no nos hemos movido del sitio :-)
dondeestoy = ActiveCell.Address
'Si hay un error saltamos a la línea "mensaje_error"
On Error GoTo mensaje_error
'Pasamos el código a buscar, a una variable,
'eliminando los posibles espacios vacíos que haya delante y detrás del código
codigo_a_buscar = Trim(TextBox1.Value)
'Lo buscamos, coincidiendo todo el contenido de la celda, con el código,
'ya que con el anterior código, si buscábamos el artículo "M33", nos lo
'encontraba ya que había un artículo cuyo código contenía esos caracteres (M33RRG)
Cells.Find(What:=codigo_a_buscar, After:=ActiveCell, LookIn:=xlFormulas, LookAt _
  :=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _
  False, SearchFormat:=False).Activate
'Seleccionamos el valor de la columna de la derecha (descripción),
'y pasamos ese valor a una variable
descripcion_del_codigo = ActiveCell.Offset(0, 1).Value
'Si un artículo no tiene descripción, creamos una descripción que indique
'que el artículo no tiene descripción :-)
If descripcion_del_codigo = "" Then descripcion_del_codigo = "Artículo sin descripción"
'Lo ponemos en la etiqueta oculta, pero delante ponemos el artículo,
'y el signo igual, siempre y cuando el código exista
If codigo_a_buscar <> "" Then
    Label2.Caption = codigo_a_buscar & " = " & descripcion_del_codigo
End If
'Limpiamos (quitamos) el código introducido
TextBox1.Value = ""
'Ponemos el focus en el cuadro de texto
TextBox1.SetFocus
'Volvemos a la celda donde estábamos inicialmente
Range(dondeestoy).Select
'Mostramos el procedimiento
Application.ScreenUpdating = True
'Finalizamos el macro
Exit Sub
'Código que se ejecuta, en caso de encontrarnos con un error
mensaje_error:
    'Mostramos un mensaje
    Mensajillo = MsgBox(Chr(13) & "    Artículo no encontrado." & Chr(13) & "    Por favor, vuelve a intentarlo.    ", vbOKOnly, "Lo sentimos...")
    'Limpiamos (quitamos) el código introducido
    TextBox1.Value = ""
    'Ponemos el focus en el cuadro de texto
    TextBox1.SetFocus
End Sub
Salu2

Última edición por 3pies; 10/07/2006 a las 04:56