Inicio > Microsoft Excel > gomzky > como creo una macro en excel para guardar como...

como creo una macro en excel para guardar como...

Experto:
Usuario:
Fecha: 07/11/2009
Valoración: (4,00 sobre 5) Categoría: Microsoft Excel
28/10/2009
eliosr, usuario preguntando en Microsoft Excel
Usuario
hola amigo, denuevo te molesto, en la ayuda que me brindastes anteriormente me fue de gran utilidad, pero quisiera ahora que me colaboraras agregando otras cositas para dejar mi archivo ya terminado.
esto fue el codigo que tu me respondistes la vez pasada.......
Ok; Como ya conoces el funcionamiento, te pongo solo el codigo; Solo tendrás que copiarlo y pegarlo en tu macro.
Sub MacroX()          'La que tu tengas definida---
  DIM NombreFichero as String
  DIM Fecha as String
   NombreFichero=Range("A1").Select    'A1 corresponde a la celda con el nombre de fichero
   ChDir "C:\Carpeta de Documentos\"
   Fecha=Format(Date(), "DDMMAA") 'Puedes cambiar el formato a tu gusto
   ActiveWorkbook.SaveAs Filename:=NombreFichero & Fecha
   MsgBox "Fichero " & NombreFichero & Fecha & " guardado"
End Sub
bueno, lo que necesito ahora es agregarle mas funciones al mismo boton.....
1. quiero que al dar clic en el boton, me imprima 2 copias, me haga un guardar como con el nombre de una celda y la fecha,  limpie todos las celdas que utilize, y que me quede el libro original activo......
de antemano agradeciendo tu colaboracion......
 
 
 
29/10/2009
eliosr, experto respondiendo en Microsoft Excel
Experto
Bueno, a ver... te escribo el código completo para que solo tengas que "Copiar" y "Pegar"
Espero que me puntues bien por todo el trabajo, ehh ,-)
-------------------
Sub MacroX()          'La que tu tengas definida---
  DIM NombreFichero as String
  DIM Fecha as String
   NombreFichero=Range("A1").Select   
'A1 corresponde a la celda con el nombre de fichero
   ChDir "C:\Carpeta de Documentos\"

   Fecha=Format(Date(), "DDMMAA") 'Puedes cambiar el formato a tu gusto
   ActiveWorkbook.SaveAs Filename:=NombreFichero & Fecha
   MsgBox "Fichero " & NombreFichero & Fecha & " guardado"

   ActiveWindow.SelectedSheets.PrintOut Copies:=2  '->Con esto imprime las 2 copias
   Range("A1:B8").Select      '-> Escribe aqui el rango de celdas que quieres borrar
   Selection.ClearContents   '-> Esta instruccion borra el contendido de las celdas.
End Sub
------------------------
Con esto, considero que estará resuelto tu problema..... espero que quede de tu gusto.-
Saludos
29/10/2009
eliosr, usuario preguntando en Microsoft Excel
Usuario
mi hermano esta bien tu a porte, ya guarda y todo pero solo me falta que me deje el archivo original abierto y cierre el que creo el guardar como......
osea que me deje el original abieto para que otro usuario lo utilize, y valla guardando los que valla realizando en la carpeta dejandome el original activo..............
gracias de nuevo..............
 
30/10/2009
eliosr, experto respondiendo en Microsoft Excel
Experto
Ok, eso es muy fácil... tan solo tienes que guardar el archivo original (el que deseas que esté con las casillas limpias) como Plantilla. Para ello, cuando le des a "Guardar Como", en "Tipo de Archivo", especifica "Plantilla", (tambien sirve si le cambias la extension a la hoja de calculo.... en vez de XLS, tienes que cambiarla a XLT)
  
 Con este "truco", no se guardará el archivo principal, y siempre lo tendrás "listo" para la siguiente vez....
