Insertar una hoja nueva con tabla de datos
Intentaré explicar lo que necesito. Tengo un formulario en una hoja a la que he denominado ALTAS que inserta datos correspondientes a facturas que recibo, (proveedor, fecha, vencimiento, etc...) en una tabla de otra hoja a la que he llamado FACTURAS2021 que tiene todos los campos que necesito mediante una macro. Me gustaría saber como indicarle que si el vencimiento es en 2022, inserte una hoja que podría llamarse FACTURAS2022 con los mismos campos de la hoja FACTURAS2021 e inserte todos los datos allí. Espero haberme explicado bien.
La macro que inserta los datos es esta:
Sub guardar()
Dim celda As Range
Dim fila As Long
'hoja donde va la base de datos(celda hace referencia a un índice de búsqueda
Set celda = Hoja3.Range("A:A").Find(what:=Hoja1.Range("D5").Value, _
After:=Hoja3.Range("a7"))
If celda Is Nothing Then
' si la celda esta vacía hace lo que sigue , si no lo es, manda el mensaje _
de que ya existe la factura
fila = Hoja3.Cells(1200, 1).End(xlUp).Row + 1
Hoja3.Cells(fila, 1).Value = Hoja1.Range("D5").Value
Hoja3.Cells(fila, 2).Value = Hoja1.Range("J11").Value
Hoja3.Cells(fila, 3).Value = Hoja1.Range("D7").Value
Hoja3.Cells(fila, 4).Value = Hoja1.Range("D11").Value
Hoja3.Cells(fila, 5).Value = Hoja1.Range("J7").Value
Hoja3.Cells(fila, 6).Value = Hoja1.Range("D9").Value
Hoja3.Cells(fila, 8).Value = Hoja1.Range("J5").Value
Hoja3.Cells(fila, 9).Value = Hoja1.Range("O6").Value
Hoja3.Cells(fila, 10).Value = Hoja1.Range("O7").Value
Hoja3.Cells(fila, 11).Value = Hoja1.Range("O8").Value
Hoja3.Cells(fila, 12).Value = Hoja1.Range("O9").Value
Hoja3.Cells(fila, 13).Value = Hoja1.Range("O10").Value
Hoja3.Cells(fila, 14).Value = Hoja1.Range("O11").Value
Hoja3.Cells(fila, 15).Value = Hoja1.Range("O12").Value
Hoja3.Cells(fila, 16).Value = Hoja1.Range("O13").Value
With Hoja3
.Cells(fila, 7).Value = Hoja1.Range("D13").Value
.Hyperlinks.Add anchor:=.Cells(fila, 7), Address:=.Cells(fila, 7)
End With
'La misma operación para cada dato a insertar hay que ir aumentado (fila,+1)
Else
MsgBox " La factura ya existe en la base de datos."
End If
'para dejar las casillas vacías una vez insertados los datos
Hoja1.Range("D5").Value = ""
Hoja1.Range("D7").Value = ""
Hoja1.Range("D9").Value = ""
Hoja1.Range("D11").Value = ""
Hoja1.Range("D13").Value = ""
Hoja1.Range("J5").Value = ""
Hoja1.Range("J7").Value = ""
Hoja1.Range("J9").Value = ""
End Sub
Estos son los campos que me gustaría que la macro llevara a otra hoja.
Este es el formulario