copiar en un libro y pegar en varios

Solo consultas sobre macros y código VBA Excel.

Reglas del Foro
1. Antes de hacer tu pregunta intenta con el buscador de este foro (muchas preguntas ya fueron respondidas antes!)
2. Si haces una nueva pregunta, es muy recomendable que adjuntes el ejemplo Excel para poder comprenderla mejor!
3. Realiza tu pregunta de forma clara, explicando bien cada paso de lo que haces y tendrás más probabilidad de respuesta!
Compartir en:
     

copiar en un libro y pegar en varios

Notapor pitito » 25 Jun 2006 13:26

hola,

con este código recorro los libros de una determinada carpeta, lo que necesito es completarlo de forma que me abra los libros y copie un determinado rango y lo pegue en el libro actual. Lo que me falla es el bucle por los libros y proceso último bloque de instrucciones.

Sub ProcesarArchivos()
Dim Archivos() As String, Ruta As String
Dim ArchivoEncontrado As String
Dim FileCount As Integer, i As Integer

' Aqui la ruta de la carpeta donde estan los archivos a procesar
Ruta = "C:\prueba"

'Cambio el directorio actual al que contiene los archivos a procesar
' ChDir Ruta

Dir Ruta

'comienzo a buscar los files en esa ruta
ArchivoEncontrado = Dir("")
FileCount = 1
ReDim Preserve Archivos(FileCount)

'guardo el archivo encontrado en un vector
Archivos(FileCount) = ArchivoEncontrado

'busco el resto de los archivos y los sigo guardando en el vector
Do While ArchivoEncontrado <> ""
ArchivoEncontrado = Dir()
If ArchivoEncontrado <> "" Then
If Right(ArchivoEncontrado, 3) = "xls" Then
FileCount = FileCount + 1
ReDim Preserve Archivos(FileCount)
Archivos(FileCount) = ArchivoEncontrado
End If
End If
Loop

' Bucle por los librosy proceso
For i = 1 To FileCount
Workbooks.Open Filename:=Archivos(i), ReadOnly:=True
Worksheets(1).Activate
Range("C17:D46").Copy

Range("G8").Select
ActiveSheet.Paste



Next i

End Sub
* Te recomendamos estos productos Excel: Manual de Macros | Manual de Funciones | Nuevas Funciones | ddTraDa
Avatar de Usuario
pitito
Miembro Frecuente
Miembro Frecuente
 
Registrado: 23 Jun 2005 10:18

Re: copiar en un libro y pegar en varios

Notapor pitito » 27 Jun 2006 14:21

up
* Te recomendamos estos productos Excel: Manual de Macros | Manual de Funciones | Nuevas Funciones | ddTraDa
Avatar de Usuario
pitito
Miembro Frecuente
Miembro Frecuente
 
Registrado: 23 Jun 2005 10:18

Notapor opermty » 28 Jun 2006 00:14

Por que no mejor anexas un archivo con lo que deseas :)
saludos
* Te recomendamos estos productos Excel: Manual de Macros | Manual de Funciones | Nuevas Funciones | ddTraDa
Avatar de Usuario
opermty
Miembro Frecuente
Miembro Frecuente
 
Registrado: 29 Abr 2006 04:11
Ubicación: MONTERREY NL MX

Notapor opermty » 28 Jun 2006 00:25

A proposito tiene preferencia por alguna solucion en especial ?
* Te recomendamos estos productos Excel: Manual de Macros | Manual de Funciones | Nuevas Funciones | ddTraDa
Avatar de Usuario
opermty
Miembro Frecuente
Miembro Frecuente
 
Registrado: 29 Abr 2006 04:11
Ubicación: MONTERREY NL MX

Re: copiar en un libro y pegar en varios

Notapor pitito » 28 Jun 2006 16:38

hola,


El código me falla en el bucle que procesa los libros. esta mal.
* Te recomendamos estos productos Excel: Manual de Macros | Manual de Funciones | Nuevas Funciones | ddTraDa
Avatar de Usuario
pitito
Miembro Frecuente
Miembro Frecuente
 
Registrado: 23 Jun 2005 10:18

Re: copiar en un libro y pegar en varios

Notapor opermty » 28 Jun 2006 20:55

Posiblemente sea por que no haces referencia al rango que deseas copiar (libro origen) a la hoja destino :)
Igualmente te funcionaria mejor si los cierras y no los dejas activos
saludos
* Te recomendamos estos productos Excel: Manual de Macros | Manual de Funciones | Nuevas Funciones | ddTraDa
Avatar de Usuario
opermty
Miembro Frecuente
Miembro Frecuente
 
Registrado: 29 Abr 2006 04:11
Ubicación: MONTERREY NL MX

Re: copiar en un libro y pegar en varios

Notapor pitito » 29 Jun 2006 15:40

hola opermty,

me falla esta lí­nea:

Workbooks.Open Filename:=Archivos(i), ReadOnly:=True
* Te recomendamos estos productos Excel: Manual de Macros | Manual de Funciones | Nuevas Funciones | ddTraDa
Avatar de Usuario
pitito
Miembro Frecuente
Miembro Frecuente
 
Registrado: 23 Jun 2005 10:18

Re: copiar en un libro y pegar en varios

Notapor pitito » 29 Jun 2006 15:44

hola,

