Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

MshflexGrid a Excel Ayuda!!

Estas en el tema de MshflexGrid a Excel Ayuda!! en el foro de Visual Basic clásico en Foros del Web. Buenas, creo que es la primera vez que utilizo el foro y espero que me puedan ayudar, aca mi problema: Tengo un mshflexgrid conectado a ...
  #1 (permalink)  
Antiguo 01/07/2009, 20:10
 
Fecha de Ingreso: julio-2008
Mensajes: 10
Antigüedad: 15 años, 9 meses
Puntos: 0
MshflexGrid a Excel Ayuda!!

Buenas, creo que 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:

Private Sub Command4_Click()
Dim i As Long, j As Long
Dim objExcel As Object
Dim objWorkbook As Object
On Error Resume Next ' por si se cierra Excel antes de cargar los datos
Set objExcel = CreateObject("Excel.Application")
objExcel.Visible = True
Set objWorkbook = objExcel.Workbooks.Add
For i = 0 To MSHFlexGrid1.Rows - 1
MSHFlexGrid1.Row = i
For j = 0 To MSHFlexGrid1.Cols - 1
MSHFlexGrid1.Col = j
objWorkbook.ActiveSheet.Cells(i + 3, j + 1).Value = MSHFlexGrid1.Text
Next
Next
objExcel.Cells.Select
objExcel.Selection.EntireColumn.AutoFit ' Ancho de columna
objExcel.Range("A1").Select
objExcel.ActiveWindow.SelectedSheets.PrintPreview ' Previsualizar informe
Set objWorkbook = Nothing
Set objExcel = Nothing
End Sub

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!!
  #2 (permalink)  
Antiguo 02/07/2009, 16:32
 
Fecha de Ingreso: julio-2008
Mensajes: 10
Antigüedad: 15 años, 9 meses
Puntos: 0
Respuesta: MshflexGrid a Excel Ayuda!!

20 visitas ni una solucion!!! Por favor alguien que me ayude!
  #3 (permalink)  
Antiguo 02/07/2009, 18:19
 
Fecha de Ingreso: enero-2007
Ubicación: Tingo María - Perú
Mensajes: 399
Antigüedad: 17 años, 3 meses
Puntos: 13
Respuesta: MshflexGrid a Excel Ayuda!!

cambia

objWorkbook.ActiveSheet.Cells(i + 3, j + 1).Value

por

objWorkbook.ActiveSheet.Cells(4*(i + 1) , j + 1).Value


de tal modo que tengas algo asi

objWorkbook.ActiveSheet.Cells(4*(i + 1) , 1).Value = "Categoria"
objWorkbook.ActiveSheet.Cells(4*(i + 1)+1 , 1).Value = "Nombre"
objWorkbook.ActiveSheet.Cells(4*(i + 1)+1 , 2).Value = "Apellido"

y claro quitarias tambien el bucle:

For j = 0 To MSHFlexGrid1.Cols - 1
__________________
Vivir para ser buenos y ser buenos para servir mejor.
  #4 (permalink)  
Antiguo 04/07/2009, 10:55
 
Fecha de Ingreso: julio-2008
Mensajes: 10
Antigüedad: 15 años, 9 meses
Puntos: 0
Respuesta: MshflexGrid a Excel Ayuda!!

Perdon por ser tan burro, pero yo hice los cambios que me dijiste y me quedo asi:

Private Sub Command4_Click()
Dim i As Long, j As Long
Dim objExcel As Object
Dim objWorkbook As Object
On Error Resume Next ' por si se cierra Excel antes de cargar los datos
Set objExcel = CreateObject("Excel.Application")
objExcel.Visible = True
Set objWorkbook = objExcel.Workbooks.Add
For i = 0 To MSHFlexGrid1.Rows - 1
MSHFlexGrid1.Row = i
MSHFlexGrid1.Col = j
objWorkbook.ActiveSheet.Cells(4 * (i + 1), 1).Value = "Categoria"
objWorkbook.ActiveSheet.Cells(4 * (i + 1) + 1, 1).Value = "Jinete/Amazona"
objWorkbook.ActiveSheet.Cells(4 * (i + 1) + 1, 2).Value = "Caballos"
Next
objExcel.Cells.Select
objExcel.Selection.EntireColumn.AutoFit ' Ancho de columna
objExcel.Range("A1").Select
objExcel.ActiveWindow.SelectedSheets.PrintPreview ' Previsualizar informe
Set objWorkbook = Nothing
Set objExcel = Nothing
End Sub

Y cuando presiono el boton me aparece un excel con lo siguiente:

Categoria
Jinete/Amazona Caballos


Categoria
Jinete/Amazona Caballos


Categoria
Jinete/Amazona Caballos


Categoria
Jinete/Amazona Caballos


Categoria
Jinete/Amazona Caballos


Creo que lo que estoy haciendo mal es que noe stoy haciendo referencia al MSHFlexGrid, como hago?
  #5 (permalink)  
Antiguo 27/09/2009, 12:04
 
Fecha de Ingreso: diciembre-2008
Ubicación: Tumbes - Peru
Mensajes: 18
Antigüedad: 15 años, 4 meses
Puntos: 0
Respuesta: MshflexGrid a Excel Ayuda!!

a ver prueba con este codigo:

Sub GridAExcel(grid As MSFlexGrid)

Dim oExcel As Excel.Application
Dim i As Integer, j As Integer
Screen.MousePointer = vbHourglass
Set oExcel = CreateObject("Excel.Application")
oExcel.Workbooks.Add
With grid
For i = 0 To .Rows - 1
For j = 1 To .Cols - 1
oExcel.Cells(i + 1, j) = .TextMatrix(i, j)
Next j
Next i
End With
oExcel.Visible = True
Screen.MousePointer = vbDefault


luego solo lo llamas GridAExcel nombredetu grid
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 18:34.