** NORMAS DEL FORO **
Inicio del foro Inicio del foro > Access y VBA > Access y VBA
  Mensajes nuevos Mensajes nuevos RSS - de una tabla a varias hojas de un libro excel
  Preguntas frecuentes Preguntas frecuentes  Buscar en el foro   Eventos   Registro Registro  Iniciar sesion Iniciar sesion

Tema cerradode una tabla a varias hojas de un libro excel

 Responder Responder
Autor
Mensaje
carlosbelmonte Ver desplegable
Asiduo
Asiduo
Avatar

Unido: 06/Octubre/2010
Localización: España
Estado: Sin conexión
Puntos: 454
Enlace directo a este mensaje Tema: de una tabla a varias hojas de un libro excel
    Enviado: 23/Julio/2020 a las 17:38
hola a todos, tengo una tabla T_Articulos con tres campos :
CodigoArticulo
NombreArticulo
NombreFamilia

Y necesito exportar a un archivo excel con varias hojas dependiendo de la familia, por ejemplo que todos los artìculos de la familia COCHES vaya a una hoja con el nombre COCHES del excel, que la otra familia MOTOCICLETAS vaya a otra hoja del mismo excel con el nombre MOTOCICLETAS y así sucesivamente. Alguien lo ha hecho o me puede ayudar ?
muchas gracias
Arriba
emiliove Ver desplegable
Moderador
Moderador


Unido: 16/Junio/2009
Localización: Mexico
Estado: Sin conexión
Puntos: 5212
Enlace directo a este mensaje Enviado: 23/Julio/2020 a las 20:11
Hola carlosbelmonte

Y que has hecho, o donde te atoraste, ya miraste los ejemplos del Maestro Emilio Sancha tiene varios de Access con Excel.

Saludos.
Arriba
carlosbelmonte Ver desplegable
Asiduo
Asiduo
Avatar

Unido: 06/Octubre/2010
Localización: España
Estado: Sin conexión
Puntos: 454
Enlace directo a este mensaje Enviado: 23/Julio/2020 a las 22:04
No he visto los ejemplos de Emilio en este sentido, donde se pueden ver ?

Arriba
carlosbelmonte Ver desplegable
Asiduo
Asiduo
Avatar

Unido: 06/Octubre/2010
Localización: España
Estado: Sin conexión
Puntos: 454
Enlace directo a este mensaje Enviado: 24/Julio/2020 a las 12:16
Finalmente lo he logrado jugando con un recordset y en un momento dado creando hojas en el mismo archivo excel dependiendo de la familia : 
DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel8, "T_ArticulosTEMP", RutaArchivo, , RstOrigenHojas!Familia

El problema es que la hoja de calculo se genera sin formato en los encabezados, sin ajustar columnas, etc...  
me podríais ayudar para saber si podría cambiar el formato (fuente, ajuste automatico de columnas, etc...) de las celdas de excel desde access ?
gracias
Arriba
emiliove Ver desplegable
Moderador
Moderador


Unido: 16/Junio/2009
Localización: Mexico
Estado: Sin conexión
Puntos: 5212
Enlace directo a este mensaje Enviado: 24/Julio/2020 a las 15:22
Por Automatización lo haces sin problema, Xavi a participado en varios hilos sobre Access/Excel hace poco tiempo, los miraste ya, El maestro emilio Sancha habla sobre Automatización http://www.mvp-access.es/emilio/como/Automatizacion.pdf

Saludos. 
Arriba
carlosbelmonte Ver desplegable
Asiduo
Asiduo
Avatar

Unido: 06/Octubre/2010
Localización: España
Estado: Sin conexión
Puntos: 454
Enlace directo a este mensaje Enviado: 24/Julio/2020 a las 19:08
Para hacer que las columnas de la hoja con nombre : 170402  tenga las columnas autoajustadas he hecho lo siguiente : (pero no me me ajusta el tamaño de esas columnas)

Dim xls As Excel.Application
Dim strArchivo As String
    
