Ayuda con este codigo VBA por un loop o bucle?

Por favor si alguien pudiera ayudarme, tengo el siguiente codigo que copia y pega unas celdas que contienen unas formulas desde la fila 13 hasta la ultima fila, de a una columna x vez,. Esta realizado de esta manera, de a una columna x vez, porque al hacerlo de varias columnas da el error de pegado seleccion demasiado grande. Quisiera remplazar este codigo por alguno que utilize un loop o bucle para que vaya haciendolo fila por fila desde la columna u hasta la BF (ya que supongo que de esta manera no daria el error de pegado)
como veran el codigo es muy repetitivo, pero deberia escribirlo como 30 veceas para que lo haga en acda columna, la idea es abreviarlo si se puede,
Sub ESTIRAR_MOV_DE_CLIENTES()
Sheets("MOV DE CLIENTES").Select
ult = Range("a65536").End(xlUp).Row
Range("BF13:BG13").Select
Selection.Copy
' EL 14 ES LA FILA EN DONDE PEGA HASTA LA ULTIMA Y EL 58 SERIA BF
Range(Cells(14, 58), Cells(ult, 59)).Select
ActiveSheet.Paste
Application.CutCopyMode = False
Selection.End(xlDown).Select
'EL 57 SERIA BE
Range("BE13").Select
Selection.Copy
Range(Cells(14, 57), Cells(ult, 57)).Select
ActiveSheet.Paste
Application.CutCopyMode = False
'EL 56 SERIA BD
Range("BD13").Select
Selection.Copy
Range(Cells(14, 56), Cells(ult, 56)).Select
ActiveSheet.Paste
Application.CutCopyMode = False
'EL 55 SERIA BC
Range("BC13").Select
Selection.Copy
Range(Cells(14, 55), Cells(ult, 55)).Select
ActiveSheet.Paste
Application.CutCopyMode = False
'EL 54 SERIA BB
Range("BB13").Select
Selection.Copy
Range(Cells(14, 54), Cells(ult, 54)).Select
ActiveSheet.Paste
Application.CutCopyMode = False
'EL 53 SERIA BA
Range("BA13").Select
Selection.Copy
Range(Cells(14, 53), Cells(ult, 53)).Select
ActiveSheet.Paste
Application.CutCopyMode = False
'EL 52 SERIA AZ
Range("AZ13").Select
Selection.Copy
Range(Cells(14, 52), Cells(ult, 52)).Select
ActiveSheet.Paste
Application.CutCopyMode = False
'EL 51 SERIA AY
Range("AY13").Select
Selection.Copy
Range(Cells(14, 51), Cells(ult, 51)).Select
ActiveSheet.Paste
Application.CutCopyMode = False
'EL 50 SERIA AX
Range("AX13").Select
Selection.Copy
Range(Cells(14, 50), Cells(ult, 50)).Select
ActiveSheet.Paste
Application.CutCopyMode = False
'EL 49 SERIA AW
Range("AW13").Select
Selection.Copy
Range(Cells(14, 49), Cells(ult, 49)).Select
ActiveSheet.Paste
Application.CutCopyMode = False
'EL 48 SERIA AV
Range("AV13").Select
Selection.Copy
Range(Cells(14, 48), Cells(ult, 48)).Select
ActiveSheet.Paste
Application.CutCopyMode = False
'EL 47 SERIA AU
Range("AU13").Select
Selection.Copy
Range(Cells(14, 47), Cells(ult, 47)).Select
ActiveSheet.Paste
Application.CutCopyMode = False
'EL 46 SERIA AT
Range("AT13").Select
Selection.Copy
Range(Cells(14, 46), Cells(ult, 46)).Select
ActiveSheet.Paste
Application.CutCopyMode = False
'EL 45 SERIA AS
Range("AS13").Select
Selection.Copy
Range(Cells(14, 45), Cells(ult, 45)).Select
ActiveSheet.Paste
Application.CutCopyMode = False
'EL 44 SERIA AR
Range("AR13").Select
Selection.Copy
Range(Cells(14, 44), Cells(ult, 44)).Select
ActiveSheet.Paste
Application.CutCopyMode = False
'EL 43 SERIA AQ
Range("AQ13").Select
Selection.Copy
Range(Cells(14, 43), Cells(ult, 43)).Select
ActiveSheet.Paste
Application.CutCopyMode = False
'EL 42 SERIA AP
Range("AP13").Select
Selection.Copy
Range(Cells(14, 42), Cells(ult, 44)).Select
ActiveSheet.Paste
Application.CutCopyMode = False
End Sub
Desde ya, muchisimas gracias!

1 Respuesta

Respuesta
1
Trata con este codigo:
Sub copiar()
Dim i, j, contador As Integer
i = 14
j = 58
contador = 0
Range("bf13:bg13").Select
Selection.Copy
For contador = 0 To 65500
Cells(i + contador, j).Select
ActiveSheet.Paste
Next
End Sub
Donde dice 65500 es la ultima celda k kieres en k se pegue la formula, asi k puedes cambiarlo a tu antojo...
Si esta claro y listo, cerrar tema...

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas