Macro Visual for Application: Busca, Reemplaza, Rellena.
Hace tiempo tengo esta peque pero muy util macro en Excel, esto surge de la necesidad de completar datos a una tabla, que estan en otro lado. Un ejemplo facil: Tengo un listado de alumnos de primer ingreso con sus datos de procedencia, pero en este listado no aparece la carrera; tengo dos opciones buscarle la carrera a cada alumno o decirle a la compu que lo haga por mi. Aunque les paresca extraño, conosco personas que eligen la primera. Asi que yo eligo la segunda, siempre y cuando los dos listados tengan algo en comun: la matricula del alumno, a continuacion el codigo:
-
Sub Busca()
-
-
Dim CompareRange As Variant, x As Variant, y As Variant
-
Set CompareRange = Worksheets("BD").Range("c1:c2144")
-
For Each x In Selection
-
For Each y In CompareRange
-
If x = y Then x.Offset(0, 5) = y.Offset(0, 8)
-
'If x = y Then x.Offset(0, 5) = "Aqui un Texto"
-
Next y
-
Next x
-
-
End Sub
Antes de implementarla deben asegurarse que los dos tipos de datos a comparar deben ser del mismo tipo de dato, algunas veces cuando son copyPaste, excel marca algunos numeros como texto; si corren la macro en estas condiciones les marcara un error en tiempo de ejecucion. Excel en algunas maquinas esta configurado para no permitir el uso de macros, para activarlo simplemente van a: [Herramientas->Macro->Seguridad....] y en Nivel de seguridad eligen "Medio"; guarden el cambio, cierren el documento y vuelvanlo a abrir. Regresando al ejemplo anterior:
- Copiamos la hoja donde tenemos los datos que deseamos incorporar a nuestro listado y la pegamos en el libro donde se encuentra el listado al que le queremos agregar los datos, en mi caso copio el listado de matriculas con sus respectivas carreras al libro donde esta la hoja de los alumnos de primer ingreso.
- Nombramos la hoja donde tenemos los datos que deseamos agregar o donde deseamos buscar como "BD"[Para renombrar una hoja doble click a la hoja]
- Cambiamos el rango ("c1:c2144") por el rango que abarque todos los datos que vamos a buscar, en mi caso el rango solo abarcara las puras matriculas de los alumnos
- Offset sirve para ubicarse en una celda, tomando como referencia otra; en este caso nos ubicamos en el libro "BD", en la misma fila y 8 columnas a la derecha(
y.Offset( 0, 8 )) para asignarle ese valor al a celda que esta en la misma fila y 5 columnas a la derecha de la hoja donde queremos agregar. Esta configuracion la puiedes adaptar segun tus necesidades - Si lo que necesitas es solo buscar un dato y poner si esta o no esta, usa la linea que esta comentada y pon el texto que tu quieras, para comentar una linea solo pon una comilla simple
-
'
If you enjoyed this post, please consider to leave a comment or subscribe to the feed and get future articles delivered to your feed reader.



Hola quisiera saber donde puedo conseguir un manual de Visual For Aplication????