Jump to content
  • Debido a la crisis sanitaria, hasta el día 31 de marzo, el registro al foro de Ayuda Excel será totalmente gratuito para facilitar el teletrabajo. Todos los registros que se produzcan entre estas fechas tendrán acceso gratuito ilimitado a la comunidad hasta el 30 de abril.

    Regístrate

    Si te surge alguna duda mientras estás trabajando en casa con Excel, ya tienes a quien preguntar.

    Espero que esta medida te sirva de ayuda. Frenar la expansión del coronavirus depende de todos. Sé responsable.

DiegoLG

Agrupar información en cada criterio

Recommended Posts

Hola amigos,

Por desgracia se desinstalo mi office, pero me surgio algo urgente,

quería ver si alguien tiene un código sobre lo siguiente:

En la columna A tengo un criterio (Que no se repite) y en otra hoja tengo un catalogo de 40 datos (Puede ser variable)

lo que quiero realizar es que ese catalogo me vaya agregando en cada criterio:

Ejemplo

Catalogo:

DATO1

DATO2

DATO3

Criterio:

1 = DATO1

1 = DATO2

1 = DATO3

No puedo subir un archivo ya que no tengo office por el momento,

Ojala alguien me puede ayudar :(

 

 

Share this post


Link to post
Share on other sites

Hola @DiegoLG

Prueba si esto es lo que necesitas (si cambias las posiciones de las tablas, favor de modificar las variables).

Suerte!
 

Sub arma_catalogo()

ufila2 = 0: ufila2 = Hoja2.Cells(Rows.Count, 1).End(xlUp).Row
If ufila2 < 2 Then ufila2 = 2
ufila3 = 0: ufila3 = Hoja3.Cells(Rows.Count, 1).End(xlUp).Row
If ufila3 < 3 Then ufila3 = 3

x = 0: x = 1
For i = 3 To ufila3
    For j = 2 To ufila2
        Hoja3.Cells(x, 10).Value = Hoja3.Cells(i, 1).Value
        Hoja3.Cells(x, 11).Value = Hoja2.Cells(j, 1).Value
        x = x + 1
    Next j
Next i

End Sub

 

Share this post


Link to post
Share on other sites

prueba con esta macro

Sub copiar_categorias()
Set h1 = Worksheets("catalogo")
Set h2 = Worksheets("hoja3")
Set datos = h1.Range("a2").CurrentRegion
Set lista = h2.Range("a3").CurrentRegion

filasd = datos.Rows.Count
filasl = lista.Rows.Count

Set resultado = h2.Range("f3").Resize(filasd, 2)

With lista
    For i = 1 To filasl
        If i > 1 Then Set resultado = resultado.Rows(filasd + 1).Resize(filasd, 2)
        resultado.Columns(1) = .Cells(i, 1)
        resultado.Columns(2).Value = datos.Value
    Next i
End With

Set resultado = Nothing: Set lista = Nothing
End Sub

 

Share this post


Link to post
Share on other sites
Guest
This topic is now closed to further replies.



×
×
  • Create New...

Important Information

Privacy Policy


CTA Templates.png