Copia de Hoja y poner la nueva en el sitio deseado

Tengo un libro Excel con varias hojas y una hoja oculta, la cual quiero copiar a una hoja nueva, pero mediante un Inputbox me pregunte que nombre quiero ponerle a la hoja, y por otro Inputbox me pregunte en que lugar del libro quiero poner esa hoja nueva.

Tengo el código:

Sub Nueva_Antigua ()

      Hoja_Nueva = (InputBox("Ponga el nombre de la NUEVA HOJA")) & Hoja_Nueva
      Hoja_Antigua = (InputBox("Ponga el nombre de la HOJA ANTIGUA ")) & Hoja_Antigua
      Worksheets.Add(after:=Worksheets(Hoja_Antigua)).Name = "Hoja_Nueva"

'Hasta aquí yo creo que bien

'Hacemos visible la hoja oculta que no se como se puede hacer para copiarla sin hacerla visible

Application.Sheets("Enero").Visible = True

      Sheets("Enero").Select
      Sheets("Enero").Copy after:=Sheets(Sheets. Count) 'Esta instrucción hace la copia de la hoja oculta en la ultima posición, la hace perfecta pero no en a nueva hoja creada.
      ActiveSheet.Select
      ActiveSheet.Name = Hoja_Nueva
      Application.Sheets("Enero").Visible = False

 End Sub

Como rectifico"Sheets("Enero").Copy after:=Sheets(Sheets.Count)" para que haga lo que yo quiero en esa hoja nueva, en el lugar deseado, no en la ultima hoja.

1 Respuesta

Respuesta
1

Si te entendí bien y lo que quieres es copiar los datos de la hoja Enero a la nueva hoja creada, utiliza este código:

Sub Nueva_Antigua()
      hoja_Nueva = (InputBox("Ponga el nombre de la NUEVA HOJA")) & hoja_Nueva
      Hoja_Antigua = (InputBox("Ponga el nombre de la HOJA ANTIGUA ")) & Hoja_Antigua
      Worksheets.Add(after:=Worksheets(Hoja_Antigua)).Name = hoja_Nueva
'Hasta aquí yo creo que bien (al añadir la hoja, tenías hoja_nueva, entre comillas)'
'Hacemos visible la hoja oculta que no se como se puede hacer para copiarla sin hacerla visible'
Application.ScreenUpdating = False 'Para que no se vea la hoja oculta'
Application.Sheets("Enero").Visible = True
      Sheets("Enero").Select
      Cells.Copy
      Sheets(hoja_Nueva).Paste
      Application.Sheets("Enero").Visible = False
      Sheets(hoja_Nueva).Select
      Application.ScreenUpdating = True
      [a1].Select
End Sub

Para poder copiar datos de hojas ocultas, lo que debes de hacer es mostrarlas primero. Utiliza

Application.ScreenUpdating = False ', para que no se vea la hoja oculta cuando la muestras.

Si te ha valido la respuesta.

Muchas gracias por la respuesta.

Entiendo todo el código menos [a1].Select, no se que quiere decir.

Por otro lado el preguntarte si con este código se copian direntes formatos,fórmulas etc, vamos todo exacto lo que contenga la hoja la cual estas copiando

Gracias

Un saludo

91;A1].Select es para seleccionar la celda A1 y de esa forma eliminar la selección que quedaría después del Paste. Es lo mismo que Range("A1").Select pero de forma abreviada.

En cuanto a si copia todo, hace una copia exacta de la hoja "Enero".

Si te ha valido la respuesta.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas