|
|||
|
Buenas, es la primera vez que utilizo el foro y espero que me puedan ayudar, aca mi problema:
Tengo un mshflexgrid conectado a una base access que mediante un boton exporto a excel, el codigo de ese boton es: vb Código:
Este codigo me funciona a la perfeccion, pero no logra lo que quiero, ya que exporta todos los datos juntos y yo necesito que los separe segun el campo "Categoria" es decir me los exporta de esta maner: Nombre Apellido Categoria Patricio Rodriguez 0.70 Javier Perez 0.80 y yo quiero que me exporte de la siguiente manera: 0.70 Nombre Apellido Categoria Patricio Rodriguez 0.70 0.80 Nombre Apellido Categoria Javier Rodriguez 0.80 Es posible? Si no se puede con excel se puede con word o haciendo un report?? Gracias!! |
|
||||
|
Ya hace a
s hice algo asi, espero te sirvaPrivate Sub ExportaPlacas() Dim xlApli As Object Dim xlLibro As Excel.Workbook Dim FilaFlex As Integer Dim FilaExcel As Integer Set xlApli = New Excel.Application Set xlLibro = xlApli.Workbooks.Add '''''''''''''''''''''''''''''''''''''''''''''''''' With xlApli .Sheets(1).Activate FilaExcel = 10 .Range("A1:E1").Font.Size = 12 .Range("A1:E1").Font.Name = "Times New Roman" .Range("A1:E7").Font.Bold = True .Range("A1:E7").Font.Italic = True .Range("A8:E8").Borders.LineStyle = 1 .Range("A8:E8").Interior.ColorIndex = 6 .Range("A8:E8").HorizontalAlignment = xlCenter .Range("A1:E1").Select End With '''''''''''''''''''''''''''''''''''''''''''''''''' '''''''''' With xlApli.Selection .HorizontalAlignment = xlCenter .VerticalAlignment = xlBottom .WrapText = False .Orientation = 0 .AddIndent = False .IndentLevel = 0 .ShrinkToFit = False .ReadingOrder = xlContext .MergeCells = False End With '''''''''''''''''''''''''''''''''''''''''''''''''' '''''''''' With xlApli.Selection .Merge .Borders(xlDiagonalDown).LineStyle = xlNone .Borders(xlDiagonalUp).LineStyle = xlNone .Borders(xlEdgeLeft).LineStyle = xlContinuous .Borders.Weight = xlMedium .Borders.ColorIndex = xlAutomatic End With '''''''''''''''''''''''''''''''''''''''''''''''''' '''''''''' With xlApli.Selection.Borders(xlEdgeTop) .LineStyle = xlContinuous .Weight = xlMedium .ColorIndex = xlAutomatic End With '''''''''''''''''''''''''''''''''''''''''''''''''' '''''''''' With xlApli.Selection.Borders(xlEdgeBottom) .LineStyle = xlContinuous .Weight = xlMedium .ColorIndex = xlAutomatic End With '''''''''''''''''''''''''''''''''''''''''''''''''' '''''''''' With xlApli.Selection.Borders(xlEdgeRight) .LineStyle = xlContinuous .Weight = xlMedium .ColorIndex = xlAutomatic End With '''''''''''''''''''''''''''''''''''''''''''''''''' '''''''''' With xlApli .Sheets(1).Activate .Range("A1") = "LISTADO DE SERVICIOS POR PLACAS" .Range("A3") = "CLIENTE :" .Range("B3") = CBONOMBRE.Text .Range("A5") = "FECHA :" .Range("B5") = Date .Range("A6") = "HORA :" .Range("B6") = Time .Range("A8") = "PLACAS" .Range("A10") = MSFlexGrid1.TextMatrix(1, 2) .Range("B8") = "FECHA SERVICIO" .Range("C8") = "MARCA" .Range("D8") = "KILOMETRAJE" .Range("E8") = "DETALLE SERVICIO" End With With MSFlexGrid1 For FilaFlex = 1 To .Rows - 1 xlApli.Cells(FilaExcel, 2) = .TextMatrix(FilaFlex, 1) xlApli.Cells(FilaExcel, 3) = .TextMatrix(FilaFlex, 3) xlApli.Cells(FilaExcel, 4) = .TextMatrix(FilaFlex, 4) xlApli.Cells(FilaExcel, 5) = .TextMatrix(FilaFlex, 5) FilaExcel = FilaExcel + 1 Next End With xlApli.Columns.AutoFit With xlApli .Sheets(1).Activate Columns("B:B").ColumnWidth = 24 End With '''''''''''''''''''''''''''''''''''''''''''''''''' '''''''''' With xlApli.ActiveSheet.PageSetup .LeftMargin = Application.InchesToPoints(0.196850393700787) .RightMargin = Application.InchesToPoints(0.196850393700787) .TopMargin = Application.InchesToPoints(0.393700787401575) .BottomMargin = Application.InchesToPoints(0.393700787401575) .CenterHorizontally = True .Orientation = xlLandscape End With '''''''''''''''''''''''''''''''''''''''''''''''''' '''''''''' xlApli.Visible = True Set xlApli = Nothing End Sub
__________________
Que la fuerza te acompañe ! |
|
|||
|
Les cuento que soy muy novato en esto de la programacion y no tengo mucha idea de como colocar el codigo que me diste carlos. NO veo que haga referenci a ninguna accion de un voton para exportar a excel.
Lo que me dicen anteriormente de jugar con las posiciones, lo eh hecho, pero lo que no me sale es que solo me aparezcan los registros de determinada "Categoria" es decir no eh logrado filtrar por campos. Espero que me sepan entender y ayudar! Gracias!!!! |
|
||||
|
Ok, lo que pasa es que trae mucho rollo para el formato de la hoja, pero tratera de explicarlo:
Primero, probablemente no era la mejor manera de hacerlo, pero te comento que lo hice ya hace varios a s y fue lo que me resulto, ppuedes cambiarlo de privado a funcion si tu quieres. Si la funcion la metes dentro de un command en el evento click ya tendras tu "referencia" a un boton.Segundo. With xlApli .Sheets(1).Activate .Range("A1") = "LISTADO DE SERVICIOS POR PLACAS" .Range("A3") = "CLIENTE :" .Range("B3") = CBONOMBRE.Text .Range("A5") = "FECHA :" .Range("B5") = Date .Range("A6") = "HORA :" .Range("B6") = Time .Range("A8") = "PLACAS" .Range("A10") = MSFlexGrid1.TextMatrix(1, 2) .Range("B8") = "FECHA SERVICIO" .Range("C8") = "MARCA" .Range("D8") = "KILOMETRAJE" .Range("E8") = "DETALLE SERVICIO" End With With MSFlexGrid1 For FilaFlex = 1 To .Rows - 1 xlApli.Cells(FilaExcel, 2) = .TextMatrix(FilaFlex, 1) xlApli.Cells(FilaExcel, 3) = .TextMatrix(FilaFlex, 3) xlApli.Cells(FilaExcel, 4) = .TextMatrix(FilaFlex, 4) xlApli.Cells(FilaExcel, 5) = .TextMatrix(FilaFlex, 5) FilaExcel = FilaExcel + 1 Next End With xlApli.Columns.AutoFit Creo que aqui debe haber algo de lo que buscas, es cuestio de ver donde caen los controles y las celdas del grid. Disculpa si no puedo explicarme un poco mejor pero estoy haciendo mis pininos en esto de ayudar. Sorry y suerte !
__________________
Que la fuerza te acompañe ! |
|
|||
|
Gracias por la respuesta, fuiste muy claro. Como dijiste puse el codigo que me diste anteriormente dentro de el evento clic de un command boton, pero me marca el siguiente error: .Sheets(1).Activate Es decir me lo marca en amarillo que puede ser?
|
|
||||
|
Extra
, para checarlo lo copie y lo corri en otra aplicacion y me funciona, no debiera marcarte nada porque solo le estas diciendo que la hoja activa es la uno, pero igual todas las lineas que digan ".Sheets(1).Activate" quitaselo, haber que gestos te hace !Saludos.
__________________
Que la fuerza te acompañe ! |
|
|||
|
Mira el codigo me queda asi:
Por un lado puse esto: vb Código:
Y por el otro lado puse esto: vb Código:
Y me marca como error el ".Sheets(1).Activate" y si lo saco me marca como error la linea que sigue. Me parece que me falta algo. Que tenes puesto vos en el form? YO tengo un MSHFLEXGRID y un par de botones. Gracias! |
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|