Visual Basic para Aplicaciones - Copiar misma macro, con datos diferentes, varias veces

Life is soft - evento anual de software empresarial
   
Vista:

Copiar misma macro, con datos diferentes, varias veces

Publicado por Leticia (2 intervenciones) el 19/02/2016 08:54:55
Buenos días,

Tengo realizada la siguiente macro:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
Sub copypaste()
'1 copiamos y pegamos los datos de una hoja a otra
 
Worksheets("Datos").Range("B2").Copy
Worksheets("PVI").Range("D4:H4").PasteSpecial
Worksheets("Datos").Range("C2").Copy
Worksheets("PVI").Range("D6:H6").PasteSpecial
Worksheets("Datos").Range("D2").Copy
Worksheets("PVI").Range("D8:H8").PasteSpecial
Worksheets("Datos").Range("J2").Copy
Worksheets("PVI").Range("D10:H10").PasteSpecial
Worksheets("Datos").Range("G2").Copy
Worksheets("PVI").Range("D12:H12").PasteSpecial
Worksheets("Datos").Range("L2").Copy
Worksheets("PVI").Range("D14:H14").PasteSpecial
 
'1 imprimir en pdf.
 
ruta = "D:\Macro\" + Cells(1, 3) + ".pdf"
Sheets("PVI").Select
Range("B1:O54").Select
 
Selection.ExportAsFixedFormat Type:=xlTypePDF, Filename:="D:\Macro\" + Cells(1, 3) + ".pdf" & Range("B92").Value, Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False
 
 
'1 borrar contenido
 
Worksheets("PVI").Range("D4:H4").ClearContents
Worksheets("PVI").Range("D6:H6").ClearContents
Worksheets("PVI").Range("D8:H8").ClearContents
Worksheets("PVI").Range("D10:H10").ClearContents
Worksheets("PVI").Range("D12:H12").ClearContents
Worksheets("PVI").Range("D14:H14").ClearContents

El caso es que esta misma macro, debo realizarla varias veces pero con datos diferentes, es decir, si ahora copia el rango B2, luego tendrá que copiar el rango B3, B4 y así sucesivamente.

¿Alguien sabe como puedo hacer esta macro, sin tener que copiarla, pegarla y modificarla tantas veces necesite?

Muchas gracias por vuestra ayuda
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Copiar misma macro, con datos diferentes, varias veces

Publicado por GMG (12 intervenciones) el 19/02/2016 09:46:29
Todo dentro de bucle que te incremete una variable por ejemplo j.

Y utilizar offset:

Worksheets("Datos").Range("B2").Offset(j, 0).Copy
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Copiar misma macro, con datos diferentes, varias veces

Publicado por Antonio (5 intervenciones) el 19/02/2016 10:07:23
Hola,
prueba este código simple que te adjunto a continuación a ver si la funcionalidad es la que buscas:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
Sub copypaste()
''1 copiamos y pegamos los datos de una hoja a otra
Dim Repeticiones As Integer
Dim ruta As String
 
Repeticiones = 5
For i = 2 To Repeticiones
 
Worksheets("Datos").Range("B" & i).Copy
Worksheets("PVI").Range("D4:H4").PasteSpecial
Worksheets("Datos").Range("C" & i).Copy
Worksheets("PVI").Range("D6:H6").PasteSpecial
Worksheets("Datos").Range("D" & i).Copy
Worksheets("PVI").Range("D8:H8").PasteSpecial
Worksheets("Datos").Range("J" & i).Copy
Worksheets("PVI").Range("D10:H10").PasteSpecial
Worksheets("Datos").Range("G" & i).Copy
Worksheets("PVI").Range("D12:H12").PasteSpecial
Worksheets("Datos").Range("L" & i).Copy
Worksheets("PVI").Range("D14:H14").PasteSpecial
 
'1 imprimir en pdf.
 
ruta = "D:\Macro\" & Cells(1, 3) & "_" & (i - 1) & ".pdf"
Sheets("PVI").Range("B1:O54").Select
 
 
Selection.ExportAsFixedFormat Type:=xlTypePDF, Filename:=ruta & Range("B92").Value, Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False
 
 
'1 borrar contenido
 
Worksheets("PVI").Range("D4:H4").ClearContents
Worksheets("PVI").Range("D6:H6").ClearContents
Worksheets("PVI").Range("D8:H8").ClearContents
Worksheets("PVI").Range("D10:H10").ClearContents
Worksheets("PVI").Range("D12:H12").ClearContents
Worksheets("PVI").Range("D14:H14").ClearContents
 
Next
 
End Sub
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

Copiar misma macro, con datos diferentes, varias veces

Publicado por Leticia (2 intervenciones) el 19/02/2016 14:13:29
Buenos días Antonio,

Muchísimas gracias por tu ayuda. ¡Me ha funcionado a la perfección y me ha facilitado la vida!

¡Buen fin de semana!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar