Mover rangos de celdas y copiar
Necesito realizar las siguientes tareas
1) Intentar en forma automática en un rango inicial (ej: A1:S1)
2) Ejecutar Macro1 (son 3 procesos for----->next)
3) Copiar los resultados en la hoja 2
4) Intentar en forma automática en el rango siguiente (ej: A2:S2)
5) Ejecutar Macro 1
6)Copiar los resultados en la hoja 2 ( a continuación, sin pisar los datos anteriores)
7) Y así sucesivamente hasta el rango final (también definido por mi)
1 Respuesta

H o l a:
No me queda muy claro que hay que copiar y en dónde hay que pegar.
Tengo las siguientes dudas:
- Cuando dices: "Copiar los resultados en la hoja 2", te refieres a que se tienen que pegar como valores, ¿o a qué resultados te refieres?
- Quieres iniciar la copia desde la fila1, de la A a la S, y terminar en un fila que tú le indiques.
- Cuando dices "Ejecutar Macro1 (son 3 procesos for----->next)", ¿significa qué ya tienes hecha la macro1 y hay que ejecutarla?
Espero tus comentarios en ese orden.
O bien explícame todo lo que necesitas y te preparo la macro completa.

Ok, ahí te explico lo mejor posible:
Yo tengo la siguiente macro:
Sub Macro Ejemplo()
Dim CompareRange As Variant, x As Variant, y As Variant
For i = 2 To 50 (el rango 50 va a ir creciendo de a 1)
Rng = "B" & i & ":U" & i
Set CompareRange = Worksheets("Hoja1").Range(Rng)
For Each x In Selection
For Each y In CompareRange
If x = y Then x.Offset(11 + i, 0) = x
Next
Next
Next i
End Sub
1) En esta macro no se posiciona en forma automática sino manual, yo necesito que se posicione en forma automática en la primer fila (B2:U2) siempre va a ser esta la primera.
2) Los datos que están en esta fila la macro los comparara con las filas (B3:U3) y así sucesivamente hasta la fila (B50:U50) buscando repetición y copia los repetidos.
3) Los repetidos esta macro los copia 11 filas para abajo, yo necesito que me los copie en la hoja 2.
4) Y ahí terminaría la primer comparación, con los repetidos copiados en la hoja 2
Hasta ahí vamos bien, ¿no?
Ahora la Macro tendría que empezar de nuevo el proceso pero debería posicionarme en la B3:U3 como inicio.
El tema es que cuando copie a la hoja 2 no pise los datos anteriores, ya que la macro compara: B2:U2 <------- B3:U3----->B50:U50 los tiene que copiar debajo de lo copiado anteriormente.
Una vez terminada la última comparación (B50:U50) estaría terminada la 2da fila, y así hasta la B50:U50 que compara todo hacia atrás, ya que no tiene filas adelante.
Creo que esta claro, pero cualquier duda preguntame
Dante, espero tu respuesta, no puedo resolverlo sin tu ayuda, Muchas Gracias!

Perdón, omití un solo detalle:
Cuando copia a la hoja 2 no tiene que copiar la fila que se esta comparando, esta macro copia los repetidos y la fila que se esta comparando esa fila no la tiene que copiar:
Ejemplo : Fila 2 : 2,4,6,8,10,12,14,16,18,20 ( Fila a comprar)
Fila 3: 2,3,4,5,6,7,8,9,10,11 (Fila comparada)
Debería copiar los números 2,4,6,10
Perdón, pero es un dato importante.

H o l a:
Para aclarar, debo entender que un duplicado es cuando, por ejemplo, comparo desde B2 hasta U2 contra B3 hasta U3, entonces si B2 = B3, C2 = C3, D2 = D3,... U2 = U3, si las celdas comparadas son iguales, ¿Entonces es un duplicado?

Eso la macro ya lo esta haciendo, es correcto lo que decís:
B2 C2 D2 E2 F2 G2 H2 I2 J2 K2 L2......
B3 C3 D3 E3 F3 G3 H3 I3 J3 K3 L3.......
B2 compara con B3, luego con C3... etc
C2 compara con B3 luego con C3... etc
Si B2= 4 y C3 =4 el 4 es el que hay que copiar.
Si C2=5 y H3 =5 el 5 es el que hay que copiar.
Los números a copiar en la hoja 2 en este caso serian el 4 y el 5

Lo que si acordate que se compara para adelante y para atrás:
B38:U38 <-----------------------B37:U37----------------->B36:U36
B39:U39 <----------------------- ------------------>B35;U35
hasta la B50:U50 <---------- ------------------>hasta la B2:U2
Esto la macro también lo esta haciendo, por lo menos yo lo probé y lo hizo con 10 filas que compare.

Perdona. Sigo sin entender algo.
Ya entendí que si en la celda B2 = 4 tengo que buscar el 4 en las celdas B3 a U3. Si lo encuentro entonces lo copio, pero no entiendo en dónde lo tengo que pegar.
Envíame tu archivo y me explicas con 3 ejemplos lo que tienes, en la hoja2 me pones el resultado que esperas.
Mi correo [email protected]
En el asunto del correo escribe tu nombre de usuario “Diego Carlos Giufre” y el título de esta pregunta.

Ya te lo envie, avisame si aún tenes dudas creo que con esta explicación ya vas a poder armar la macro
Gracias.-

Te anexo la macro
Sub CompararDatos() 'Por.Dante Amor Application.ScreenUpdating = False Set h1 = Sheets("Hoja1") Set h2 = Sheets("Hoja2") h2.Cells.Clear n = 0 For i = 1 To 10 For j = Columns("B").Column To Columns("U").Column Set r = h1.Range("B1:U10") Set b = r.Find(h1.Cells(i, j), lookat:=xlWhole) If Not b Is Nothing Then celda = b.Address Do If b.Row <> i Then h2.Cells(b.Row + n, j) = b.Value End If Set b = r.FindNext(b) Loop While Not b Is Nothing And b.Address <> celda End If Next h2.Rows(i + n).Delete If wcol = 4 Then wcol = 6 Else wcol = 4 h2.Range(h2.Cells(n + 1, "B"), h2.Cells(n + 9, "U")).Interior.ColorIndex = wcol n = n + 9 Next MsgBox "Fin" End Sub
- Compartir respuesta
