Visual Basic - Graficar en excel

Life is soft - evento anual de software empresarial
 
Vista:
sin imagen de perfil

Graficar en excel

Publicado por Raúl Santiago (178 intervenciones) el 29/07/2005 16:30:51
Tengo un proyecto en el cual mando datos a excel, pero me están pidiendo que deje las gráficas hechas en excel con estos datos. Como le pido a excel esto y que me las organice con los parámetros que yo quiero obviamente desde Visual Basic.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 14
Ha aumentado 1 puesto en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

RE:Graficar en excel

Publicado por SuNcO (599 intervenciones) el 29/07/2005 21:05:31
Esta respuesta la di hace com o5 dias pero no la encuentro asi que..

Ocupas un MsFlexGrid, un boton y un PictureBox

Private Sub Command1_Click()
' Captura de errores
On Error Resume Next

Dim objExcel As Object
Dim objLibro As Object

' Hace una referencia a la aplicación Excel
Set objExcel = GetObject(, "Excel.Application")

' Si nos da error significa que Excel NO esta en ejecucion
If Err.Number = 429 Then
Err.Clear
' Creamos una NUEVA instancia de Excel
Set objExcel = CreateObject("Excel.Application")
End If

' Mostrar el Excel
'objExcel.Visible = True

' Crear nuevo Libro
objExcel.WorkBooks.Add

Set objLibro = objExcel.WorkSheets(1)

' Enviar encabezados
Flex1.Row = 0
For i = 1 To Flex1.Cols - 1
Flex1.Col = i
objLibro.Range(Chr(65 + i) & "1").Value = Flex1
Next i

Flex1.Col = 0
For i = 1 To Flex1.Rows - 1
Flex1.Row = i
objLibro.Range("A" & i + 1).Value = Flex1
Next i

' Enviar datos
For i = 1 To Flex1.Rows - 1
Flex1.Row = i
For z = 1 To Flex1.Cols - 1
Flex1.Col = z
objLibro.Range(Chr(65 + z) & i + 1).Value = CDbl(Flex1)
Next z
Next i


Rango = "A1:" & Chr(64 + Flex1.Cols) & Flex1.Rows

' Seleccionar los datos
objLibro.Range(Rango).Select

objExcel.Charts.Add
objExcel.ActiveChart.ChartType = 51
objExcel.ActiveChart.Location 2, "Hoja1"
objExcel.ActiveChart.HasLegend = True
objExcel.ActiveChart.Legend.Select
objExcel.ActiveSheet.ChartObjects("Gráfico 1").Activate
objExcel.ActiveChart.ChartArea.Select
objExcel.ActiveChart.ChartArea.Copy

Picture1.Picture = Clipboard.GetData

objLibro.SaveAs "c:\temporal123.xls"

objExcel.quit

Do
Kill "c:\temporal123.xls"
Loop Until Dir("c:\temporal123.xls") = ""

MsgBox "Listo"
End Sub

Private Sub Flex1_Click()
Flex1 = InputBox("Escribe el Numero")
End Sub

Public Function NumeroAleatorio(Minimo As Long, Maximo As Long) As Long
Randomize Timer
NumeroAleatorio = Int((Maximo - Minimo + 1) * Rnd(Timer) + Minimo)
End Function

Private Sub Form_Load()
Flex1.Col = 1
Flex1.Row = 0
Flex1 = "Comida"
Flex1.Col = 2
Flex1 = "Transporte"
Flex1.Col = 3
Flex1 = "Alojamiento"

Flex1.Col = 0
Flex1.Row = 1
Flex1 = "Enero"
Flex1.Row = 2
Flex1 = "Febrero"
Flex1.Row = 3
Flex1 = "Marzo"
Flex1.Row = 4
Flex1 = "Abril"

' Llenar de Datos al Azar
For i = 1 To 3
Flex1.Col = i

For z = 1 To 4
Flex1.Row = z

Flex1 = NumeroAleatorio(10, 50)
Next z

Next i
End Sub

' ---------------------------------------

Para que el excel no se cierre quita esta linea :

objExcel.quit

Y si gustas tampoco guardes la grafica
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

RE:Graficar en excel

Publicado por Raúl Santiago (178 intervenciones) el 30/07/2005 00:38:39
Sunco eres un duro, Muchas Gracias, funciona perfectamente.

Ahora tengo otra pregunta, la cosa es que tengo varios gráficos, por lo cual al hacer esto quedan sobrepuestos, como hago para crear hojas nuevas con el nombre que yo quiero, y así poner los graficos en estas hojas, o como hago para moverlos, ademas como le pongo los cambiarle los labels titulo y demas propiedades
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 14
Ha aumentado 1 puesto en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

RE:Graficar en excel

Publicado por SuNcO (599 intervenciones) el 30/07/2005 01:13:37
Para cambiarle los textos checa el evento Load, que es donde se ponen. Tambien puedes agregarle Columnas, no importa, ya que el codigo es en base a las columnas que lea y no a las 3 solamente que te puse en el ejemplo

Para lo demas pues.. lo que pasa es que este codigo es para VBA y no VB normal, y si le muevo pero no mucho, al menos no tanto para necesitarlo es por eso que lo hize sencillito

Un truco que me ah sido MUY util es crear unamacro con los movimientos que deseo, despues veo el codigo en el editor que trae Excel y me voy dando una guia de como hacerle
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

RE:Graficar en excel

Publicado por Raúl Santiago (178 intervenciones) el 30/07/2005 22:05:31
Muchas Gracias, voy a intentarlo.

Otra cosa sunco donde consigo manuales para visual pero que sean avanzados es que los que he visto son muy básicos y quisiera realmente manejar bien el programa y asi no pegarse a veces tanto
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 14
Ha aumentado 1 puesto en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

RE:Graficar en excel

Publicado por SuNcO (599 intervenciones) el 30/07/2005 23:00:47
Pues.. todo lo que se de VB es por leer, libros, la ayuda que trae, ejemplos.. echando a perder unos, mejorando otros etc..
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar