Guardar datos creando hojas nuevas

Adjunto una aplicación que estoy mejorando y tengo un problemilla.
Se trata de una aplicación para generar facturas, guardar los datos y controlar lo facturado en el año, lo hice hace unos años para tres amigos que son autónomos de distintos oficios, la primera que hice genere 92 hojas con lo que guardar los datos en la hoja "relación" me fue relativamente fácil, pero a uno de los chicos le han faltado hojas y estoy intentando hacer una que no tenga mas que una hoja y que cada vez que le das al botón se genera una nueva, hasta aquí todo bien, es a la hora de guardar los datos en la hoja relación no se como hacerlo he hecho varias formas pero no lo consigo.

'esto no me funciona, pero estoy intentando hacer un modulo que vaya creando los links cuando se haya creado
'la pagina nueva (factura), de momento no se como hacerlo
'He probado varias formas de decirle el nombre de la hoja en que esta la factura pero nada
'el que lo ponga en la fila vacia ya se como hacerlo aqui he puesto la primera(5) para hacer las pruebas
Apartir de aqui Fecha
Range("a5").Value = Sheets("Sheet.Name <> ActiveSheet.Name").Range("f14").Value
Apartir de aqui Nº Factura
Range("b5").Value = Sheets("Hoja1(2)").Range("d14").Value
Apartir de aqui Cliente
Range("c5").Value = Sheets("1(2)").Range("d18").Value
Apartir de aqui Expediente
Range("e5").Value = Sheets("Hoja1(2)"). Range("d17").Value

Lo que necesito es identificar la ultima hoja creada, las va numerando "hoja(1(2))" "hoja(1(3)) etc pero no encuentro la manera de hacerlo.

Si necesitáis el archivo no tengo problema en enviarlo.

1 Respuesta

Respuesta
1

Adjunto la macro que crea y nombra las nuevas hojas por si alguien lo necesita,

Sub CREAR()

Application.ScreenUpdating = False

Worksheets("0").Visible = True
'Worksheets("1").Copy After:=Sheets(Sheets.Count)
Worksheets("Relación").Visible = False
Dim nombre As String
nombre = Application.InputBox("Nº de la nueva factura")
For x = 1 To Sheets.Count
If Sheets(x).Name = nombre Then nombre = ""
Next x
If nombre <> "" Then
Sheets("0").Select 'Hoja madre
Sheets("0").Copy after:=Sheets(1)
Sheets("0 (2)").Range("dd18").Select
Selection.Copy
Sheets("0 (2)").Select
Sheets("0 (2)").Name = nombre
Sheets(nombre).Range("D18").Select
Else
MsgBox ("No se ha creado hoja nueva," & vbCrLf & vbCrLf & "*- por estar el nombre repetido")
End If
ActiveSheet.Range("d14").Value = ActiveSheet.Name & "/" & Year(Date)
Worksheets("0").Visible = False

End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas