Macros excel, Experto ayudame por favor

Hola amigo experto y me gustaría que me ayudaras por favor a perfeccionar una macro que tengo en mente y no he podido concretar por que no conozco muy bien la sintaxis de las macros...
Tengo 30 libros excel nombrados manualmente por mi. 010109, 020109, 030109, etc. (en cualquier momento puedo renombrarlos si es necesario) necesito copiar la hoja y pegarlo en un libro llamado Ene09...
Mi idea es crear una macro con bucle para ejecutar esta acción y así copiar todos los archivos uno por uno pero en automático.
sub copiar_pegar()
dim nombre as string 
nombre=inputbox("escribe el nombre del libro")
'aqui escribiria el nombre del libro 010109
workbooks.open
activesheets.select.copy
workbooks.open("Ene09").activate
sheets.paste
workbooks.close.("libro")'se cerraria el libro y 
'repetir la accion en orden ascendente, continuaria 020109 hasta terminar 310109
end sub
por supesto que esta macro esta muy mal elaborada, tengo varias macros que he grabado y que son muy sencillas, pero la verdad me han ayudado mucho en mi trabajo
por fa ayudame a corregirla y complementarla amigo...
Saludos...

1 respuesta

Respuesta
1
En estos momentos no podre ayudarte, ya que estoy de viaje, pero para pasado mañana veré sobre la solución de tu problema, por favor disculpa que no pueda ayudarte en estos momentos.
Gracias por responderme...
Sin compromiso en cuanto puedas contestar...
Feliz viaje...
Estoy solucionando tu problema, quisiera que me digas si las hojas contenidas en los 30 libros, tienen algún nombre en especial, o simplemente son nombradas "Hoja1"
Ya que me parece que la solución a tu problema esta hecho, solo necesito saber si las hojas contenidas en los 30 libros tienen por nombre Hoja1 o llevan el nombre del libro.
Si fuera la primera opción, la solución a tu problema sería el siguiente código implementado en una macro.
....................................................http://alexcastaneda.blogspot.com.....................................
Sub copiando()
'
' copiando Macro
'
' Acceso directo: CTRL+w
'
Dim nombre As String
Dim ubicacion As String
Dim mes As String
Dim anio As String
Dim Cant_dias_mes As Integer
'VALORES INICIALES
mes = "01"
Cant_dias_mes = 4 'este dato indicara cuantos libros existen en la carpeta.
anio = "09"
'...................
For n = 1 To Cant_dias_mes
If n < 10 Then
ubicacion = "D:\EJEMPLOS\0" + Trim(Str(n)) + mes + anio + ".xlsx"
nombre = "0" + Trim(Str(n)) + mes + anio
Else
ubicacion = "D:\EJEMPLOS\" + Trim(Str(n)) + mes + anio + ".xlsx"
nombre = Trim(Str(n)) + mes + anio
End If
Workbooks.Open Filename:=ubicacion
Application.ScreenUpdating = False
Workbooks(nombre).Worksheets("Hoja1").Copy _
AFTER:=ThisWorkbook.Worksheets(ThisWorkbook.Worksheets.Count)
Application.CutCopyMode = False
Workbooks(nombre).Close True
Next
End Sub
....................................................http://alexcastaneda.blogspot.com.....................................
http://alexcastaneda.blogspot.com
Hola amigo experto, mañana la pruebo con los archivos originales de mi trabajo y te comento...
La prove en mi maquina y me marco error en la siguiente
Workbooks.Open Filename:=ubicacion
la checo bien y te aviso por lo pronto te agradesco mucho la contestacion...
Seguimos en contacto...
Mañana en la tarde te contesto...
esta bien, sin embargo si el error es en la linea "Workbooks.Open Filename:=ubicacion" significa que la ruta esta mal.
Ten en cuenta de que yo he guardado los archivo en D:\EJEMPLOS\ y por eso la siguiente linea esta escrita así.
ubicacion = "D:\EJEMPLOS\0" + Trim(Str(n)) + mes + anio + ".xlsx"
En cambio si tu tienes los archivos en el disco C:\ y en una carpeta llamada "proyecto" tendrías que cambiarlo para que te quede así:
ubicacion = "C:\proyecto\0" + Trim(Str(n)) + mes + anio + ".xlsx"
Bueno espero y todo vaya bien, caso contrario me avisas y también te ayudo en la implementación.
Oye amigo, no se realmente por que no pude ejecutar la macro, me marca error,
y parte del mensaje si me dice que no puede abrir la ruta y la ruta que me muestra en el mensaje es la correcta
Lo que me indicas, ya lo había considerado...
Habría manera que que crees un par de archivos y corras la macro para probarla, luego si no es mucha molestia podrías subir la macro...
Lo que pasa es que intente subir el archivo y no encontré la opción de subir...
Saludos y gracias...
Aquí te envío una carpeta comprimida, todo descomprime en el disco D:\ y ejecutas el archivo "copiarhojasdemuchoslibrosaunlibro.xlsm" luego para ejecutar la macro, simplemente presionas CTRL + W
Disculpa se me olvido colocar el link del archivo. http://www.megaupload.com/?d=B72KIDDA

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas