Generar nueva hoja con datos
Buenas tardes Expertos, tengo un libro de excel con dos Hojas, una se llama "Plantilla" y la otra "Datos", mediante una macro o evento, no lo se muy bien, genero una nueva hoja que copia el contenido de la hoja "plantilla" y la renombra con el código que introduzco en la hoja "datos" en el rango "A1, A2, A3, ... Y sucesivamente". En dicha hoja existe un rango de datos que va des "B2 a V2 y sucesivamente "B3 a V3" ...
No se como conseguir que al mismo tiempo que genero la hoja nueva introduciendo manualmente un código en el rango A1, se copien a dicha hoja los datos del rango B2 a V2 y así sucesivamente se copien los correspondientes a la introducción de un código en cada una de las filas que contengan datos y se desee generar una nueva hoja.
Les copio la macro que genera la nueva hoja a partir de la hoja Plantilla para que vean su funcionamiento.
Gracias anticipadas
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
Dim Art As String
Application.ScreenUpdating = False
If Target.Count > 1 Then Exit Sub
If Target = "" Then Exit Sub
If Intersect(Target, Range("a:a")) Is Nothing Then Exit Sub
' Crea una hoja nueva con el nombre del articulo
Art = Target
On Error GoTo fin
Sheets.Add.Name = Art
Sheets(Art).Move After:=Sheets(Sheets.Count)
' Copia los datos de la PLANTILLA en la hoja creada
Sheets("Plantilla").Cells.Copy Sheets(Art).Range("A1")
Exit Sub
fin:
' Nos avisa si la hoja está creada
MsgBox ("Este artículo ya tiene hoja creada")
Application.DisplayAlerts = False
ActiveWindow.SelectedSheets.Delete
Hoja1.Select
Application.DisplayAlerts = True
Application.ScreenUpdating = True
End Sub
No se como conseguir que al mismo tiempo que genero la hoja nueva introduciendo manualmente un código en el rango A1, se copien a dicha hoja los datos del rango B2 a V2 y así sucesivamente se copien los correspondientes a la introducción de un código en cada una de las filas que contengan datos y se desee generar una nueva hoja.
Les copio la macro que genera la nueva hoja a partir de la hoja Plantilla para que vean su funcionamiento.
Gracias anticipadas
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
Dim Art As String
Application.ScreenUpdating = False
If Target.Count > 1 Then Exit Sub
If Target = "" Then Exit Sub
If Intersect(Target, Range("a:a")) Is Nothing Then Exit Sub
' Crea una hoja nueva con el nombre del articulo
Art = Target
On Error GoTo fin
Sheets.Add.Name = Art
Sheets(Art).Move After:=Sheets(Sheets.Count)
' Copia los datos de la PLANTILLA en la hoja creada
Sheets("Plantilla").Cells.Copy Sheets(Art).Range("A1")
Exit Sub
fin:
' Nos avisa si la hoja está creada
MsgBox ("Este artículo ya tiene hoja creada")
Application.DisplayAlerts = False
ActiveWindow.SelectedSheets.Delete
Hoja1.Select
Application.DisplayAlerts = True
Application.ScreenUpdating = True
End Sub
1 Respuesta
Respuesta de Cadipas spain
1