Saltar al contenido

Repartir datos en hojas del libro


Recommended Posts

publicado

Hola a tod@s,

Sigo creciendo en dudas respecto a la creación de macros. En parte por la "culpa" de [uSER=46507]@Macro Antonio[/uSER] :) que me resuelve todo como si fuera fácil.

El objetivo es copiar una hoja "AA_plantilla" un número de veces determinado (hecho) para en un segundo paso poder copiar los nombres de la hoja (AA_nombres) en las casillas A2 de las hojas que se acaban de crear y renombrar estas nuevas hojas con este nombre.

Esta macro hace perfectamente el paso número 1: copiar la plantilla

"Sub CopiaHoja()

On Error Resume Next

nombreHoja = InputBox("¿Qué hoja quieres copiar?")

For x = 1 To Sheets.Count

If ActiveWorkbook.Sheets(x).Name = nombreHoja Then

ExisteHoja = True

IndiceHoja = x

End If

Next x

If ExisteHoja = True Then

NumeroDeCopias = InputBox("¿Cuántas veces quieres copiar esta hoja?")

For y = 1 To NumeroDeCopias

Nombre = Val(nombreHoja) + y

Sheets(IndiceHoja).Select

Sheets(IndiceHoja).Copy After:=Sheets(Sheets.Count)

Sheets(Sheets.Count).Name = Nombre

Next y

Else

MsgBox "El nombre de la hoja no es correcto o no existe ... aún ...."

End If

End Sub"

Y me he quedado en el paso 2: Copiar los nombres y renombrar las hojas.

"Sub repartir_datos()

Sheets("1").Range("A2").Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove

Sheets("1").Cells(2, "A").Value = Sheets("AA_Nombres").Cells(1, "A").Value

End Sub"

Ahí va el fichero de ejemplo también :)

¿Alguna pista?

clientes.rar

publicado
Sigo creciendo en dudas respecto a la creación de macros. En parte por la "culpa" de [uSER=46507]@Macro Antonio[/uSER] :) que me resuelve todo como si fuera fácil.

jajajaja tá bueno.

  • 3 weeks later...
publicado

Hola a tod@s, sigo sin ver luz al final del túnel.... Estoy probando esta microscópica macro y no encuentro la forma de hacerla funcionar:

Sub repartir_datos_2()
Worksheets("AA_Nombres").Range("a1:a5").Copy Destination:=Worksheets("1:5").Range("a2")
End Sub

Además, ¿cuál sería la propiedad correcta para que estos mismos nombres fueran los nombres de cada hoja? ¿Sheet.Name = "Nombre_de_la_lista" ?

clientes.rar

publicado

Y esta "mini" macro, tampoco funciona para renombrar las hojas:

 

Sub renombre_hojas()

Dim Nombre As String
Nombre = Sheets(1).Name
For i = 1 To Sheets.Count
Sheets(i).Name = Sheets(i).Cells(2, "A").Value
Next

End Sub

** Acabo de solucionar el tema de renombrar las hojas:

Fácil, he incluido este código en la hoja "AA_Plantilla" que copia el nombre de la celda A2 como nombre de la hoja :)

Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect([A2], Target) Is Nothing Then Exit Sub
ActiveSheet.Name = [A2]
End Sub

 

Ya solo queda repartir los nombres de la lista en las hojas .... ¿Alguna ayuda?

 

clientes.rar

publicado

Ya casi lo tengo: el último paso es copiar el nombre de la hoja en la celda A2. Tengo este código que funciona en cualquier libro, menos en el mío:

 

Sub Nombre_cliente()
For Each hoja In ThisWorkbook.Sheets
hoja.Range("A2").Value = hoja.Name
Next hoja
End Sub

 

Why??? uuufffffff de hecho, al ejecutar esta macro, destruye sin piedad el resultado de las otras macros .....

publicado

Listo!! Ahora si funciona, aunque me queda un detalle: con la última macro me copia el nombre de la hoja en las 2 primeras hojas. 

Lo ideal para mi sería que comenzara en la hoja número 3.

Y ya puestos, ¿se podrían unificar las 3 macros? 

clientes - copia.rar

  • Silvia bloqueó este tema

Archivado

Este tema está ahora archivado y está cerrado a más respuestas.

×
×
  • Crear nuevo...

Información importante

Echa un vistazo a nuestra política de cookies para ayudarte a tener una mejor experiencia de navegación. Puedes ajustar aquí la configuración. Pulsa el botón Aceptar, si estás de acuerdo.