Saltar al contenido

Hacer un userform con un gráfico de barras

publicado

Quisiera saber como puedo hacer para que en un userform me aparezca en una casilla tres valores hallados en la hoja excel y además que grafique una gráfica de barras de dos de esos valores.

macrocontar.xls

Featured Replies

publicado
Tan dificil es?

Si no lo es.... por favor comparte el ejemplo!

publicado
  • Autor

Pues si que debe ser difícil entonces, yo lo he intentado hacer pero no me sale, lo pensaré más este fin de semana. Si alguien que me pueda decir el error se lo agradecería igualmente.

publicado
Pues si que debe ser difícil entonces, yo lo he intentado hacer pero no me sale

Amigo! primero que nada una disculpa pensé que el comentario:

"Tan dificil es?"

se trataba de otro participante que se mofaba de la simplicidad del problema y por eso mi contestación a manera de reto. Fue un problema de mala observación y no leer que eras tu mismo preguntándote si era muy difícil de resolver tu problema.

Por otra parte... ya estabas tan cerca de resolverlo, pero te paso lo mismo que a mi! mala observación de tu parte el no darte cuenta que en tu codigo haces mencion a un control que no existe:

Image1.Picture = LoadPicture(Fname)

el nombre del control imagen es: image y no image1 (Suele pasar esto, gajes del oficio)

Este fueron unas modificaciones a tu codigo:

Private Sub CommandButton1_Click()
Dim ws As Worksheet
Dim celdas As Double
Dim celdas2 As Double


Set ws = ThisWorkbook.Sheets("Hoja1")
With ws
    .Cells(1, 5).Value = WorksheetFunction.CountA(.Range("B1:B40000"))
    .Cells(2, 5).Value = WorksheetFunction.CountA(.Range("C1:C40000"))
    .Cells(4, 5).Value = .Cells(1, 5) / .Cells(2, 5)
End With
End Sub


Private Sub image_Click()
Set CurrentChart = Sheets("Hoja1").ChartObjects(1).Chart


With CurrentChart
    .Parent.Width = 300
    .Parent.Height = 150
    'Save chart as GIF
    fname = ThisWorkbook.Path & Application.PathSeparator & "temp.gif"
    .Export Filename:=fname, FilterName:="GIF"
End With


Me.image.Picture = LoadPicture(fname)
End Sub

Te recomiendo comenzar con Me al hacer referencia a un control del formulario, así te saldrá el intelisense y podras escoger el nombre de la lista y no habrá cavidad de error para que solo te falte una letra.

Suerte!

publicado
  • Autor

No te preocupes, no lo decía en plan mofa, de hecho, me registre para aprender más. Decirte que lo he probado pero no me sale el gráfico en el userform. Ya me estoy desesperando jaja. Muchas gracias por contestarme de todas formas y un saludo.

Archivado

Este tema está ahora archivado y está cerrado a más respuestas.