Gráficos en formularios¡

De ante mano les agradeceré la ayuda que me pudiesen brindar, el caso es que estoy trabajando en un proyevto en el cual estoy programando formularios por medio vba de excel el caso es que necesito mostrar el formulario con una gráfica contenida en una hoja para lo cul e investigado y me encontré que se puede hacer con el control de image pero no se como usarlo.
Gracias y esperare su trespuesta...

1 Respuesta

Respuesta
1
Hace tiempo tuve que usar un gráfico para cargarlo en un control imege de un formulario. Te podría copiar aquí la solución, pero no me parece correcto puesto que es de otra persona.
Lo que hice está descrito en la web http://www.oaltd.co.uk e dentro de ella en un fichero PastePicture.zip que viene con ejemplo. Lo que hice, puesto que la función solamente es capaz de cargar en el form algo que venga del Clipboard, es generar el gráfico en una hoja auxiliar, modificarlo cuando era menester y cargarlo desde ahí al Clipboard y desde ahí al formulario.
No te preocupes si no entiendes la operativa de las funciones, solamente tendrás que incluir el modulo modPastePicture en tu proyecto y llamar a la función UpdateChart desde el módulo de tu programa principal o en el que quieras generar el cambio. Si mal no recuerdo el propio Excel comprimido viene con un ejemplo.
Gracias por el ejemplo esta muy buen pero quise adjuntarlo com mi proyecto pero no funciono como la padia utilizar ya que estoy usando if para obtener datos datos de diferentes hojas y quiero que la gráfica que se encuentra en esa hoja aparezca en el control de imagen le muestro mi código.
If HOJA = "C1" Then
Sheets("c1").Visible = True
Sheets("c1").Select
Sheets("menu").Visible = False
Label7 = Range("k8")
Label8 = Range("k9")
Label9 = Range("k10")
Label10 = Range("k11")
Label11 = Range("j13")
Label12 = Range("j16")
image1.picture=pastepicture("6 grafica")
Sheets("menu").Visible = True
Sheets("menu").Select
Sheets("c1").Visible = False
End If
Es pero me puedab ayudar ...
Para evitar problemas yo añadí una hoja al libro donde copiaba todos los datos que luego iban al formulario Así solo tengo un gráfico en la hoja 3, actualizo los datos para que se actualice el gráfico y luego lo copio al formulario. Así en tu código podrías poner algo como:
IF hoja="C1" then
... Copio los datos a la hoja intermedia, por ejemplo la 3 donde he creado el gráfico 1.
... llamo a UpdateChar para cargar el formulario.
end if
Y UpdateChar sería algo como:
Sub UpdateChart()
Dim oCht As Chart, lPicType As Long
'Find the chart object on the sheet
Set oCht = Sheets(3).ChartObjects(1).Chart
lPicType = xlBitmap 'tipo bitmap
'Update the chart type and copy it to the clipboard, as seen on screen
oCht.CopyPicture xlScreen, lPicType, xlScreen
'Paste the picture from the clipboard into our image control
Set UserForm.Image1.Picture = PastePicture(lPicType)
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas