Foros del Web » Soporte técnico » Ofimática »

Macro Buscar para lector de tarjetas en Excel

Estas en el tema de Macro Buscar para lector de tarjetas en Excel en el foro de Ofimática en Foros del Web. Hola a todos: Estoy intentando hacer unas macros para una hoja de excel en las que debo de buscar un dato que está grabado en ...
  #1 (permalink)  
Antiguo 27/04/2010, 12:25
 
Fecha de Ingreso: octubre-2008
Mensajes: 8
Antigüedad: 15 años, 6 meses
Puntos: 0
Macro Buscar para lector de tarjetas en Excel

Hola a todos:

Estoy intentando hacer unas macros para una hoja de excel en las que debo de buscar un dato que está grabado en una tarjeta magnetica.

He puesto la siguiente macro:

Sub buscar_familia()
Dim n As Range
familia_a_buscar = InputBox("Introduce la familia a buscar", "Buscador")
Set n = [B:B].Find(What:=familia_a_buscar)
If n Is Nothing Then
MsgBox "No he encontrado nada. Lo siento."
Else
Range(n.Address).Select
MsgBox "Aquí tienes la palabra " & UCase(familia_a_buscar) & "."
End If
Set n = Nothing
End Sub

La macro funciona bien si introduzco el a mano, pero el problema es el siguiente:

Al pasar la tarjeta por el lector, la misma lee el siguiente código:

%090101001_

