Domingo 22 de Diciembre de 2024, 13:54
SoloCodigo
Bienvenido(a),
Visitante
. Por favor,
ingresa
o
regístrate
.
¿Perdiste tu
email de activación?
Inicio
Foros
Chat
Ayuda
Buscar
Ingresar
Registrarse
SoloCodigo
»
Foros
»
Programación General
»
Visual Basic 6.0 e inferiores
(Moderador:
F_Tanori
) »
Msflexgrid A Excel (commandbutton)
« anterior
próximo »
Imprimir
Páginas: [
1
]
Autor
Tema: Msflexgrid A Excel (commandbutton) (Leído 3941 veces)
rechy
Miembro activo
Mensajes: 69
Msflexgrid A Excel (commandbutton)
«
en:
Jueves 29 de Enero de 2004, 15:27 »
0
Hola amigos, quiero saber como pasar todos los datos que obtengo en el Msflexgrid a Excel mediante un Command button pero no logro tener exito.
He visto varios de los codigos que han puesto aqui pero ninguno me ha dado ideas para lograr mi objetivo. Si alguien puede ayudarme se lo agradecere.
Saludos
Tweet
Brroz
Miembro de PLATA
Mensajes: 1058
Re: Msflexgrid A Excel (commandbutton)
«
Respuesta #1 en:
Jueves 29 de Enero de 2004, 16:33 »
0
Hola rechy.
Usa algo de este estilo:
Código: Text
Private Sub Command1_Click()
On Error GoTo Err_XLS
Dim objApp As Object
Dim objWb As Object
Dim objSh As Object
Dim lngR As Long, lngC As Long
Set objApp = CreateObject("Excel.Application")
Set objWb = objApp.WorkBooks.Add
Set objSh = objWb.ActiveSheet
For lngR = 0 To MSFlexGrid1.Rows - 1
For lngC = 0 To MSFlexGrid1.Cols - 1
objSh.Cells(lngR + 1, lngC + 1) = _
MsFlexGrid1.TextMatrix(lngR, lngC)
Next lngC
Next lngR
objWb.SaveCopyAs "c:\ruta\nombre.xls"
objWb.Saved = True
Exit_XLS:
On Local Error Resume Next
objApp.Close
objApp.Quit
Set objSh = Nothing
Set objWb = Nothing
Set objApp = Nothing
Exit Sub
Err_XLS:
MsgBox "(" & Err.Number & ") " & Err.Description, vbCritical, "Xls"
Resume Exit_XLS
End Sub
Abur.
rechy
Miembro activo
Mensajes: 69
Re: Msflexgrid A Excel (commandbutton)
«
Respuesta #2 en:
Jueves 29 de Enero de 2004, 17:28 »
0
Muchas gracias Brroz. Me funciono al 100%. Muchas gracias por tu apoyo.
Saludos.
rechy
Miembro activo
Mensajes: 69
Re: Msflexgrid A Excel (commandbutton)
«
Respuesta #3 en:
Miércoles 4 de Febrero de 2004, 19:05 »
0
Una pregunta mas.
El codigo que me diste es perfecto, pero como puedo hacerle para que al momento de ejecutarlo se abra excel mostrandome los datos que tengo en el MsFlexgrid???
Ya que con el codigo que pusiste solo me lo crea en la ruta que yo le especifico pero no me lo abre.
Gracias por toda tu ayuda.
rechy
Miembro activo
Mensajes: 69
Re: Msflexgrid A Excel (commandbutton)
«
Respuesta #4 en:
Miércoles 4 de Febrero de 2004, 23:57 »
0
Ya lo logre Brroz.
Pero me gustaria que me lo abriera en una hoja de excel nueva, es decir que no exista, para que al momento de querer cerrarla me aparezca si deseo guardar los cambios y si le doy que si que me pregunte en que ruta quiero guardarlo.
Espero y me haya explicado.
Saludos.
Brroz
Miembro de PLATA
Mensajes: 1058
Re: Msflexgrid A Excel (commandbutton)
«
Respuesta #5 en:
Jueves 5 de Febrero de 2004, 09:04 »
0
Hola rechy.
El código ya
crea una nuevo libro
... si desearas utlizar uno ya existente, en vez de CreateObject, utilizarías GetObject.
Para mostrar el libro en cuestión haz lo siguiente:
objApp.Show
Para que te pregunte si quieres guardar los cambios, elimina estas líneas:
objWb.SaveCopyAs "c:\ruta\nombre.xls"
objWb.Saved = True
Suerte.
rechy
Miembro activo
Mensajes: 69
Re: Msflexgrid A Excel (commandbutton)
«
Respuesta #6 en:
Viernes 6 de Febrero de 2004, 15:24 »
0
Hola Brroz. Aplique los cambios que me dijiste y me aparece un error: el objeto no soporta este tipo de metodo, y no me abre excel.
El codigo esta asi:
Private Sub Command9_Click()
On Error GoTo Err_XLS
Dim objApp As Object
Dim objWb As Object
Dim objSh As Object
Dim lngR As Long, lngC As Long
Set objApp = CreateObject("Excel.Application")
Set objWb = objApp.WorkBooks.Add
Set objSh = objWb.ActiveSheet
For lngR = 0 To tabla.Rows - 1
For lngC = 0 To tabla.Cols - 1
objSh.Cells(lngR + 1, lngC + 1) = _
tabla.TextMatrix(lngR, lngC)
Next lngC
Next lngR
objApp.Show
Exit_XLS:
On Local Error Resume Next
objApp.Close
objApp.Quit
Set objSh = Nothing
Set objWb = Nothing
Set objApp = Nothing
Exit Sub
Err_XLS:
MsgBox "(" & Err.Number & ") " & Err.Description, vbCritical, "Xls"
Resume Exit_XLS
End Sub
Tambien lo probe quitandole el Exit_XLS y el Err_XLS y me sale lo mismo.
Espero y puedas ayudarme.
Saludos.
rechy
Miembro activo
Mensajes: 69
Re: Msflexgrid A Excel (commandbutton)
«
Respuesta #7 en:
Viernes 6 de Febrero de 2004, 15:32 »
0
Se me olvido decirte que el ObjApp.Show lo puse asi:
ObjApp.Show = True
De todas formas aunque le agrege el = True me saca el mismo error.
Saludos
Brroz
Miembro de PLATA
Mensajes: 1058
Re: Msflexgrid A Excel (commandbutton)
«
Respuesta #8 en:
Lunes 9 de Febrero de 2004, 09:07 »
0
Hola rechy.
Disculpa el error... lo que deberías de poner en vez de objApp.Show es
objApp.Visible = True
. Debes de quitar también las líneas
objApp.Close
y
objApp.Quit
, pues excel se cerraría al ejecutarlas.
También estaría bien que añadieras
objApp.UserControl = True
.
Suerte.
rechy
Miembro activo
Mensajes: 69
Re: Msflexgrid A Excel (commandbutton)
«
Respuesta #9 en:
Lunes 9 de Febrero de 2004, 15:18 »
0
Muchisimas gracias Brroz.
Lo que me dices funciona perfectamente.
Agradezco el tiempo que te tomas.
Saludos.
roxiii
Miembro activo
Mensajes: 79
Re: Msflexgrid A Excel (commandbutton)
«
Respuesta #10 en:
Sábado 14 de Febrero de 2004, 00:46 »
0
hola rechy y bbroz, les cuento que estoy en el mismo problema pero tengo que recuperar una plantilla de excel y luego llenar los datos en ella, pero no me funciona, que estoy haciendo mal?, o es que debo cambiar algo en el codigo, lo unico que hice fue cambiar .add por .get y la ruta del archivo, pero me cambia las propiedades de mi objeto excel
, y no entiendo por que...
Brroz
Miembro de PLATA
Mensajes: 1058
Re: Msflexgrid A Excel (commandbutton)
«
Respuesta #11 en:
Sábado 14 de Febrero de 2004, 12:27 »
0
Hola roxiii.
Para eso, debes modificar un par de cosillas:
1- Como el libro debe existir, en vez de 'CreateObject', utilizarías esto para obtener la instancia al objeto application:
Código: Text
Set objApp = GetObject("C:\Ruta\Nombre.xls")
2- Para obtener una instancia a la hoja que quieres modificar:
Código: Text
Set objWb = objApp.Worksheets
Set objSh = objWb("Nombre de mi hoja")
3- El resto viene a ser lo mismo.
Suerte.
roxiii
Miembro activo
Mensajes: 79
Re: Msflexgrid A Excel (commandbutton)
«
Respuesta #12 en:
Martes 17 de Febrero de 2004, 19:17 »
0
hola Brroz, gracias
, ahora ya me ubico que tipo de objeto debe ser objSh, yo le puse objapp.open Fielename:= "Nombre archivo" en vez de getobject() y me ha funcionado muy bien, y tengo una pregunta mas, cuando ya grabe el archivo de Excel y salgo del programa, cuando quiero abrirlo de nuevo, me abre la ventana de Excel y aparece vacia, es decir solo los contornos, es que no he cerrado algo bien?, o deje abierto algun objeto, ya puse .saved=true pero sigue igual...
Brroz
Miembro de PLATA
Mensajes: 1058
Re: Msflexgrid A Excel (commandbutton)
«
Respuesta #13 en:
Miércoles 18 de Febrero de 2004, 09:10 »
0
Hola roxiii.
Seguramente te falta
objApp.Quit
para cerrar excel.
Abur.
roxiii
Miembro activo
Mensajes: 79
Re: Msflexgrid A Excel (commandbutton)
«
Respuesta #14 en:
Miércoles 10 de Marzo de 2004, 19:00 »
0
Hola de nuevo, te cuento que tengo la linea
objApp.Quit
en mi codigo, y el problema reside en que estoy abriendo una hoja de cálculo , la guardo con otro nombre y luego cierro Excel, pero cuando salgo del programa, la primera hoja sigue abierta... bueno, gracias por tu ayuda Brroz, seguimos en contacto.
roxiii
Miembro activo
Mensajes: 79
Re: Msflexgrid A Excel (commandbutton)
«
Respuesta #15 en:
Jueves 11 de Marzo de 2004, 00:22 »
0
hola ya encontre la solucion, debia añadir un nuevo libro con la plantilla y no asi abrir la plantilla, ahora si funciona todo....
es decir debia haber hecho esto:
xl.Workbooks.Add Template:=App.Path & "\Plantillas\formato.xlt"
en vez de esto:
objApp.Workbooks.Open FileName:=App.Path & "\Plantillas\formato.xlt"
bueno con esto creo que ya esta...
bye bye
Imprimir
Páginas: [
1
]
« anterior
próximo »
SoloCodigo
»
Foros
»
Programación General
»
Visual Basic 6.0 e inferiores
(Moderador:
F_Tanori
) »
Msflexgrid A Excel (commandbutton)