Guardar rango en un documento

Hola Tavopz,
Me urge saber si es posible seleccionar un rango de una hoja de excel y, copiarlo en un documento de imagen (formato .jpg) (vaya, sí que es posible hacerlo manualmente: copiar el rango y abriendo el "paint" pegar), pero para que se ejecute dentro de una macro y escribirlo en código de visual basic.
Atentamente,
Midma
Respuesta
1
Para tu primera pregunta, se puede agregar un cuadro de diálogo que te pregunte el nombre cada vez y le coloque la extensión .jpg. Entonces reemplaza la línea:
nomb = "yxxx.jpg"
Por:
nomb = InputBox("Ingrese el nombre del archivo") & ".jpg"
------------
Con respecto a la segunda pregunta, no hay forma de controlar esto, es más el Paint debería preguntarlo de todas formas y después de la respuesta se ejecutaría el resto del código, pero lo que se me ocurre es lo siguiente. El tamaño de la imagen de Paint que se abre por defecto es el tamaño de la última imagen que se ha guardado, entonces, cambia el tamaño de esta imagen y guardalo para ver si la próxima vez que ejecutes la macro se toma este tamaño.
Revisa si la siguiente macro te funciona para lo que quieres:
'*****************
Sub PegarenPaint()
Selection.Copy
nomb = "yxxx.jpg"
ReturnValue = Shell("MSPAINT.EXE", 1)
AppActivate ReturnValue
SendKeys "^(v)", True
SendKeys "^(g)", True
SendKeys nomb, True
SendKeys "%(g), True"
End Sub
'*****************
Como verás, en la variable "nomb" se está asignando el nombre al archivo, así que tendrías que cambiarlo. Igualmente, la macro se debe correr a partir del momento en que se tenga selecciona el área pegar.
Saludos, Tavopz
------------------------------
*** No olvides visitar la mejor página de Hojas Excel en:
www.exceluciones.com
Hola Tavopz,
Me has dado una solución que prácticamente ejecuta lo que te pedí. Muchas gracias.No obstante tengo un par de dudas. La primera es: ¿"nomb" ha de indicar la ruta de un documento concreto que se va a ir modificando cada vez o, cada vez que ejecute la macro me creará un nuevo documento?.
La segunda duda es: si realizo el proceso manualmente (seleccionar rango, copiar, abrir el Paint y pegar) el paint me dice que "la imagen en el portapapeles es mayor que el mapa de bits. ¿Desea hacer más grande el mapa de bits?" ¿Cómo se le indica que "si" a la pregunta en el código? (Al ejecutar el código que me has dado solamente pega en el tamaño de presentación del paint que es muy corto).
Cordialmente,
Midma
Hola Tavopz,
Creo que por defecto el paint tiene un tamaño máximo, aunque la última imagen sea dos veces mayor solamente enseña el máximo de pantalla. Pero se me ocurrió, al entender un poco más el código que me enviaste, que el paint al pegar (sendkeys "V"), también debería preguntar si se quiere hacer mayor el mapa de bits (la tecla "entrar" directamente) y busqué en la ayuda sobre sendkeys y encontré el código.
En fin que lo he solucionado. Muchas gracias. Tu aportación me ha sido muy valuosa. Espero poder seguir consultándote si me surge alguna que otra duda.
Atentamente,
Midma

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas