Copiar formula a varias celdas en macro

05/07/2007 - 11:54 por Tony | Informe spam
Hola a todos.

Quiero poner en una macro que me copie la fórmula de una celda concreta a
una serie de celdas que están en una fila. Lo que pasa es que el número de
celdas de destina es variable. ¿Cómo puedo hacerlo para ponerlo en la macro?.

Gracias por anticipado.

Preguntas similare

Leer las respuestas

#1 Orfao
05/07/2007 - 20:14 | Informe spam
Hola Tony..
Este es un medoto que se acciona por medio de un commandbuttom
insertado en la hoja1

asignas lo diguente :

Private Sub CommandButton1_Click()
ActiveCell.Activate
Dim Fi1 As Integer
Dim Ff1 As Integer
Dim Ci1 As Integer
Dim Cf1 As Integer
Dim Fi2 As Integer
Dim Ff2 As Integer
Dim Ci2 As Integer
Dim Cf2 As Integer
Dim H1 As Integer
Dim H2 As Integer
Dim Z As Variant
H1 = 2
H2 = 3
Fi1 = 9
Ff1 = 9
Ci1 = 1
Cf1 = 2
Fi2 = 13
Ff2 = 15
Ci2 = 3
Cf2 = 4
Application.Sheets(H1).Range(Range(Cells(Fi1, Ci1), Cells(Ff1,
Cf1)).Address).Copy

VBAProject.ThisWorkbook.Sheets(H2).Activate
VBAProject.ThisWorkbook.Sheets(H2).Range(Range(Cells(Fi2, Ci2), Cells(Ff2,
Cf2)).Address).Select
ActiveSheet.Paste
Application.CutCopyMode = False
VBAProject.ThisWorkbook.Sheets(1).Activate ´aqui (1) es el numero de hoja
deonde esta el boton


End Sub

Nota: los valores de filas y columnas iniciales y finales y el numero de
hjas los puedes ler desde cualquier celda que desees

ej: Cf2=VBAProject.ThisWorkbook.Sheets(H2).Range("A1")

Se que puede mejorarse este codigo...Pero...(asi funciona)
si quieres le colocas una instruccion application.screenupdating=False al
inicio
y luego True al final (para que no veas el parpadeo)
Cualquier cosa.. me avisas. Suerte...

Me alimento del conocimiento de todos


"Tony" wrote:

Hola a todos.

Quiero poner en una macro que me copie la fórmula de una celda concreta a
una serie de celdas que están en una fila. Lo que pasa es que el número de
celdas de destina es variable. ¿Cómo puedo hacerlo para ponerlo en la macro?.

Gracias por anticipado.
Respuesta Responder a este mensaje
#2 Tony
05/07/2007 - 20:28 | Informe spam
Orfao, ante todo muuuchas gracias... Lo probará para ver qué sucede. Pero un
par de preguntas porque yo no he utilizado el VBA:

1) ¿Cómo asocio este método a un "commandbuttom"?
2) El nombre de la hoja donde va a funcionar este método, ¿tiene que
llamarse "hoja1"?

Gracias por todo.

"Orfao" wrote:

Hola Tony..
Este es un medoto que se acciona por medio de un commandbuttom
insertado en la hoja1

asignas lo diguente :

Private Sub CommandButton1_Click()
ActiveCell.Activate
Dim Fi1 As Integer
Dim Ff1 As Integer
Dim Ci1 As Integer
Dim Cf1 As Integer
Dim Fi2 As Integer
Dim Ff2 As Integer
Dim Ci2 As Integer
Dim Cf2 As Integer
Dim H1 As Integer
Dim H2 As Integer
Dim Z As Variant
H1 = 2
H2 = 3
Fi1 = 9
Ff1 = 9
Ci1 = 1
Cf1 = 2
Fi2 = 13
Ff2 = 15
Ci2 = 3
Cf2 = 4
Application.Sheets(H1).Range(Range(Cells(Fi1, Ci1), Cells(Ff1,
Cf1)).Address).Copy