Un saludo, y espero haberte ayudado.-
30/10/2009
eliosr, usuario preguntando en Microsoft Excel
Usuario
mi hermano, el truco esta bien, pero tengo un pequeño inconveniente, la copia que me guarda, me la guarda tambien en el formato de plantilla, y ademas queda activo, no lo cierra, lo que necesito es que me guarde la copia que hago la cierre y me deje el original abierto, no importa que borre el contenido, que despues yo le coloco al archivo original al un boton para que antes de empesar borre todos los datos......
 
 
de antemano agredeciendo tu colaboracion.......
30/10/2009
eliosr, experto respondiendo en Microsoft Excel
Experto
Hola de nuevo...
Ya he hecho algunos cambios para que quede exactamente como tu deseas... aqui va el código completo:
____________________________________
Sub MacroX()          'La que tu tengas definida---
  Dim NombreFichero As String
  Dim Fecha As String

    
   NombreFichero = Range("A1").Value  'A1 corresponde a la celda con el nombre de fichero
   Fecha = Format(Date, "DDMMYY") 'Puedes cambiar el formato a tu gusto
   
   ActiveWorkbook.Sheets.Select     'Selecciona todas las hojas del libro
   ActiveWorkbook.Sheets.Copy       'Y crea una copia de las hojas seleccionadas
  'Aqui le decimos que guarde las hojas copiadas con el nombre del fichero que deseamos, y en la carpeta que queremos
   Workbooks(2).Close SaveChanges:=True, Filename:=NombreFichero & Fecha
   ActiveWindow.SelectedSheets.PrintOut Copies:=2  '->Con esto imprime las 2 copias
   Range("B2:B8").Select      '-> Escribe aqui el rango de celdas que quieres borrar
   Selection.ClearContents   '-> Esta instruccion borra el contendido de las celdas.
   
End Sub

Nota: Te recomiendo que en el libro original, elimina las hojas que no necesites y deja solo las que necesitas, porque sino, cuando lo copias, se copian todas las hojas, incrementando bastante el tamaño del fichero de Excel.
______________________________________
Con esto, considero que ya tienes arreglado el problema...  espero que me puntues bien, porque he tenido que machacarme mucho la cabeza... no me salía a la primera y he tenido que exprimirme a fondo con este tema, ya por "cabezoneria personal", jejejee...
En fin, espero que ahora si esté arreglado... ha sido un placer echarte una mano.-
Saludos.-
30/10/2009
eliosr, usuario preguntando en Microsoft Excel
Usuario
amigo que pena molestarlo tanto, pero yo utilizo 2 hojas en el archivo, y una de esas hojas es una base de datos de productos, al ejecutar la macro mando a imprimir todo, hasta la base de datos, podrias regarlarme un correo donde te pueda mandar el archivo para que lo revises y tengas una idea de lo que quiero..........
 
gracias de nuevo......
31/10/2009
eliosr, experto respondiendo en Microsoft Excel
Experto
Ok, te envio de nuevo el programita retocado para arreglar este problema.
_________________________________________________________
Sub MacroX()          'La que tu tengas definida---
  Dim NombreFichero As String
  Dim Fecha As String
    
   NombreFichero = Range("A1").Value  'A1 corresponde a la celda con el nombre de fichero
   Fecha = Format(Date, "DDMMYY") 'Puedes cambiar el formato a tu gusto
   
   ActiveWorkbook.Sheets.Select     'Selecciona todas las hojas del libro
   ActiveWorkbook.Sheets.Copy       'Y crea una copia de las hojas seleccionadas
  'Aqui le decimos que guarde las hojas copiadas con el nombre del fichero que deseamos, y en la carpeta que queremos
   Workbooks(2).Close SaveChanges:=True, Filename:=NombreFichero & Fecha
  'Antes de imprimir, desactivamos todas las hojas para que solo se imprima la que deseas:
   Sheets("Hoja1").Select      'Selecciona solo la hoja que quieres imprimir
   Sheets("Hoja1").Activate   'y la activa...
   ActiveWindow.SelectedSheets.PrintOut Copies:=2  '->Con esto imprime las 2 copias
   Range("B2:B8").Select      '-> Escribe aqui el rango de celdas que quieres borrar
   Selection.ClearContents   '-> Esta instruccion borra el contendido de las celdas.
   
End Sub
________________________________________
No obstante, si deseas enviarme tu programa mi correo es: gomzky@hotmail.com
Un saludo, y espero que ahora si funcione bien...
07/11/2009
eliosr, experto respondiendo en Microsoft Excel
Experto
Por favor... finaliza y puntua mi respuesta... se me acumulan las preguntas activas, aun estando respondidas....
Si yo cierro tu pregunta, no podrás volver a preguntarme...
07/11/2009
eliosr, usuario preguntando en Microsoft Excel
Usuario
Muy Bien. Me ha sido de gran utilidad
Enlaces patrocinados