Automatizar excel VBa macros

Tengo un libro excel en el cual tengo dos hojas:
(Hoja 1) (Insertar Datos)
(Hoja 2) (Catalogo)
En la hoja 1 hay una tabla donde la columna A muestra códigos y la columna B descripciones del grupo de Suministro así:
Colummna A Columna B
A800001 Productos de Cafetería
En la hoja 2 tengo una tabla (catálogo) donde están todos los productos asociados a un código de grupo de suministro así:
Columna 1 Columna 2
Código Descripción
A800001 Café
A800001 Vasos de Tinto
A800001 Platos
A800001 Cafetera
A800001 Portavasos
Mi inquietud es poner en la hoja 1 / columna C una lista desplegable teniendo criterio de
Selección de código. Es decir:
Si escojo:
Columna A Columna B Columna C
A800001 Productos de Cafetería (lista desplegable que Muestre solo
                                                               Los productos que están relacionados con
                                                                El código A800001 en la hoja 2 Catálogo)
¿Es posible...?
¿Tocaría con Macros en VBa..?
Agradezco su ayuda...
Respuesta
1
Revise tu pregunta y eso es posible, te comento que la macro quedo definida de la siguiente manera
tu indica Columan1 y Columna2, yo asumo que indicas Columna A y Columna B
en la hoja1 tu escribes el código que sea( en este caso el A800001), luego el macro tomara los registros de la hoja2 y los recorrerá uno a uno, incluyendo en el cuadro0 de lista desplegable ( ComboBox1) todos los que sean coincidentes al código escrito en hoja1 Celda A1), si el código no existe en hoja2, pues no hay coincidencias y no incluirá nada en el combo. Ahora la estructura que debes respetar en hoja 2 es Columna A sin rótulos es decir el dato va desde A1 hacia abajo, por cuanto tu indicas
columna1 columna2
A800001 Producto
En hoja 2 debe ser esa la estructura, pues el macro "entiende" que el valor que debe agregar al combo esta en la columna B desde la fila 1 hacai abajo.
Bien, establecido lo anterior, pasamos al código:
En la hoja1, debes incluir un comboBox ( cuadro de lista desplegable).
En el editor de Visual basic debes poner el siguiente código en el evento Worksheet_Change de la hoja1 (cada vez que modifiques la celda A1 de esa hoja, se activara el macro)
Private Sub Worksheet_Change(ByVal Target As Range)
Dim c As String
Dim i As Integer
If Target.Address = "$A$1" Then
   Hoja14.Range("B65536").Formula = "=COUNTA(R[-65535]C:R[-1]C)"
    c = Range("A1").Value
    ComboBox1.Clear
    For i = 1 To Hoja14.Range("B65536").Value
       If Hoja14.Range("A" & i).Value = c Then ComboBox1.AddItem Hoja14.Range("B" & i).Value
    DoEvents
    Next
    On Error Resume Next
ComboBox1.ListIndex = 0
End If
End Sub
Eso es todo
Bye

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas