Macro para copiar filas según la condición
Estaba buscando la manera de distribuir unas filas en diferentes hojas de un archivo excel según cumpliesen o no unas condiciones. Por ejemplo:
Todas aquellas filas que cumplan "Fila"B=Yes + "Fila"F=No + "Fila"=Corporate, copiarlas en la hoja "Corporate issues" al final de la lista.
Esto se repetiría para 3 condiciones más..
¿Alguna idea?

Lo más rápido sería filtrar la tabla por estas 3 condiciones y luego copiar las celdas filtradas a su nuevo destino.
A continuación podrás eliminar las filas filtradas del original (verifica de tener previamente una copia).
Si necesitas una macro, realiza estos pasos con la grabadora de macros encendida, al finalizar y detenerla encontrarás en un módulo del Editor el código generado (entras presionando juntas las teclas Alt y F11). Y nos lo tienes que escribir aquí para ajustarlo.
Sdos y no olvides valorar la respuesta si el tema queda resuelto.

Sub aConunpocodeazucarSanti()
'
' aConunpocodeazucarSanti Macro
' Ordena como Mary Poppins
'
'
Rows("2:2").Select
Selection.AutoFilter
ActiveSheet.Range("$A$2:$BB$355").AutoFilter Field:=4, Criteria1:="=EUR", _
Operator:=xlOr, Criteria2:="=GBP"
ActiveSheet.Range("$A$2:$BB$355").AutoFilter Field:=5, Criteria1:=">=500", _
Operator:=xlAnd
ActiveWindow.SmallScroll ToRight:=12
ActiveSheet.Range("$A$2:$BB$355").AutoFilter Field:=24, Criteria1:= _
"Corporate"
ActiveSheet.Range("$A$2:$BB$355").AutoFilter Field:=18
ActiveSheet.Range("$A$2:$BB$355").AutoFilter Field:=17
ActiveWindow.SmallScroll ToRight:=-12
Range("C11").Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Copy
Sheets("Corporate issues").Select
Range("B1106").Select
ActiveSheet.Paste
Sheets("COPIAR_BR").Select
Range("B11").Select
Range(Selection, Selection.End(xlDown)).Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Corporate issues").Select
Range("B1106").Select
ActiveSheet.Paste
Sheets("COPIAR_BR").Select
Range("C11").Select
Range(Selection, Selection.End(xlDown)).Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Corporate issues").Select
Range("A1106").Select
ActiveSheet.Paste
Sheets("COPIAR_BR").Select
Range("H11").Select
Range(Selection, Selection.End(xlDown)).Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Corporate issues").Select
Range("C1106").Select
ActiveSheet.Paste
Sheets("COPIAR_BR").Select
Range("D11").Select
Range(Selection, Selection.End(xlDown)).Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Corporate issues").Select
Range("D1106").Select
ActiveSheet.Paste
Sheets("COPIAR_BR").Select
Range("A11").Select
Range(Selection, Selection.End(xlDown)).Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Corporate issues").Select
Range("E1106").Select
ActiveSheet.Paste
Sheets("COPIAR_BR").Select
Range("I11").Select
Range(Selection, Selection.End(xlDown)).Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Corporate issues").Select
Range("F1106").Select
ActiveSheet.Paste
Sheets("COPIAR_BR").Select
Range("E11").Select
Range(Selection, Selection.End(xlDown)).Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Corporate issues").Select
Range("G1106").Select
ActiveSheet.Paste
Sheets("COPIAR_BR").Select
Range("M11:N11").Select
Range(Selection, Selection.End(xlDown)).Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Corporate issues").Select
Range("H1106").Select
ActiveSheet.Paste
Sheets("COPIAR_BR").Select
Range("K11").Select
Range(Selection, Selection.End(xlDown)).Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Corporate issues").Select
Range("J1106").Select
ActiveSheet.Paste
ActiveWindow.SmallScroll Down:=6
Sheets("COPIAR_BR").Select
Range("E358").Select
ActiveWindow.SmallScroll ToRight:=16
ActiveSheet.Range("$A$2:$BB$355").AutoFilter Field:=24, Criteria1:= _
"Financial"
ActiveSheet.Range("$A$2:$BB$355").AutoFilter Field:=17, Criteria1:="No"
ActiveSheet.Range("$A$2:$BB$355").AutoFilter Field:=18, Criteria1:="No"
ActiveWindow.SmallScroll ToRight:=-16
Range("C23").Select
Range(Selection, Selection.End(xlDown)).Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Senior issues").Select
ActiveWindow.SmallScroll Down:=-9
Range("A522").Select
ActiveSheet.Paste
Sheets("COPIAR_BR").Select
Range("B23").Select
Range(Selection, Selection.End(xlDown)).Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Senior issues").Select
Range("B522").Select
ActiveSheet.Paste
Sheets("COPIAR_BR").Select
Range("H23").Select
Range(Selection, Selection.End(xlDown)).Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Senior issues").Select
Range("C522").Select
ActiveSheet.Paste
Sheets("COPIAR_BR").Select
Range("D23").Select
Range(Selection, Selection.End(xlDown)).Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Senior issues").Select
Range("D522").Select
ActiveSheet.Paste
Sheets("COPIAR_BR").Select
Range("A23").Select
Range(Selection, Selection.End(xlDown)).Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Senior issues").Select
Range("E522").Select
ActiveSheet.Paste
Sheets("COPIAR_BR").Select
Range("I23").Select
Range(Selection, Selection.End(xlDown)).Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Senior issues").Select
Range("F522").Select
ActiveSheet.Paste
Sheets("COPIAR_BR").Select
Range("E23").Select
Range(Selection, Selection.End(xlDown)).Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Senior issues").Select
Range("G522").Select
ActiveSheet.Paste
Sheets("COPIAR_BR").Select
Range("M23:N23").Select
Range(Selection, Selection.End(xlDown)).Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Senior issues").Select
Range("H522").Select
ActiveSheet.Paste
Sheets("COPIAR_BR").Select
Range("K23").Select
Range(Selection, Selection.End(xlDown)).Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Senior issues").Select
Range("J522").Select
ActiveSheet.Paste
Sheets("COPIAR_BR").Select
ActiveSheet.Range("$A$2:$BB$355").AutoFilter Field:=17, Criteria1:="No"
ActiveSheet.Range("$A$2:$BB$355").AutoFilter Field:=18, Criteria1:="Yes"
Range("C15").Select
Range(Selection, Selection.End(xlDown)).Select
Application.CutCopyMode = False
Selection.Copy
Sheets("CB issues").Select
Range("A434").Select
ActiveSheet.Paste
Sheets("COPIAR_BR").Select
Range("B15").Select
Range(Selection, Selection.End(xlDown)).Select
Application.CutCopyMode = False
Selection.Copy
Sheets("CB issues").Select
Range("B434").Select
ActiveSheet.Paste
Sheets("COPIAR_BR").Select
ActiveWindow.SmallScroll ToRight:=0
Range("D15").Select
Range(Selection, Selection.End(xlDown)).Select
Application.CutCopyMode = False
Selection.Copy
Sheets("CB issues").Select
Range("C434").Select
Range("D434").Select
ActiveSheet.Paste
Sheets("COPIAR_BR").Select
Range("E15").Select
Sheets("COPIAR_BR").Select
Range("H15").Select
Range(Selection, Selection.End(xlDown)).Select
Application.CutCopyMode = False
Selection.Copy
Sheets("CB issues").Select
Range("C434").Select
ActiveSheet.Paste
Sheets("COPIAR_BR").Select
Range("A15").Select
Range(Selection, Selection.End(xlDown)).Select
Application.CutCopyMode = False
Selection.Copy
Sheets("CB issues").Select
Range("E434").Select
ActiveSheet.Paste
Sheets("COPIAR_BR").Select
Range("I15").Select
Range(Selection, Selection.End(xlDown)).Select
Application.CutCopyMode = False
Selection.Copy
Sheets("CB issues").Select
Range("F434").Select
ActiveSheet.Paste
Sheets("COPIAR_BR").Select
Range("E15").Select
Range(Selection, Selection.End(xlDown)).Select
Application.CutCopyMode = False
Selection.Copy
Sheets("CB issues").Select
Range("G434").Select
ActiveSheet.Paste
Sheets("COPIAR_BR").Select
Range("M15:N15").Select
Range(Selection, Selection.End(xlDown)).Select
Application.CutCopyMode = False
Selection.Copy
Sheets("CB issues").Select
Range("H434").Select
ActiveSheet.Paste
Sheets("COPIAR_BR").Select
Range("K15").Select
Range(Selection, Selection.End(xlDown)).Select
Application.CutCopyMode = False
Selection.Copy
Sheets("CB issues").Select
Range("J434").Select
ActiveSheet.Paste
Sheets("COPIAR_BR").Select
ActiveWindow.SmallScroll ToRight:=10
ActiveSheet.Range("$A$2:$BB$355").AutoFilter Field:=18
ActiveSheet.Range("$A$2:$BB$355").AutoFilter Field:=17
ActiveSheet.Range("$A$2:$BB$355").AutoFilter Field:=24, Criteria1:=Array( _
"Agency", "Muni/Local Gov't", "Sovereign", "Supra"), Operator:=xlFilterValues
ActiveSheet.Range("$A$2:$BB$355").AutoFilter Field:=17
ActiveSheet.Range("$A$2:$BB$355").AutoFilter Field:=18
ActiveWindow.SmallScroll ToRight:=-10
Range("C14").Select
Range(Selection, Selection.End(xlDown)).Select
Application.CutCopyMode = False
Selection.Copy
Sheets("SSAs").Select
Range("A619").Select
ActiveSheet.Paste
Sheets("COPIAR_BR").Select
Range("B14").Select
Range(Selection, Selection.End(xlDown)).Select
Application.CutCopyMode = False
Selection.Copy
Sheets("SSAs").Select
Range("B619").Select
ActiveSheet.Paste
Sheets("COPIAR_BR").Select
Range("H14").Select
Range(Selection, Selection.End(xlDown)).Select
Application.CutCopyMode = False
Selection.Copy
Sheets("SSAs").Select
Range("C619").Select
ActiveSheet.Paste
Sheets("COPIAR_BR").Select
Range("D14").Select
Range(Selection, Selection.End(xlDown)).Select
Application.CutCopyMode = False
Selection.Copy
Sheets("SSAs").Select
Range("D619").Select
ActiveSheet.Paste
Sheets("COPIAR_BR").Select
Range("A14").Select
Range(Selection, Selection.End(xlDown)).Select
Application.CutCopyMode = False
Selection.Copy
Sheets("SSAs").Select
Range("E619").Select
ActiveSheet.Paste
Sheets("COPIAR_BR").Select
Range("I14").Select
Range(Selection, Selection.End(xlDown)).Select
Application.CutCopyMode = False
Selection.Copy
Sheets("SSAs").Select
Range("F619").Select
ActiveSheet.Paste
Sheets("COPIAR_BR").Select
Range("E14").Select
Range(Selection, Selection.End(xlDown)).Select
Application.CutCopyMode = False
Selection.Copy
Sheets("SSAs").Select
Range("G619").Select
ActiveSheet.Paste
Sheets("COPIAR_BR").Select
Range("M14:N14").Select
Range(Selection, Selection.End(xlDown)).Select
Application.CutCopyMode = False
Selection.Copy
Sheets("SSAs").Select
Range("H619").Select
ActiveSheet.Paste
Sheets("COPIAR_BR").Select
Range("K14").Select
Range(Selection, Selection.End(xlDown)).Select
Application.CutCopyMode = False
Selection.Copy
Sheets("SSAs").Select
Range("J619").Select
ActiveSheet.Paste
ActiveWindow.SmallScroll Down:=18
Sheets("COPIAR_BR").Select
ActiveWindow.SmallScroll Down:=-18
Range("A369").Select
Application.CutCopyMode = False
ActiveCell.FormulaR1C1 = "F"
Range("B369").Select
ActiveCell.FormulaR1C1 = "I"
Range("C369").Select
ActiveCell.FormulaR1C1 = "N"
Range("A369:C369").Select
With Selection
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlBottom
.WrapText = False
.Orientation = 0
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.ReadingOrder = xlContext
.MergeCells = False
End With
With Selection.Interior
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
.Color = 65535
.TintAndShade = 0
.PatternTintAndShade = 0
End With
With Selection.Font
.Color = -16776961
.TintAndShade = 0
End With
Range("E371").Select
End Sub

Hice lo que me comentaste Elsa Matilde, lo que me ha salido un poco larga.. El problema que yo le veo es que cuando se vayan a copiar en cada una en su pestaña cada semana no se va a sumar a las ya existentes sino que borrará los que se encuentren en esas coordenadas, ¿habría alguna manera para que se copien en la primera fila en blanco?

Disculpa la demora... si aún no lo tenés resuelto aquí va la macro algo más corta.
Lo importante es que antes de pasar las col filtradas guardes en una variable la primer fila destino, y luego no es necesario ir a la hoja a pegarla (salvo que necesites un pegado especial).
Aquí van los ajustes para la 1er hoja, el resto es seguir el ejemplo.
¿Atención qué encontré que envias 2 col al mismo destino?
Sub aConunpocodeazucarSanti() ' ' aConunpocodeazucarSanti Macro ' Ordena como Mary Poppins ' ' Rows("2:2").Select Selection.AutoFilter ActiveSheet.Range("$A$2:$BB$355").AutoFilter Field:=4, Criteria1:="=EUR", _ Operator:=xlOr, Criteria2:="=GBP" ActiveSheet.Range("$A$2:$BB$355").AutoFilter Field:=5, Criteria1:=">=500", _ Operator:=xlAnd ActiveWindow.SmallScroll ToRight:=12 ActiveSheet.Range("$A$2:$BB$355").AutoFilter Field:=24, Criteria1:= _ "Corporate" ActiveSheet.Range("$A$2:$BB$355").AutoFilter Field:=18 ActiveSheet.Range("$A$2:$BB$355").AutoFilter Field:=17 'ActiveWindow.SmallScroll ToRight:=-12 filx = Sheets("Corporate issues").Range("B" & Rows.Count).End(xlUp).Row + 1 'ATENCIÓN.... CONTROLAR COL ORIGEN Y DESTINO Range("C11").Select Range(Selection, Selection.End(xlDown)).Copy Destination:=Sheets("Corporate issues").Range("B" & filx) Range("B11").Select Range(Selection, Selection.End(xlDown)).Copy Destination:=Sheets("Corporate issues").Range("B" & filx) Range("C11").Select Range(Selection, Selection.End(xlDown)).Copy Destination:=Sheets("Corporate issues").Range("A" & filx) Range("H11").Select Range(Selection, Selection.End(xlDown)).Copy Destination:=Sheets("Corporate issues").Range("C" & filx) Range("D11").Select Range(Selection, Selection.End(xlDown)).Copy Destination:=Sheets("Corporate issues").Range("D" & filx) Range("A11").Select Range(Selection, Selection.End(xlDown)).Copy Destination:=Sheets("Corporate issues").Range("E" & filx) Range("I11").Select Range(Selection, Selection.End(xlDown)).Copy Destination:=Sheets("Corporate issues").Range("F" & filx) Range("E11").Select Range(Selection, Selection.End(xlDown)).Copy Destination:=Sheets("Corporate issues").Range("G" & filx) Range("M11:N11").Select Range(Selection, Selection.End(xlDown)).Copy Destination:=Sheets("Corporate issues").Range("H" & filx) Range("K11").Select Range(Selection, Selection.End(xlDown)).Copy Destination:=Sheets("Corporate issues").Range("J" & filx) 'ActiveWindow.SmallScroll Down:=6 Sheets("COPIAR_BR").Select Range("E358").Select 'ActiveWindow.SmallScroll ToRight:=16 ActiveSheet.Range("$A$2:$BB$355").AutoFilter Field:=24, Criteria1:= _ "Financial" ActiveSheet.Range("$A$2:$BB$355").AutoFilter Field:=17, Criteria1:="No" ActiveSheet.Range("$A$2:$BB$355").AutoFilter Field:=18, Criteria1:="No" 'ActiveWindow.SmallScroll ToRight:=-16 'BUSCAR filx para la 2da hoja y repetir instrucciones según col origen/destino 'revisar en qué hoja se está antes del tema formatos Range("A369:C369").Select With Selection .HorizontalAlignment = xlCenter .VerticalAlignment = xlBottom .WrapText = False .Orientation = 0 .AddIndent = False .IndentLevel = 0 .ShrinkToFit = False .ReadingOrder = xlContext .MergeCells = False End With With Selection.Interior .Pattern = xlSolid .PatternColorIndex = xlAutomatic .Color = 65535 .TintAndShade = 0 .PatternTintAndShade = 0 End With With Selection.Font .Color = -16776961 .TintAndShade = 0 End With Range("E371").Select End Sub
Antes de las instrucciones de formato asegurate en que hoja estás (supuestamente en la de origen) y debes seleccionar previamente la hoja destino, por ej:
sheets("SSaS").select
Arma la macro completa, probala y si surge algun error enviame la linea marcada de la falla.
Sdos.
Elsa
- Compartir respuesta
