Ir al contenido principal

Macro de Excel para utilizar Vlookup o Buscarv

Hola amigos, bienvenidos a un nuevo post de nuestro blog de programación para todos.

La mayoría utilizamos Excel en nuestros trabajos y una de las funciones mas utilizadas es el Vlookup o el BuscarV que hace la maravillosa actividad de buscar un dato en una tabla y en base a un indice podemos obtener otra columna de la tabla, esto sirve mucho para cruzar información o simplemente para validar si un valor de una tabla esta en otra tabla.


Como siempre buscamos hacer las cosas más rápido y ser los mejores en nuestra aldea Godín, les quiero compartir un ejemplo de una Macro que cuenta con:

La primer hoja tiene una lista de Productos a vender 



En la segunda Hoja tiene los pedidos de los clientes con su código de cliente y el item del pedido, la cantidad pedida, fecha de la venta


Lo que va hacer nuestra Macro es en la primer hoja nos calcule la cantidad total vendida por cada item y el monto total de venta

Antes de ver el programa, les explico como habilitar la pantalla de desarrollo de software en Excel

Configurar Excel para Macros

  • Habilitar Pestaña de Desarrollo
  1. En la pestaña archivo , vaya a Opciones> personalizar la cinta de opciones.
  2. En Personalizar la cinta de opciones y Pestañas principales, active la casilla Programador.
  • Presionamos las teclas Alt + F11 al mismo tiempo, deben ver una pantalla así:


Una vez, teniendo estos requisitos podemos empezar con la magia :) 

Código de la Macro

Private Sub CommandButton1_Click()
Dim Fila As Long
Dim Fila2 As Long
Dim Col As Integer
Col = 3 ' columna C
Fila = 4

'coloca montos totales en hoja2
Do While Sheet2.Cells(Fila, "B") <> ""
    Call vlookup_data(Sheet2.Cells(Fila, "B").Value, Col, Fila)
    Fila = Fila + 1
Loop

Fila = 3
'consolidado de venta
Do While Sheet1.Cells(Fila, "A") <> ""
    Fila2 = 4
    Do While Sheet2.Cells(Fila2, "B") <> ""
       If Sheet2.Cells(Fila2, "B") = Sheet1.Cells(Fila, "A") Then
          'sumamos las cantidades vendidas por item
          Sheet1.Cells(Fila, "D") = Sheet1.Cells(Fila, "D") + Sheet2.Cells(Fila2, "C")
          'sumamos lo montos
          Sheet1.Cells(Fila, "E") = Sheet1.Cells(Fila, "E") + Sheet2.Cells(Fila2, "E")
       End If
       Fila2 = Fila2 + 1
    Loop
    
Fila = Fila + 1
Loop
End Sub

Sub vlookup_data(val_look As String, val_col As Integer, val_fila As Long)
Dim resultado As Long
Dim temp_col As Integer

resultado = 0

On Error Resume Next
 resultado = Application.WorksheetFunction.VLookup(val_look, Sheet1.Range("A3:C10"), val_col, False)
 If Err.Number <> 0 Then
 End If

On Error GoTo 0  ''
If Err.Number = 0 Then
 Sheet2.Cells(val_fila, "E").Value = Sheet2.Cells(val_fila, "C").Value * resultado
End If
End Sub


Ejecución de la Macro

Para mostrarles como se va ejecutando la Macro, en la pantalla donde esta nuestro programa podemos marcar los renglones donde queremos que se detenga , dando doble click del lado izquierdo sobre la parte izquierda y se coloca un punto rojo 

En la primera parte busca en cada linea de la hoja 2 y busca el precio que le corresponde en la primer hoja
En el siguiente paso nos va ir sumando por cada item la cantidad total vendida y la el monto total



Al final en nuestra primer hoja tendremos los datos consolidados 



Este es un ejemplo pero puede utilizar o ajustar el programa a sus necesidades, espero les haya gustado este post y nos compartan. Recuerden si no saben que es Vlookup  o quieren aprender nuevas funciones de Excel, contacten a Debite


Les dejo las ligas de otras macros en nuestro blog


No olvide compartirnos y seguirnos en este blog o en Facebook.

Comentarios

Entradas más populares de este blog

Graficar funciones en Python con dataframes

Bienvenidos a un nuevo post, en esta semana, en esta ocasión les quiero platicar acerca de una librería en Python que se llama  matplotlib  que nos sirve para gráfica funciones de  matemáticas. Habitualmente en Python existen muchas librerías, lo que hay que hacer es primero investigar si ya existe alguna que nos ayude y entenderla antes de inventar el hilo negro, en mi caso encontré la librería  Matplotlib Para instalar deben utilizar el comando PIP en 2.7 Instalando en Python 3.7 Si tienen Python 2.7 deben realizar la ejecución de estos 2 comandos desde consola python -m pip install -U pip python -m pip install -U matplotlib Aunque lo más recomendable es utilizar la versión 3.7 o superior de Python. Programa para graficar en Python import matplotlib.pyplot as plt import numpy as np import math as mt def move_spines():     """Esta funcion divide pone al eje y en el valor      0 de x para dividir claramente los valores positivos y     negativos.&quo

Ejemplo Macro en Word

Hola: ¿Sabían que no solo en Excel pueden hacer Macros?  ¡¡¡También en Outlook, Word, Power Point,Access  es posible hacer Macros!!!  ☺️ Ya que Word, Excel, Power Point,Access son de familia Microsoft y Visual Basic también es que podemos programar nuestras macros en esta paquetería. Como hemos visto antes, para poder programar nuestras macros, necesitamos primero configurar la Barra de tareas de Developer o Desarrollador Seleccionan el Menu File>Options>Customize Ribbon o en Español Archivo>Opciones>barra de tareas Despues la parte de seguridad de las macros Menu File>Options>Trus Center o Archivo>Opciones>Centro de Seguridad y marcamos como se ve en la imagen, la cuarta opción y el combo Ejemplo Vamos hacer un ejemplo donde, tengamos que generar varios diplomas de fin de curso, pero con una lista de Nombres , entonces vamos a crear un nuevo archivo en Word y le vamos a guardar como tipo Macro  Tenemos una plantill

Ejemplo Python para leer imagen y transformarla en una matriz

Como hemos visto en otros post, Python nos permite hacer programas de manera más rápida, en esta ocasión quiero compartirles un ejemplo para leer un archivo de imagen y como convertirlo en una matriz o un arreglo. Aplicaciones Poder hacer ingeniería de datos, es decir poder convertir una misma imagen en diferentes todos y utilizarlos para machine learning para reconocimiento de gatos, para ello hay que mostrar muchas imágenes a nuestro modelo es decir entrenarlo, para ello hay que colocarle imágenes claras y imagenes que no sean tan claras por ejemplo, se pone la imagen original y se agrega "ruido" para que se vea en rojos, grises, verdes. Se pudo utilizar para un mapa , para poder ver datos a detalle Se puede aplicar para manipular imágenes, por ejemplo agregar efectos  Seguramente a ustedes se les pueden ocurrir más aplicaciones Les comparto el ejemplo de como hacerlo en Jupiter y para hacer el ejemplo voy a utilizar el logo del blog es una imagen de 500x500 pixeles Los Pas