![Adios](http://static.forosdelweb.com/fdwtheme/images/smilies/adios.gif)
Tengo un documento de excel con 2 hojas, en la hoja 1 tengo una pequeña boleta de prestamo de libro para rellenar y dos botones que he agregado (Guardar e imprimir). Lo que deseo que al dar click al boton guardar se copie dicha ficha a la hoja 2 y asi sucesivamente al ir rellenando una nueva ficha que se coloque debajo de la anterior por medio de un macro.
![de acuerdo](http://static.forosdelweb.com/fdwtheme/images/smilies/dedosarriba.png)
![lloron](http://static.forosdelweb.com/fdwtheme/images/smilies/chillando.png)
Será posible que alguien me pueda ayudar en esto
![Pensando](http://static.forosdelweb.com/fdwtheme/images/smilies/scratchchin.gif)
Dim fs, ts, s as Object
Dim suma As Integer
'***********metodo para guardar la ficha *********
Private Sub cmdGuardar_Click()
leer_archivo ' llamo a este metodo para leer el numero (lo almaceno en un fichero) de fila donde empezará la nueva ficha que llegue
copiar_ficha
End Sub
Sub copiar_ficha()
Cells.Select
Selection.Copy
Sheets("Hoja2").Select
suma = s + 20 ' le sumo 20 porque la boleta tiene 21 filas, por ejemplo: la primera ficha va asi Range("A1:H21"), a las cantidades de A y H les sumo 20 y lo guardo en el archivo de texto para la siguiente ficha que agregué
ActiveSheet.Range("A" & s & ":H" & suma).Select
ActiveSheet.Paste
ActiveSheet.Range("A" & s & ":H" & suma).Select
modificar_fila_inicio (suma)
Sheets("Hoja1").Select
Range("A1:H21").Select
Application.CutCopyMode = False
End Sub
' Funcion que nos modifica el registro de la ultima fila que se inserto
' es decir de qué fila se partira a adjuntar la otra ficha generada
' creamos un fichero que nos llevará el control debido a que si colocaramos una variable
' para llevar dicho control se perderia la secuencia de la siguiente fila de inicio
' debido a que pierde su ciclo de vida, por lo tanto su valor al cerrar la hoja de Excel
Sub modificar_fila_inicio(sw As Integer)
Set fs = CreateObject("Scripting.FileSystemObject")
Set a = fs.CreateTextFile("c:\archivoprueba.txt", True)
a.WriteLine ("" & sw & "")
a.Close
End Sub
' Funcion que lee la fila de donde se empezará a adjuntar la nueva ficha
' abre el fichero, lee la fila y cierra el fichero
Sub leer_archivo()
Set fs = CreateObject("Scripting.FileSystemObject")
Set f = fs.GetFile("c:\archivoprueba.txt")
Set ts = f.OpenAsTextStream(ForReading, TristateUseDefault)
s = ts.ReadLine
ts.Close
End Sub
Gracias de antemano