Utilizamos cookies propias y de terceros para mejorar la experiencia de navegación, y ofrecer contenidos y publicidad de interés.
Al continuar con la navegación entendemos que se acepta nuestra política de cookies.
Iniciar sesión Cerrar
Correo:
Contraseña:
Entrar
Recordar sesión en este navegador
Iniciar sesiónIniciar sesiónCrear cuentaCrear cuenta

Excel - Rango de Datos en un UserForm

  Imprimir  
Vista:

Rango de Datos en un UserForm

Publicado por Juan Pablo (3 intervenciones) el 14/05/2007 17:02:50
Estimados:

Primero quiero saludarlos atentamente. Estoy desarrollando una aplicación en excel y necesito desplegar un UserForm con información que está en una hoja del mismo archivo. Para ser más específico, desde una hoja (hoja1) llamo a un UserForm mediante una llamada a una macro (UserForm1.Show). Lo que necesito es que el UserForm desplegado contenga un rango de celdas (preferiblemente en formato de imagen) de otra hoja en el mismo libro (Rango(A1:K50) ubicado en hoja2).

Si pueden ayudarme, les estaré muy agradecido.

Atte.,

Juan Pablo
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

RE:Rango de Datos en un UserForm

Publicado por Abraham Valencia (2419 intervenciones) el 14/05/2007 17:36:56
Ya te respondi en emagister.

Abraham
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

RE:Rango de Datos en un UserForm

Publicado por Juan Pablo Contreras M. (3 intervenciones) el 14/05/2007 18:23:04
Abraham:

Muchas Gracias. No había actualizado la página por lo que no vi la respuesta.
Lamentablemente yo tengo Excel 2003 y no funciona la solución dada, incluso agregando las componente Microsoft Office XP Web. Respecto a lo mismo, quisiera que el rango mostrado en la UserForm fuese una imagen del rango de excel solicitado, esto para no perder el formato, ya que en algún momento agregué una excel en el formulario, pero no me permitió conservar el formato original. Probé también con la función de Excel "Cámara", pero no me permite grabar la macro. En definitiva he intentado varias soluciones y creo que la más recomendable es usar un OLE que tiene Visual Basic, pero que no puedo encontrar en VBA.

Nuevamente, si tienes alguna solución, te la agradecería muchísimo.

Atte.,

Juan Pablo
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

RE:Rango de Datos en un UserForm

Publicado por Abraham Valencia (2419 intervenciones) el 14/05/2007 23:55:42
Ya, voy entendiendo mejor. Tal y como tu dices, el dilema de usar, por ejemplo un spreadsheet, es que si bien se pueden ver los datos de la hoja de excel que uno quiera, pues no asi el formato, aunque a mi entender no le veo la necesidad, pero bueno. Siguiendo con tu idea de verlo como imagen, primero en un userform inserta un control refedit, un control image y un boton. Luego, en el modulo del userform, inserta esye codigo (casi todo es de Fernando Arroyo, yo solo le he variado un par de cosas)

Private Sub CommandButton1_Click()

Dim choObj As ChartObject, chGráf As Chart, ptImagen As Object
Dim blnGuardado As Boolean
Dim rango1 As Range
Dim nombre As String

Set rango1 = Range(Me.RefEdit1.Value)

rango1.CopyPicture _
appearance:=xlScreen, _
Format:=xlPicture

Set choObj = ActiveSheet.ChartObjects.Add(0, 0, 800, 600)
Set chGráf = choObj.Chart

choObj.Activate
chGráf.ChartArea.Select
chGráf.Paste
Set ptImagen = chGráf.Pictures(1)

ptImagen.Left = 0
ptImagen.Top = 0

choObj.Border.LineStyle = xlNone
choObj.Width = ptImagen.Width + 7
choObj.Height = ptImagen.Height + 7

blnGuardado = chGráf.Export( _
Filename:="C:\ImagenExcel.GIF", filtername:="GIF")
If Not blnGuardado Then MsgBox _
prompt:="Problemas al guardar la imagen.", _
Buttons:=vbOKOnly + vbExclamation
choObj.Delete

Image1.Picture = LoadPicture("c:\ImagenExcel.GIF")

Set choObj = Nothing
Set chGráf = Nothing
Set ptImagen = Nothing
Set rango1 = Nothing

End Sub

en tonces, activas el userform, con el control refedit, seleccionas el rango que deseas ver, le das clcik al botn y mira lo que sucede

Abraham
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

RE:Rango de Datos en un UserForm

Publicado por Juan Pablo Contreras (3 intervenciones) el 15/05/2007 17:54:07
Abraham:

Te agradezco mucho por tu apoyo en este problema. Utilicé el código que me enviaste (agradezco también a Fernando Arroyo) y pude resolver el problema. La única diferencia es que el rango que deseaba presentar en el UserForm era fijo y no variable según lo que tu me enviaste, pero sólo modifiqué pequeñas cosas.

Desde ya estoy a tu servicio en lo que te pueda ayudar y espero participar más activamente en este tipo de discuciones.

Un abrazo,

Juan Pablo Contreras M.
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

RE:Rango de Datos en un UserForm

Publicado por Abraham Valencia (2419 intervenciones) el 15/05/2007 18:06:18
Estimado amigo, que bueno que se resolvio tu dilema, en todo caso, sobre los rangos, ya sabes como hacer si en algun momento necesitas que estos sean variables

Abraham
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

RE:Rango de Datos en un UserForm

Publicado por guihe (40 intervenciones) el 19/09/2007 11:22:13
Hola, perdón que me meta en este foro. Es que estoy haciendo una aplicación parecida y necesito saber de qué manera le puedo pedir a la macro que me guarde la imagen como *.jpg o cualquier otro formato.
yo estoy utilizando este código, y en el userform 3 hay un boton que me gustaria que te guardara esto como imagen.

Dim C As Chart
'Dim sFileName$
On Error Resume Next
sFileName = ActiveWorkbook.Path & "\" & Mid(CStr(Rnd), 3) & ".jpg"
Set C = Sheets("MMNN")
C.Export sFileName
If Dir(sFileName) <> "" Then
UserForm3.Image1.Picture = LoadPicture(sFileName)
End If
Set C = Nothing
Kill sFileName
UserForm3.Show

gracias
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