Macro que pueda enviar información a hojas ya creadas?

Espero que me puedan ayudar por favor.

Como puedo resolver que esa lista que se generó en la hoja AUXILIAR, compare con los conceptos de la columna D, de la misma hoja.

Y que me mande su información respectiva de las columnas (A, B, C, D, E, F, G) a sus hojas ya existentes, por ejemplo CEMENTOS Y CONCRETOS NACIONALES S.A DE C.V, su información correspondiente de las columnas mencionadas se vaya a su hoja ya creada que se llama CEMENTOS y se agregue en la fila A9 y así con las de más hojas, en las otras hojas varia la fila }

1.- Los nombres de las hojas existentes estan reducidos pero son los mismos nombre que el de la columna J de la hoja de AUXILIAR.
Por ejemplo: GKN es igual que el concepto de la columna J GKN DRIVELINE CELAYA SA DE CV

2.- Todas las filas con el mismo nombre se enviara su respectiva informacion a su hoja correspondiente.

3.-Comparar la primera y segunda palabra de la columna J y D de la hoja AUXILIAR por que algunas filas la diferencia por un punto por ejemplo:
GKN DRIVELINE CELAYA SA DE CV es el mismo que GKN DRIVELINE CELAYA SA DE C.V y se enviara su informacion a la hoja GKN.

Aquí esta el ejemplo:

https://github.com/angtor/lista

1 Respuesta

Respuesta
1

Ya entendí lo que quieres luego entonces no necesitas la macro apra crear la tabla sino esta, esta macro lee las hojas y busca en la lista si el contenido para esa hoja en especifico esta disponible y lo copia a su respectiva hoja

Sub ANALIZAR_INFORMACION()
Set DATOS = Sheets("AUXILIAR").Range("A6").CurrentRegion
With DATOS
    FILAS = .Rows.Count
    Set DATOS = .Rows(2).Resize(FILAS - 4)
    .Sort KEY1:=Sheets("AUXILIAR").Range(.Columns(4).Address), ORDER1:=xlAscending, Header:=True
End With
CUENTA = Worksheets.Count
For Each HOJA In Worksheets
    NOMBRE = UCase(HOJA.Name)
    Select Case NOMBRE
    Case "AUXILIAR", "LISTADEMOVIMIENTOS", "RESUMEN"
    Case Else
    FILAS = Sheets(NOMBRE).Range("A1").CurrentRegion.Rows.Count
   With DATOS
    .AutoFilter
    .AutoFilter 4, "*" & NOMBRE & "*"
    CUENTA = WorksheetFunction.Subtotal(3, .Columns(1))
    .Offset(1).Resize(.Rows.Count - 1).Copy
    If CUENTA > 1 Then Sheets(NOMBRE).Range("A1").Rows(FILAS + 1).PasteSpecial
    End With
    End Select
Next HOJA
DATOS.AutoFilter
Set DATOS = Nothing
End Sub

y sigue funcionando la macro si tengo que enviar mas información a diferentes hojas , en esta ves solo fueron a 6 pero hay a veces que son como 10 a un así sigue funcionando la macro??.,

el nuevo saldo que se agrega a las hojas que se envió la información se agrega a RESUMEN cierto ??

Cuando mandas la información a las hojas creadas también envías el saldo de la columna H de la Hoja de AUXILIAR, en que parte se le mueve para que nada mas se envié hasta  información de la columna G que es abonos ., que nada mas se envié de la columna A,B,C,D,E,F,G de la hoja de AUXILIAR  

Sorry por la tardanza en responder es época de aplicación de examens para mi y tengo que prepararlos, constestando a tu pregunta la macro esta diseñada apra trabajar con las pestañas y cuando digo esto me refiero a N cantidad de pestañas pudiendo ser desde 1 o 1 millón, solo tres hojas no toma en cuenta, Resumen, Auxiliar, listademovimientos, es mucho más fácil programarlo así que como tu lo solicitabas, esta macro solo actualiza las hojas y en esta modificación copia hasta la columna G, respecto a lo otro no mencionaste que también querías modificar la hoja resumen

Sub ANALIZAR_INFORMACION()
Set DATOS = Sheets("AUXILIAR").Range("A6").CurrentRegion
With DATOS
    FILAS = .Rows.Count
    Set DATOS = .Rows(2).Resize(FILAS - 4)
    .Sort KEY1:=Sheets("AUXILIAR").Range(.Columns(4).Address), ORDER1:=xlAscending, Header:=True
End With
CUENTA = Worksheets.Count
For Each HOJA In Worksheets
    nombre = UCase(HOJA.Name)
    Select Case nombre
    Case "AUXILIAR", "LISTADEMOVIMIENTOS", "RESUMEN"
    Case Else
    FILAS = Sheets(nombre).Range("A1").CurrentRegion.Rows.Count
   With DATOS
    .AutoFilter
    .AutoFilter 4, "*" & nombre & "*"
    CUENTA = WorksheetFunction.Subtotal(3, .Columns(1))
    .Offset(1).Resize(.Rows.Count - 1, 7).Copy
    If CUENTA > 1 Then
    With Sheets(nombre).Range("a1")
        .Rows(FILAS + 1).PasteSpecial
    End With
    End If
    End With
    End Select
Next HOJA
DATOS.AutoFilter
Set DATOS = Nothing
End Sub

Excelente, de Casualidad no das Cursos de Macros en Excel??

Daba cursos de Excel a nivel prepa e ingeniería

eres excelente creando macros,.quisiera aprender bien a realizar macros en excel, algun curso en linea que me recomiendes?

Yo aprendi de libros en ingles estan mejor estructurados que sus contrapartes en español, o'reilly - writing excel macros with vba, 2nd edition, Excel VBA visual basic (Korol), 7053154973-Excel 2007 VBA Programmers Reference - Wrox 200, Reed_Jacobson]_Microsoft_Office_Excel_2007_Visual(Bookos.org), estos son algunos de los libros donde aprendi, los autores han sacado nuevos libros sobre las nuevas versiones de Excel, solo que las bases siguen siendo las mismas

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas