You are on page 1of 4

Macro en excel en el que pueda abrir una

imagen obtener su nombre y guardarla en


otra carpeta
Pero necesito un botn que abra un explorador donde pueda seleccionar una imagen,
guardar la imagen en otra carpeta, obtener el nombre de la imagen o poder modificarlo.
Esto es para crear un formulario para un inventario, necesito ver la imagen del articulo,
tengo este cdigo
'documento = Application.GetOpenFilename("Imagenes (*.jpg*), *.jpg*")
'Cells(1, 1) = documento
Me da la direccin de la imagen, el problema es que si quiero mover mi documento a otro
equipo, las rutas de las imgenes quedaran invalidas.
Alguien podra ayudarme, o podra sugerirme otra idea.
Te anexo la macro con lo siguiente.
1. Cuando ejecutas la macro, te abre el explorador.
2. Una vez abierto el explorador, puedes realizar lo siguiente:
3. Para ver la imagen: Selecciona un archivo, ahora presiona el botn de "Vistas" y
selecciona la opcin "Vista previa". De esta forma podrs ver las imgenes.

4. Para modificar el nombre de la imagen: Selecciona el archivo. Ahora presiona la tecla


"F2" para editar el nombre.

5. Para mover el archivo a otra carpeta. Selecciona el archivo, presiona el botn "Abrir".
La macro te preguntar "Quieres mover el archivo", si presionas "No" la macro termina;

Si presionas "S"; la macro te presenta el explorador, pero de carpetas. Selecciona la


carpeta destino para mover el archivo y presiona "Aceptar"

Listo, el archivo con la imagen se mover a la carpeta que hayas elegido.


Te dejo la macro para mover imgenes.
Sub abririmagen()
'Por.Dante Amor
imag = Application.GetOpenFilename(FileFilter:= _
"Imgenes (*.gif;*.jpg;*.jpeg;*.bmp; *.png),
*.gif;*.jpg;*.jpeg;*.bmp; *.png", _
Title:="Selecciona una imagen", MultiSelect:=False)
If imag <> False Then
arch = LTrim(Mid(imag, 1 + InStrRev(imag, "\")))
If MsgBox("Quieres mover el archivo", vbYesNo) = vbYes Then
ruta = ThisWorkbook.Path
Set fldr = Application.FileDialog(msoFileDialogFolderPicker)
With fldr
.Title = "Selecciona la carpeta destino"
.AllowMultiSelect = False
.InitialFileName = ruta
If .Show <> -1 Then Exit Sub
cp = .SelectedItems(1)
End With
On Error GoTo sincopia
FileCopy imag, cp & "\" & arch
Kill imag
MsgBox "El Archivo se cambi de carpeta"
End If
End If
End

sincopia:
MsgBox "El archivo no se pudo mover"
End Sub

Si no quieres que el archivo origen se borre, entonces quita de la macro esta lnea:
Kill imag
Entonces solamente se copiar el archivo.
Sigue las Instrucciones para un botn y ejecutar la macro
Abre tu libro de Excel
Para abrir Vba-macros y poder pegar la macro, Presiona Alt + F11
En el men elige Insertar / Mdulo
En el panel del lado derecho copia la macro
Ahora para crear un botn, puedes hacer lo siguiente:
Inserta una imagen en tu libro, elige del men Insertar / Imagen / Autoformas
Elige una imagen y con el Mouse, dentro de tu hoja, presiona click y arrastra el
Mouse para hacer grande la imagen.
Una vez que insertaste la imagen en tu hoja, dale click derecho dentro de la imagen y
selecciona: Tamao y Propiedades. En la ventana que se abre selecciona la
pestaa: Propiedades. Desmarca la opcin Imprimir Objeto. Presiona Cerrar
Vuelve a presionar click derecho dentro de la imagen y ahora selecciona: Asignar
macro. Selecciona: abririmagen
Aceptar.
Para ejecutarla dale click a la imagen.

You might also like