Hola, favor ayúdame con lo siguiente: Formulario con 2 textbox, 1 que captura los caracteres magnéticos de un cheque, el 2 toma los primeros 7 caracteres del textbox1, luego los datos del textbox2 deben ser buscados en una lista y colocar una "a" en la tercera columna donde se encuebtra el dato. Espero que no sea mucho abuso. Gracias.
1 Respuesta
Respuesta de fejoal
1
1
fejoal, Por falta de tiempo para responder como me gusta hacerlo suspendo...
Entiendo, por respuestas anteriores, que ya sabes como ingresar un código de VBA en un módulo. Para lo que solicitas (que no es un abuso), ingresa el siguiente en el panel de códigos del formulario donde están los controles mencionados: Sub BuscaYmarca() '1.- Ingresa rango de búsqueda: BuscarEn = "B4:B200" '2.- Marca a ingresar: LaMarca = "a" '3.-Numero de columna *de la base* donde deja la marca EnCol = 3 '4.- Selecciona una de estas líneas CodBusq = Val(Textbox2. Value) 'usa esta si el dato en la base es numérico y borra la siguiente CodBusq = Textbox2. Value ' o 'usa esta si el dato en la base es alfanumerico y borra la anterior With ActiveSheet.Range(BuscarEn) Set SiEsta = .Find(CodBusc, LookIn:=xlValues) If Not SiEsta Is Nothing Then Primercaso = SiEsta.Address Do SiEsta.Offset(0, EnCol - 1) = LaMarca Set SiEsta = .FindNext(SiEsta) Loop While Not SiEsta Is Nothing And SiEsta.Address <> Primercaso Else MsgBox "El código " & CodBusq & Chr(10) & "no fué encontrado en la base", vbExclamation, "CODIGO INEXISTENTE" End If Set SiEsta = Nothing End With End Sub Como verás esta macro está bastante parametrizada. Al inicio de la misma puedes indicarle en qué rango de la hoja activa debe efectuar la búsqueda, cuál es el carácter a colocar en la base si es encontrado. También puedes elegir la columna donde debe ingresar tal carácter y, finalmente, puedes seleccionar una de las dos líneas que proporciono según el código a buscar en la base esté como número o caracteres alfanuméricos. La macro prevé marcar todos los casos coincidentes que encuentre en la base. Desde luego, si sólo estuviese una vez marcará sólo ese. Si eventualemnte no encontrara ese código btendrás un mensaje mencionándolo. Desde luego, puedes colocar este código dentro de los comandos de un botón o hacer una llamado a la macro desde tal botón. Por ejemplo: Private Sub CommandButton1_Click() BuscaYmarca End Sub Espero que te sea útil. Un abrazo! Fernando