VBAProject.ThisWorkbook.Sheets(H2).Activate
VBAProject.ThisWorkbook.Sheets(H2).Range(Range(Cells(Fi2, Ci2), Cells(Ff2,
Cf2)).Address).Select
ActiveSheet.Paste
Application.CutCopyMode = False
VBAProject.ThisWorkbook.Sheets(1).Activate ´aqui (1) es el numero de hoja
deonde esta el boton


End Sub

Nota: los valores de filas y columnas iniciales y finales y el numero de
hjas los puedes ler desde cualquier celda que desees

ej: Cf2=VBAProject.ThisWorkbook.Sheets(H2).Range("A1")

Se que puede mejorarse este codigo...Pero...(asi funciona)
si quieres le colocas una instruccion application.screenupdating=False al
inicio
y luego True al final (para que no veas el parpadeo)
Cualquier cosa.. me avisas. Suerte...

Me alimento del conocimiento de todos


"Tony" wrote:

> Hola a todos.
>
> Quiero poner en una macro que me copie la fórmula de una celda concreta a
> una serie de celdas que están en una fila. Lo que pasa es que el número de
> celdas de destina es variable. ¿Cómo puedo hacerlo para ponerlo en la macro?.
>
> Gracias por anticipado.
Respuesta Responder a este mensaje
#3 Tony
05/07/2007 - 20:32 | Informe spam
Por otro lado, Orfao, ¿podrías explicarme qué hace este método que has
puesto?

Gracias de nuevo.

"Orfao" wrote:

Hola Tony..
Este es un medoto que se acciona por medio de un commandbuttom
insertado en la hoja1

asignas lo diguente :

Private Sub CommandButton1_Click()
ActiveCell.Activate
Dim Fi1 As Integer
Dim Ff1 As Integer
Dim Ci1 As Integer
Dim Cf1 As Integer
Dim Fi2 As Integer
Dim Ff2 As Integer
Dim Ci2 As Integer
Dim Cf2 As Integer
Dim H1 As Integer
Dim H2 As Integer
Dim Z As Variant
H1 = 2
H2 = 3
Fi1 = 9
Ff1 = 9
Ci1 = 1
Cf1 = 2
Fi2 = 13
Ff2 = 15
Ci2 = 3
Cf2 = 4
Application.Sheets(H1).Range(Range(Cells(Fi1, Ci1), Cells(Ff1,
Cf1)).Address).Copy

VBAProject.ThisWorkbook.Sheets(H2).Activate
VBAProject.ThisWorkbook.Sheets(H2).Range(Range(Cells(Fi2, Ci2), Cells(Ff2,
Cf2)).Address).Select
ActiveSheet.Paste
Application.CutCopyMode = False
VBAProject.ThisWorkbook.Sheets(1).Activate ´aqui (1) es el numero de hoja
deonde esta el boton


End Sub

Nota: los valores de filas y columnas iniciales y finales y el numero de
hjas los puedes ler desde cualquier celda que desees

ej: Cf2=VBAProject.ThisWorkbook.Sheets(H2).Range("A1")

Se que puede mejorarse este codigo...Pero...(asi funciona)
si quieres le colocas una instruccion application.screenupdating=False al
inicio
y luego True al final (para que no veas el parpadeo)
Cualquier cosa.. me avisas. Suerte...

Me alimento del conocimiento de todos


"Tony" wrote:

> Hola a todos.
>
> Quiero poner en una macro que me copie la fórmula de una celda concreta a
> una serie de celdas que están en una fila. Lo que pasa es que el número de
> celdas de destina es variable. ¿Cómo puedo hacerlo para ponerlo en la macro?.
>
> Gracias por anticipado.
Respuesta Responder a este mensaje
#4 Orfao
05/07/2007 - 21:08 | Informe spam
Hola Tony!!

