Macros

Hola PARAMISOLO, quería consultarte por macros para asignar a botones que permitan:
1> Guardar el archivo en uso (que había sido abierto de una plantilla) con el nombre original de la plantilla + el valor que aparece en una celda. Ej. Libro original nombre "\\Server\NP\Nota de Pedido Interna.xls", guardarla como "\\Server\NP\Nota de Pedido &(dato tomado de la celda C7).xls"
2> Guardar un rango (Ej: de la hoja en un libro nuevo, y guardarlo con nombre predefinido: Ejemplo: Libro original nombre "\\Server\NP\Nota de Pedido Carlos.xls", copiar el rango en un libro nuevo y que este se guarde en otro directorio y con otro nombre "\\Server\OI\Orden de Instalación Carlos.xls" o en lugar de "Carlos", el valor de la celda C49)
Nota: Las columnas de la planilla original tienen anchos variables, por lo que si solamente copio y pego las celdas del rango en un nuevo libro, tendríamos que ademas, copiar el ancho de dichas columnas)
3> Enviar por e-mail un rango de celdas sin tener que enviar toda la hoja o todo el libro.
¿Las macros funcionaran si se ejecutan con el libro original protegido con contraseña? Muchas gracias, Manu

1 respuesta

Respuesta
1
Vaya consultita, 3 en una bueno pues para las 2 primeras he trabajado yo, y esta es la macro personalizada:
Sub Guardar_Varios_Libros()
Dim mi_nombre As String
Dim archivo As String
Dim nombre As String
Dim nuevoarchivo As String
Dim libroX As String
Dim libroY As String
mi_nombre = ThisWorkbook.Name
archivo = Range("C7").Value
nombre = Left(nombre, 14)
ChDir "\\Server\NP"
ActiveWorkbook.SaveAs Filename:="\\Server\NP\" & nombre & " " & archivo & ".xls", FileFormat:= _
    xlNormal, Password:="", WriteResPassword:="", ReadOnlyRecommended:=False _
    , CreateBackup:=False
libroX = ActiveWorkbook.Name
nuevoarchivo = Range("C49").Value
 Workbooks.Add
 ChDir "\\Server\OI"
 ActiveWorkbook.SaveAs Filename:="\\Server\OI\Orden de Instalación  " & nuevoarchivo & ".xls", FileFormat:= _
    xlNormal, Password:="", WriteResPassword:="", ReadOnlyRecommended:=False _
    , CreateBackup:=False
libroY = ActiveWorkbook.Name
Windows("" & libroX & "").Activate
Range("A1:A20").Copy
Windows("" & libroY & "").Activate
Range("A1").Select
Selection.PasteSpecial Paste:=xlPasteColumnWidths, Operation:=xlNone, _
        SkipBlanks:=False, Transpose:=False
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, _
        SkipBlanks:=False, Transpose:=False
ActiveWorkbook. Sabe
ActiveWorkbook. Close
ActiveWorkbook. Sabe
Application. Quit
End Sub
Cambias los rangos a tu necesidad.
Y para la 3ª cuestión te toca trabajar a ti aquí te dejo la forma de enviar un libro por email con Outlook, si utilizas otro programa tendrás que arrancar antes la aplicación, los comentarios están en ingles pero para eso está el santo google como traductor.
http://foros.emagister.com/tema-macro_que_emule_enviar_a_destinatario_de_correo-12890-312883-1.htm
La contestación la hizo Gerardo es la segunda parte.
>Un saludo
>Julio
PD: En enviar por email poco más te puedo ayudar que la macro que en esa página está.
Si te ha servido puntúas y finalizas la consulta.
Muchas gracias! Como tuve que modificar unas cosas en lo planeado, al final utilicé solo partes que fui sacando de esta macro. Y ya me quedo todo perfecto! Muchas gracias!

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas