Ayuda con macro

09/07/2004 - 18:49 por Marcelo | Informe spam
Hola:

Estoy intentando hacer una macro para poder resumir una
tarea.
Lo que busco es que me copie en una hoja ciertos datos.
Digamos: En una hoja tengo un listado con varias colomnas
y filas. Lo que quiero es que si el valor de la columna B
de una hoja, es igual al valor de cirta celda de otra hoja
me vaya copiando los datos de las filas de al lado de una
hoja a la otra.
Comencé a hacer algo pero me termina copiando los valores
de todas las filas y no los que quiero que copie que son
los que coincidan con la condición.
Les copio la macro para que vean donde puede estar el
error.

Muchas gracias desde ya por cualquier ayuda.

Saludos,

Marcelo


Sub cancelar_AT()

Dim Fila As Integer
For Fila = 2 To 20000
If (Worksheets("Descargas").Range("B" & Fila)) =
(Worksheets("Cancelación").Range("DP2")) Then Exit For

Sheets("Descargas").Select
Range("C" & Fila).Select
Selection.Copy
Sheets("Cancelación").Select
Range("C65536").End(xlUp).Offset(1, 0).Select
ActiveSheet.Paste

Sheets("Descargas").Select
Range("D" & Fila).Select
Selection.Copy
Sheets("Cancelación").Select
Range("D65536").End(xlUp).Offset(1, 0).Select
ActiveSheet.Paste

Next

End Sub
 

Leer las respuestas

#1 Bocha
10/07/2004 - 23:30 | Informe spam
Hola:

Lo pude solucionar modificando el código com aparece debajo.
Ahora me surge otra duda.
Luego que la macro comprueba si hay valores en las celdas y si conciden con
la celda AD12, va copiando los datos.
En el macro que copié luego va copiando otras celdas de otras columnas.
El problema es que de la forma que lo hice domora un poco en completarse.
Tal vez exista otra forma de realizar lo que quiero que sea más rápida.
Se me ocurre que si la macro no tuviera que ir hasta el final del libro y
luego subir sería más ágil.
¿Cómo puedo hacer esto si sé la celda dode hay que copiar el primer valor
(c21)?.

Agradezco su ayuda.

Saludos,

Marcelo


Dim Fila As Integer
For Fila = 2 To 20000
If Application.Sum(Worksheets("Descargas").Range("B" & Fila)) = 0 Then
Exit For
If Not Application.Sum(Worksheets("Descargas").Range("B" & Fila)) <>
(Worksheets("Cancelación").Range("AD12")) Then


Sheets("Descargas").Select
Range("C" & Fila).Select
Selection.Copy
Sheets("Cancelación").Select
Range("C65536").End(xlUp).Offset(1, 0).Select
ActiveSheet.Paste

"Marcelo" escribió en el mensaje
news:2a0c601c465d4$b061fb60$
Hola:

Estoy intentando hacer una macro para poder resumir una
tarea.
Lo que busco es que me copie en una hoja ciertos datos.
Digamos: En una hoja tengo un listado con varias colomnas
y filas. Lo que quiero es que si el valor de la columna B
de una hoja, es igual al valor de cirta celda de otra hoja
me vaya copiando los datos de las filas de al lado de una
hoja a la otra.
Comencé a hacer algo pero me termina copiando los valores
de todas las filas y no los que quiero que copie que son
los que coincidan con la condición.
Les copio la macro para que vean donde puede estar el
error.

Muchas gracias desde ya por cualquier ayuda.

Saludos,

Marcelo


Sub cancelar_AT()

Dim Fila As Integer
For Fila = 2 To 20000
If (Worksheets("Descargas").Range("B" & Fila)) (Worksheets("Cancelación").Range("DP2")) Then Exit For

Sheets("Descargas").Select
Range("C" & Fila).Select
Selection.Copy
Sheets("Cancelación").Select
Range("C65536").End(xlUp).Offset(1, 0).Select
ActiveSheet.Paste

Sheets("Descargas").Select
Range("D" & Fila).Select
Selection.Copy
Sheets("Cancelación").Select
Range("D65536").End(xlUp).Offset(1, 0).Select
ActiveSheet.Paste

Next

End Sub

Preguntas similares