Macro de vba, ayuda para completar o mejorar

3 envíos / 0 nuevos
Último envío
Charcan
Imagen de Charcan
Offline
última acción: Hace 10 años 1 mes
alta: 03/03/2014 - 05:08
Puntos: 40
Macro de vba, ayuda para completar o mejorar

Esta es la cuestión tengo una lista en la "hoja 1", de esa lista deseo crear tantas hojas como nombres haya en esa lista, hasta aqui no hay problema tengo un macro que me hace exactamente eso, sino que cuando crea las hojas las nombra como en la lista y con el formato de la "hoja 2" ahora mi problema consiste en que la "hoja 2" tiene varias formulas en diferentes celdas las cuales se copian con éxito en las hojas creadas por el macro, pero como hago para hacer variaciones en esos códigos automaticamente por ejemplo si en la "hoja 2" celda "A3" tengo la siguiente formula =hoja1!AF11 como hago para que en las hojas que cree mi macro se modifique a =hoja1!AF12, y en la siguiente =hoja1!AF13 

aqui les dejo el código que estoy usando: 

Sub CopiarHojaFormato() 


Application.ScreenUpdating = False 
Dim celda As Range 
For Each celda In Worksheets("Nomina24h").Range("ai11:ai24")
Worksheets("1").Copy After:=Worksheets(Worksheets.Count) 
ActiveSheet.Name = celda 
Range("a1").Value = celda 
Next 

End Sub 

 

tambien me gustaria que se borren las hojas si se borran los nombres de la lista claro que esto es opcional 

espero haberme hecho entender 

Muchas gracias de antemano

Etiquetas: 

pacomegia
Imagen de pacomegia
Offline
última acción: Hace 3 días 16 horas
Nivel 1 - 200 puntosNivel 2 - 500 puntosNivel 3 - 1000 puntosNivel 4 - 2000 puntosNivel 5 - 4000 puntosadministrador
alta: 27/12/2006 - 23:26
Puntos: 11175
Re: Macro de vba, ayuda para completar o mejorar

Hola:

para introducir una fórmula, te bastaría con utilizar la propiedad Formula de la celda.

por ejemplo

Range("A3").Formula = "=Hoja1!AF11"

 

Claro, en tu caso además, no siempre será la celda AF11, sino que quieres que sea la 11, 12, etc.,

pues utiliza un contador

podría ser algo así:

 

Dim contador

contador = 11   'la primera

For Each celda In Worksheets("Nomina24h").Range("ai11:ai24")

    Worksheets("1").Copy After:=Worksheets(Worksheets.Count)

    ActiveSheet.Name = celda

    Range("a1").Value = celda

    Range("a3").Formula = "=Hoja1!AF" & contador

    contador = contador + 1

Next

 

------
Ya sé Excel, pero necesito más.

Charcan
Imagen de Charcan
Offline
última acción: Hace 10 años 1 mes
alta: 03/03/2014 - 05:08
Puntos: 40
Re: Macro de vba, ayuda para completar o mejorar

Hola, muchas Gracias todas mis dudas resueltas,

 

te agradezco x1000000 Risa