1.-En cualquier Hoja insertas un Commandbutton
luego le das dobleclick y se abre el VBA con
Private Sub CommandButton1_Click()
ahi colocas el resto del codigo.
***No necesariamente tiene que estar en la hoja1 (puede ser en la que tu
quieras)

2.-El metodo se activa cuando cliqueas sobre el boton
y...
a: o lees los parametros desde las celdas que quieras,
b: o se lo asignas como en el codigo que te envie
(lo uno o lo otro) si lo asignas debes eliminar las lineas donde esta:
H1 = 2 ,H2 = 3 ,Fi1 = 9 ,Ff1 = 9 ,Ci1 = 1 ,Cf1 = 2 ,Fi2 = 13 ,Ff2 = 15 ,Ci2
= 3 ,Cf2 = 4

..con este modelo puedes mandar desde una hoja "X" copiar datos de hoja "Y"
en hoja "Z"
TAMBIEN PUEDES SUSTITUIR EL NUMERO DE HOJA POR SU RESPECTIVO NOMBRE
(En ese caso. Dim H1 as string y dim H2 as string y le asignas su nombre o
lo lees de cualquier celda Ej: H1=range("a2") )
Se entiende ???

PD: (quitale al codigo todos los
Me alimento del conocimiento de todos ">>" que aparecen en el post)

See You...

"Tony" wrote:

Por otro lado, Orfao, ¿podrías explicarme qué hace este método que has
puesto?

Gracias de nuevo.

"Orfao" wrote:

> Hola Tony..
> Este es un medoto que se acciona por medio de un commandbuttom
> insertado en la hoja1
>
> asignas lo diguente :
>
> Private Sub CommandButton1_Click()
> ActiveCell.Activate
> Dim Fi1 As Integer
> Dim Ff1 As Integer
> Dim Ci1 As Integer
> Dim Cf1 As Integer
> Dim Fi2 As Integer
> Dim Ff2 As Integer
> Dim Ci2 As Integer
> Dim Cf2 As Integer
> Dim H1 As Integer
> Dim H2 As Integer
> Dim Z As Variant
> H1 = 2
> H2 = 3
> Fi1 = 9
> Ff1 = 9
> Ci1 = 1
> Cf1 = 2
> Fi2 = 13
> Ff2 = 15
> Ci2 = 3
> Cf2 = 4
> Application.Sheets(H1).Range(Range(Cells(Fi1, Ci1), Cells(Ff1,
> Cf1)).Address).Copy
>
> VBAProject.ThisWorkbook.Sheets(H2).Activate
> VBAProject.ThisWorkbook.Sheets(H2).Range(Range(Cells(Fi2, Ci2), Cells(Ff2,
> Cf2)).Address).Select
> ActiveSheet.Paste
> Application.CutCopyMode = False
> VBAProject.ThisWorkbook.Sheets(1).Activate ´aqui (1) es el numero de hoja
> deonde esta el boton
>
>
> End Sub
>
> Nota: los valores de filas y columnas iniciales y finales y el numero de
> hjas los puedes ler desde cualquier celda que desees
>
> ej: Cf2=VBAProject.ThisWorkbook.Sheets(H2).Range("A1")
>
> Se que puede mejorarse este codigo...Pero...(asi funciona)
> si quieres le colocas una instruccion application.screenupdating=False al
> inicio
> y luego True al final (para que no veas el parpadeo)
> Cualquier cosa.. me avisas. Suerte...
>
> Me alimento del conocimiento de todos
>
>
> "Tony" wrote:
>
> > Hola a todos.
> >
> > Quiero poner en una macro que me copie la fórmula de una celda concreta a
> > una serie de celdas que están en una fila. Lo que pasa es que el número de
> > celdas de destina es variable. ¿Cómo puedo hacerlo para ponerlo en la macro?.
> >
> > Gracias por anticipado.
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida