Al rellenar una celda, que se abra una nueva hoja y que se ordene sola
Hola a todos. Hace unos días hacía la siguiente pregunta:
Hola a todos. Tengo una tabla de excel con varias hojas, y necesito lo siguiente: Cuando rellene (con cualquier valor) la celda B2, debe abrirse automáticamente una nueva hoja, cuyo nombre sea el mismo que el valor de la celda R2, y que además sea copia de la hoja VALORES. Cuando rellene (con cualquier valor) la celda B3, debe abrirse automáticamente una nueva hoja, cuyo nombre sea el mismo que el valor de la celda R3, y que además sea copia de la hoja VALORES. Y así sucesivamente... Espero haberme explicado. ¡¡¡Muchas gracias de antemano por vuestras respuestas!!!
Y el experto luismondelo me respondía con lo siguiente:
Hola, te mando mi solución. No has dicho en que hoja estamos modifcando la columna B, en mi ejemplo lo hago sobre la hoja1. Es decir tengo una hoja llamada hoja1 y otra llamada valores y en la hoja1 es donde modifico las celdas de la columna B
Esta macro la tienes que copiar dentro del objeto hoja1 para que se autoejecute en el momento de teclear algo en la columna B
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 2 Then
nombre = Target.Offset(0, 16).Value
Sheets("valores").Copy after:=ActiveWorkbook.Sheets(ActiveWorkbook.Sheets.Count)
ActiveSheet.Name = nombre
End If
End Sub
Visto lo anterior, lo que pregunto es lo siguiente:
Teniendo en cuenta que siempre las nuevas hojas que se van a crear automáticamente (gracias al macro anterior) van a tener por nombre un número, ¿existe alguna forma de que la nueva hoja no se coloque al final, sino que se coloque en su número de orden correspondiente?
Por ejemplo, supongamos que al escribir en la celda correspondiente, se me abre (por orden del macro) una nueva hoja, cuyo nombre va a ser (por ejemplo), 30. Y esa nueva hoja se coloca al final (como última hoja del libro). Lo que yo quiero es que se coloque entre la hoja 29 y la hoja 31, en vez de colocarse al final...
Espero haberme explicado.
Muchas gracias de antemano. ¡¡Saludos!!