............ Foro Excel
Si no lo has hecho aún: REGISTRATE!!!

Crear una hoja plantilla, re-nombrarla y copiar datos

Ver el tema anterior Ver el tema siguiente Ir abajo

Crear una hoja plantilla, re-nombrarla y copiar datos

Mensaje por icehell el Lun Abr 30, 2012 5:41 pm

Hola "EXCELGALIACOS" estoy intentando crear un libro con una pequeña base de datos en el cual introduzco datos en la hoja Datos y automáticamente me crea un duplicado de la hoja Plantilla, se actualiza la hoja Indice y se copie la fila modificada en la nueva plantilla con los datos modificados.
Como creo que no me he explicado bien dejo la macro que he intentado modificar y una copia del archivo.
Código:
Private Sub Worksheet_Change(ByVal Target As Range)
'Al entrar un valor en las celdas de la columna A
'de la Hoja1 se creara automáticamente una copia de la hoja2 y que se
'le adjudicara por nombre a esta hoja nueva el valor introducido en la
'celda de la hoja1. Esto debe cumplirse cada vez que se introduzca un
'valor en las siguientes celdas (A2, A3,... An)
'hoja1 = Datos
'hoja2 = Plantilla
If Target.Column = 1 And Target.Row > 1 Then 'actúa sobre la col A
'Desactivar pantalla
    Application.ScreenUpdating = False
'Duplicamos hoja Plantilla
Sheets("Plantilla").Select
ActiveSheet.Cells.Select
Selection.Copy
Sheets.Add After:=Sheets(Sheets.Count)
ActiveSheet.Paste
'Asignamos nombre a la hoja
    ActiveSheet.Name = Target.Value
'Vaciamos el portapapeles
    Application.CutCopyMode = False
'Activamos pantalla
    Application.ScreenUpdating = True
'Trasladamos el valor de la celda
While ActiveCell.Value > ""
'se colocan los datos en la hoja Plantilla

Range("ID").Value = ActiveCell.Value
Range("dato1").Value = ActiveCell.Offset(0, 1).Value
Range("dato2").Value = ActiveCell.Offset(0, 2).Value
Range("dato3").Value = ActiveCell.Offset(0, 3).Value
Wend
End If
End Sub


La macro hace lo que deseo hasta cierto punto:
Al modificar valores en Datos se crea la hoja nueva renombrada y es una copia de la plantilla, ahora lo que falta es que me copie los valores en los rangos ya definidos en la hoja nueva.
Archivos
CrearHojaPlantillaDatos.xls No tienes los permisos para descargar los archivos.(103 KB) Descargado 21 veces
avatar
icehell

Masculino Cantidad de envíos : 64
Edad : 43
Ciudad - Pais : Arrecife
Version de Excel : 2010
Fecha de inscripción : 26/11/2010

http://icehellsoftware.260mb.org/

Volver arriba Ir abajo

Re: Crear una hoja plantilla, re-nombrarla y copiar datos

Mensaje por icehell el Miér Mayo 02, 2012 8:31 am

Gracias a Logroastur por este código que me funciona mejor para lo que yo pretendía hacer...
Código:
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim Fil    As Long
    Dim Col    As Long
    Dim i      As Long
    On Error Resume Next
    With Target
        Application.EnableEvents = False
        If .Columns.Count > 1 Or .Rows.Count > 1 Then Exit Sub
        If .Column = 1 And .Row > 1 And .Value <> Empty Then
            Fil = Target.Row
            Sheets("Plantilla").Copy After:=Sheets(Sheets.Count)
            With Sheets(Sheets.Count)
                .Name = Target.Value
                .Range("id") = Target.Value
                For Col = 1 To 9
                    .Range("DATO" & Col) = Cells(Fil, Col + 1)
                Next Col
            End With
        End If
        Application.EnableEvents = True
        Me.Select
    End With
End Sub
avatar
icehell

Masculino Cantidad de envíos : 64
Edad : 43
Ciudad - Pais : Arrecife
Version de Excel : 2010
Fecha de inscripción : 26/11/2010

http://icehellsoftware.260mb.org/

Volver arriba Ir abajo

Re: Crear una hoja plantilla, re-nombrarla y copiar datos

Mensaje por GalileoGali el Miér Mayo 02, 2012 8:28 pm

Código:
If .Columns.Count > 1 Or .Rows.Count > 1 Then Exit Sub

Quiero una opinión,
Yo he usado numerosísimas veces esta expresión a fin de evitar que Target pudiera tratarse de un rango de más de una celda. Pregunto: ¿Garantizo lo mismo con esta otra expresión (aparentemente más breve)
Código:
If .Count > 1 Then Exit Sub
???


_________________
GalileoGali
M.A.P. 2010-2013
Microsoft Active Professional
avatar
GalileoGali
Admin

Masculino Cantidad de envíos : 1962
Edad : 61
Ciudad - Pais : QUIROGA, Argentina
Version de Excel : 2000-2003-2007-2010
Fecha de inscripción : 24/01/2008

http://excelgali.mejorforo.net

Volver arriba Ir abajo

Re: Crear una hoja plantilla, re-nombrarla y copiar datos

Mensaje por Contenido patrocinado


Contenido patrocinado


Volver arriba Ir abajo

Ver el tema anterior Ver el tema siguiente Volver arriba


 
Permisos de este foro:
No puedes responder a temas en este foro.