subo el archivo para más comodidad.
* Te recomendamos estos productos Excel: Manual de Macros | Manual de Funciones | Nuevas Funciones | ddTraDa
Avatar de Usuario
pitito
Miembro Frecuente
Miembro Frecuente
 
Registrado: 23 Jun 2005 10:18

Notapor opermty » 29 Jun 2006 20:56

Cual es el error que te marca ?
* Te recomendamos estos productos Excel: Manual de Macros | Manual de Funciones | Nuevas Funciones | ddTraDa
Avatar de Usuario
opermty
Miembro Frecuente
Miembro Frecuente
 
Registrado: 29 Abr 2006 04:11
Ubicación: MONTERREY NL MX

Re: copiar en un libro y pegar en varios

Notapor pitito » 30 Jun 2006 08:03

Hola,

No marca un error concreto simplemente me lo marca en amarillo al depurar
* Te recomendamos estos productos Excel: Manual de Macros | Manual de Funciones | Nuevas Funciones | ddTraDa
Avatar de Usuario
pitito
Miembro Frecuente
Miembro Frecuente
 
Registrado: 23 Jun 2005 10:18

Re: copiar en un libro y pegar en varios

Notapor opermty » 08 Jul 2006 06:52

Hola,

Sorry por la tardanza, el problema que te marca sin razon aparente es por que windows al abrir la aplicacion "excel" maneja sus propios handles de ventana y si lo abres desde excel este mismo los controla de forma similar pero con otro puntero por mencionarlo de alguna manera, un ejemplo:

excel seria:
application.window(?) --- Para lo cual lo puedes asignar desde tu misma aplicacion a abrir o iniciar tu codigo de la siguiente manera:

application.windows(1).caption = thisworkbook.name

como manejarias este evento :)

application.onwindow(1) "tu accion" algo semejante lo escribo de memoria

y windows los controla de forma externa a la aplicacion excel, por eso no es posible al menos de esta manera abrirlos como lo deseas.

seria mucho mas sencillo pasar tus libros a una BD y desde alli pasarlos o totalizarlos en uno nuevo.

Saludos
* Te recomendamos estos productos Excel: Manual de Macros | Manual de Funciones | Nuevas Funciones | ddTraDa
Avatar de Usuario
opermty
Miembro Frecuente
Miembro Frecuente
 
Registrado: 29 Abr 2006 04:11
Ubicación: MONTERREY NL MX

Re: copiar en un libro y pegar en varios

Notapor opermty » 08 Jul 2006 06:58

Revisa estos dos links ya que me parece que seria la forma mas correcta de realizar la copia que necesitas

Cómo transferir datos a Excel con ADO desde Origen de datos de ADO
http://support.microsoft.com/kb/295646/es

Cómo transferir datos a Excel con automatización desde un Recordset de ADO
http://support.microsoft.com/kb/246335/es
* Te recomendamos estos productos Excel: Manual de Macros | Manual de Funciones | Nuevas Funciones | ddTraDa
Avatar de Usuario
opermty
Miembro Frecuente
Miembro Frecuente
 
Registrado: 29 Abr 2006 04:11
Ubicación: MONTERREY NL MX

Notapor opermty » 08 Jul 2006 07:03

Métodos para transferir datos a Excel desde Visual Basic
http://support.microsoft.com/kb/247412/es
* Te recomendamos estos productos Excel: Manual de Macros | Manual de Funciones | Nuevas Funciones | ddTraDa
Avatar de Usuario
opermty
Miembro Frecuente
Miembro Frecuente
 
Registrado: 29 Abr 2006 04:11
Ubicación: MONTERREY NL MX

Notapor opermty » 12 Jul 2006 08:05

Hola sorry se me acaba de ocurrir mientras contestaba otra exposicion y recorde que se aplica igualmente a la tuya

Sub Abrirporfecha()
Dim dia, mes, año, sruta, oBook
dia = Mid(Date, 1, 2): mes = Mid(Date, 4, 2): año = Mid(Date, 9, 4)
sruta = ThisWorkbook.Path: oBook = "ventas" + dia + mes + año + ".xls"
ChDir sruta
If Dir(oBook) = "" Then MsgBox "archivo no existe": Exit Sub
Workbooks.Open oBook
Workbooks(oBook).Sheets("ventas").Select
Range("a1", "a10").Select
Selection.Copy
mio = ThisWorkbook.Name
Workbooks(mio).Activate
Sheets(1).Select
Range("A1").Select
ActiveSheet.Paste
Application.CutCopyMode = False
Workbooks(oBook).Activate
Sheets("compras").Select
Range("b5", "b11").Select
Selection.Copy
ActiveWorkbook.Close
Workbooks(mio).Activate
Sheets(1).Select
Range("b5").Select
ActiveSheet.Paste
End Sub

El error se encontraba en que no activaste el libro de referencia como se muestra en el codigo que anexo.

Saludos
* Te recomendamos estos productos Excel: Manual de Macros | Manual de Funciones | Nuevas Funciones | ddTraDa
Avatar de Usuario
opermty
Miembro Frecuente
Miembro Frecuente
 
Registrado: 29 Abr 2006 04:11
Ubicación: MONTERREY NL MX


Compartir en:
     

  • Anuncio
Manual Excel avanzado

Volver a Macros

¿Quién está conectado?

Usuarios navegando por este Foro: Google [Bot] y 4 invitados