strArchivo = "C:\Trabajo\Memoria_01012001hasta01012021.xls"

' creo una instancia a Excel
Set xls = CreateObject("Excel.Application")
xls.Workbooks.Open (strArchivo)

' activo la 170402
xls.Worksheets("170402").Activate

'autoajustar columnas de la A a la I
Worksheets("170402").Range("A:I").Columns.AutoFit
'esta es otra opción pero que tampoco me funciona :  xls.Columns("A:I").EntireColumn.AutoFit

' cierro Excel, para evitar que me pregunte si quiero guardar, le engaño diciendo que ya lo está
xls.ActiveWorkbook.Saved = True
xls.Application.Quit
Set xls = Nothing

Arriba
xavi Ver desplegable
Administrador
Administrador
Avatar
Terrassa-BCN

Unido: 10/Mayo/2005
Localización: Catalunya ||||
Estado: Sin conexión
Puntos: 13015
Enlace directo a este mensaje Enviado: 24/Julio/2020 a las 20:05
Un consejo: utiliza la grabadora de macros de Excel para realizar la acción. Después analiza el código para ver que es cada una de las líneas.
Una vez entendido, podrás aplicarlo a la automatizacion anteponiendo la variable objeto que representa el Excel.

En tu caso concreto creo que es así:

xls.Worksheets("170402").Cells.EntireColumn.AutoFit

Un saludo
Xavi, un minyó de Terrassa

Mi web
Arriba
carlosbelmonte Ver desplegable
Asiduo
Asiduo
Avatar

Unido: 06/Octubre/2010
Localización: España
Estado: Sin conexión
Puntos: 454
Enlace directo a este mensaje Enviado: 24/Julio/2020 a las 20:51
Gracias Xavi,
he puesto en el codigo que antes he puesto lo que me dices :
xls.Worksheets("170402").Cells.EntireColumn.AutoFit

pero no me hace nada, se queda igual.
Arriba
xavi Ver desplegable
Administrador
Administrador
Avatar
Terrassa-BCN

Unido: 10/Mayo/2005
Localización: Catalunya ||||
Estado: Sin conexión
Puntos: 13015
Enlace directo a este mensaje Enviado: 24/Julio/2020 a las 22:38
¿Has probado con la grabadora de macros?
Xavi, un minyó de Terrassa

Mi web
Arriba
carlosbelmonte Ver desplegable
Asiduo
Asiduo
Avatar

Unido: 06/Octubre/2010
Localización: España
Estado: Sin conexión
Puntos: 454
Enlace directo a este mensaje Enviado: 25/Julio/2020 a las 11:46
así se ajustan automaticamente las columnas de la A a la H :
With miHoja
    .Columns("A:A").EntireColumn.AutoFit
        .Columns("B:B").EntireColumn.AutoFit
        .Columns("C:C").EntireColumn.AutoFit
        .Columns("D:D").EntireColumn.AutoFit
        .Columns("E:E").EntireColumn.AutoFit
        .Columns("F:F").EntireColumn.AutoFit
        .Columns("G:G").EntireColumn.AutoFit
        .Columns("H:H").EntireColumn.AutoFit
  End With


Lo que no logro es insertar X filas a partir de la fila Y , hasta ahora estoy probando así pero no se que criterío sigue para insertar filas y apartir de que fila.
.Rows(X:Y).Insert Shift:=xlDown


Arriba
carlosbelmonte Ver desplegable
Asiduo
Asiduo
Avatar

Unido: 06/Octubre/2010
Localización: España
Estado: Sin conexión
Puntos: 454
Enlace directo a este mensaje Enviado: 28/Julio/2020 a las 21:41
para insertar una fila apartir de la fila 4 sería así :
.Rows("4:4").Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove

Y así quedaría el hilo cerrado y solucionado, muchas gracias a todos

Arriba
 Responder Responder
  Compartir tema   

Ir al foro Permisos de foro Ver desplegable