Hola Dante
adjunto la imagen para tener una mayor referencia
por ejemplo tengo una base de datos que puede tener hasta 5000 registros de varios productos de la cuales tengo el producto arroz (en la base de datos hay mas 500 productos - solo he tomado como ejemplo el arroz) la consulta seria que busque el producto arroz y que se cree una hoja con el nombre del producto y que luego los datos que pertenecen a este producto se peguen en el siguiente orden en la hoja nueva creada el nombre de producto en la celda "B10" y que después los datos de los movimientos se carguen en la plantilla la fecha en la columna "A", la serie en la columna "B", numero de factura en la columna "D" y si el producto es una entrada en la columna "F" y si el producto es una salida en la columna "G" el detalle de que si el producto es una entrada o una salida esta en la hoja de la base de datos en la columna
Adicional a este las hojas tienen como numero máximo 40 celdas si los registros superan este numero que se cree una nueva hoja es posible esto?
este es la forma como he estado trabajando con una macro que tengo pero el problema es que el producto puede tener mas de 40 registros y no me genera una nueva hoja este el ejemplo que he estado utilizando hasta ahora pero solicito de su ayuda para hacerlo mas rápido y practico
como puede ver hay una celda de color verde hay pego el código del producto de hay un botón que ejecuta la macro en la cual todos estos datos los pega en una hoja creada con el nombre del producto acá las entradas y las salidas están separadas en columnas diferentes es como lo estoy trabajando actualmente
este es el código que utilizo para ejecutar
On Error Resume Next
Dim dato As String
dato = Range("C2").Value
Range("a6:z" & Range("b65000").End(xlUp).Row).AutoFilter field:=6, Criteria1:=dato, Operator:=xlFilterValues
'para mover la ficha al final
Sheets("PRIN").Select
Sheets("PRIN").Copy Before:=Sheets(1)
Sheets("PRIN (2)").Move After:=Sheets(Sheets.Count)
'para copiar los datos filtrados
Sheets("datos").Select
Range("E7:E7273").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("PRIN (2)").Select
Range("A17").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets("datos").Select
Range("B7:B7273").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("PRIN (2)").Select
Range("B17").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
'copiar el nombre del producto
Sheets("datos").Select
Range("C2").Select
Selection.Copy
Sheets("PRIN (2)").Select
Range("C8").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
'para cambiar el nombre del producto con la variable de la celda
Sheets("PRIN (2)").Select
Dim oldname As String
oldname = "PRIN (2)"
Dim newname As String
newname = Range("b10").Value
Dim name As Worksheet
Set sheet = Application.ActiveWorkbook.Worksheets(oldname)
sheet.name = newname
gracias por la atención prestada
slds
Robert