Hola a todos en foros del web
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.
He logrado copiar una vez la ficha dentro de hoja 2, pero al insertar la segunda me dice que la operacion de pegado solo puede realizarse en las filas con 1, o sea A1, B1,C1.....etc
Será posible que alguien me pueda ayudar en esto . Adjunto el codigo que llevo por el momento.
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