y automaticamente realiza la busqueda (no tenga que pulsar ENTER, es automático.

El problema radica en que los signos "%" y "_" no están en la hoja de excel, sólo los números...

¿como puedo eliminar estos signos de la busqueda?

Gracias.
  #2 (permalink)  
Antiguo 27/04/2010, 13:54
Avatar de Monimo  
Fecha de Ingreso: noviembre-2007
Ubicación: Mexico Df
Mensajes: 742
Antigüedad: 16 años, 5 meses
Puntos: 69
Respuesta: Macro Buscar para lector de tarjetas en Excel

familia_a_buscar = InputBox("Introduce la familia a buscar", "Buscador")
familia_sinsignos= Mid(familia_a_buscar, 2, Len(familia_a_buscar) - 2)

Set n = [B:B].Find(What:=familia_sinsignos)
  #3 (permalink)  
Antiguo 27/04/2010, 16:05
 
Fecha de Ingreso: octubre-2008
Mensajes: 8
Antigüedad: 15 años, 6 meses
Puntos: 0
Respuesta: Macro Buscar para lector de tarjetas en Excel

GRACIAS. Funciona perfectamente...

Ahora he de seguir con el proceso... 1er obstaculo salvado.

A ver Monimo te cuento...

El proyecto consiste en que tengo una hoja de excel con una serie de datos de unos socios a los que les quiero dar una invitación:

codigo-nombre-apellidos-nombre2-apellidos2-invitacion recogida(si/no)

quiero que con el lector de tarjetas utilizar un formulario en el que al pasar la tarjeta me muestre el Codigo, el valo de la celda activo, y siga rellenando el formulario con los nombres y apellidos que no se encuentren vacios.

Tambien necesitaría en el mismo formulario un boton que al pulsarlo me escribiese en una celda que la invitación ya ha sido recogida y asi no duplicarla...

Me puedes orientar... Hace muchos años que no hago nada de macros, estoy recopilando algunas macros que aplique en algunas hojas, pero me está costando...

Gracias de nuevo por tu respuesta anterior... Creía que no iba a poder sacarle partido al lector de tarjetas...
  #4 (permalink)  
Antiguo 28/04/2010, 16:39
Avatar de Monimo  
Fecha de Ingreso: noviembre-2007
Ubicación: Mexico Df
Mensajes: 742
Antigüedad: 16 años, 5 meses
Puntos: 69
Respuesta: Macro Buscar para lector de tarjetas en Excel

mmm pues solo debes ir leyendo las celdas. S i por ejemplo ya encontraste con FIND el codigo, para obtener la celda activa seria

ActiveCell
para obtener la dirección de esa celda seria

ActiveCell.row y activecell.column que te daran el renglon y la columna de la celda activa, es decir donde encontraste el código. Con esto solo deberas ir aumentando la columna pra moverte por la hoja de excel hacia la derecha e ir pasandole el valor de esa celda al control donde quieras desplegar esa info, por ejemplo en una etiqueta.

renglon=ActiveCell.Row
columna=ActiveCell.column

Para el nombre por ejemplo:
label1.Caption=cells(renglon,columna+1).value *es 'columna + 1' porke 'columna' es la columna donde esta el codigo y una celda a la derecha estaria el nombre...

y asi ...


Para el caso del otro boton de recogida/no recogida simplemente al presionar el boton :
puedes volver a buscar el código, es decir leer el código donde lo desplegaste( caj de texto o label) y ya sabes q 4 columnas a la derecha es decir columna+4 esta el campo de recogida no recogida. Puedes escribir un 0 para no recogida y un 1 para recogida. A la hora de leer el código con la lectora, y encontrarlo en la base puedes evaluar si ese último campo tiene un uno o un cero y escribir en la etiqueta recogida o no recogida y deshabilitar el boton en caso de q este ya recogida, o tenga un 1.
  #5 (permalink)  
Antiguo 30/04/2010, 15:39
 
Fecha de Ingreso: octubre-2008
Mensajes: 8
Antigüedad: 15 años, 6 meses
Puntos: 0
Respuesta: Macro Buscar para lector de tarjetas en Excel

Muchas gracias de nuevo...

Ya tengo el formulario casi terminado. Encontré un fichero de ejemplo que he adaptado a mis necesidades, pero hay algo que no consigo hacer...

Hola:

Tengo 2 formularios: GESTION y CONSULTA

Desde GESTION puedo buscar una serie de datos, los cuales se muestran en CONSULTA, sin cerrar el formulario GESTION, donde puedo seleccionar la linea que contiene los datos que me interesan, darle a un boton ACEPTAR, y los datos se muestran en GESTION.

Bien... Si los datos aparecidos en CONSULTA no me interesan, tengo un boton CANCELAR que al pulsarlo cierra el formulario CONSULTA, pero me muestra los valores que tenía en la primera linea de este formulario en el formulario GESTION.

Lo que necesito es que al pulsar CANCELAR no me muestre ningún valor en GESTION, es decir que los campos estén vacios.

El código del botón CANCELAR es este:

Private Sub botonCancelar_Click()
Unload Me
End Sub

He intentado poner lineas para vaciar los campos:

GESTION.campo1 = Empty

antes y después del Unload Me, pero siempre me mando error...

Donde me estoy equivocando?

Gracias.
  #6 (permalink)  
Antiguo 17/10/2010, 21:33
 
Fecha de Ingreso: agosto-2007
Mensajes: 1.945
Antigüedad: 16 años, 8 meses
Puntos: 39
Respuesta: Macro Buscar para lector de tarjetas en Excel

Gestion.campo1 ¿que es?

Private Sub botonCancelar_Click()
GESTION.campo1 = Empty ' o GESTION.campo1.Value = "" si es un TextBox Si es comboBox ComboBox.clear Si es Label.Caption = ""
Unload Me 'ESTE SIEMPRE VÁ DESPUÉS DE TODAS LAS RUTINAS, DE ULTIMO
End Sub

Revisa bien que es GESTION.campo1 y ¿porque tiene el . entremedio? puede que ahí este el error
Prueba como te lo dejo
__________________
Las contraseñas son como la ropa interior: Nunca dejarlas donde la gente pueda verlas
http://i64.tinypic.com/rho40i.jpg

Última edición por JoaoM; 17/10/2010 a las 21:38

Etiquetas: excel, lector, macro, tarjetas
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:08.