Buenos días, necesito una macro para copiar datos filtrados..

Necesito la colaboración de uno de los expertos en macros, requiero una macro para lo siguiente: Tengo una base de datos en la hoja1, la cual tiene 8 columnas y tiene mas de 40 mil filas, entre los datos de las columnas estas FECHA, MONTO EN PESOS, PRODUCTO, DESCRIPCIÓN, NUMERO DE CUENTA, ENTIDAD, IDENTIFICACIÓN CLIENTE, CIUDAD, PROVINCIA, inicialmente deseo que la macro:

1. Pueda filtrar, por numero de identificación, por fecha, monto o producto, cualquiera de esos.

2. Una vez que tenga los datos filtrados, que al ejecutar una macro, me copie en la HOJA2, unicamente los datos filtrados. Y si es posible que me pregunte conque nombre quiero guardar la hoja.....

3. Que al volver aplicar nuevamente filtro, los nuevos datos me los copie en la hoja3.

Muchas gracias.....

1 respuesta

Respuesta
1

Como estás vamos por parte, una forma de buscar los datos que pones en un combo para filtrar es:

Dim Quebusco0 As String
Dim Quebusco1 As String
Dim Quebusco2 As String
Dim Quebusco3 As String
Dim Quebusco4 As String
Dim Quebusco5 As String
Dim Quebusco6 As String
Dim filabusqueda As String
filabusqueda = 2
'la variable Que guarda el dato ingresado
Quebusco0 = TextCuenta.Value
Quebusco1 = ComboProveedor.Value
Quebusco2 = ComboComprobante.Value
Quebusco3 = ComboTipo.Value
Quebusco4 = TextPrefijo.Value
Quebusco5 = TextNumero.Value
Quebusco6 = "Anulada"
' busca en la hoja dbcomp los datos de los combo y texbox para determinar si hay duplicados
While Sheets("dbcomp").Cells(filabusqueda, 2) <> Empty
If Quebusco0 = Sheets("dbcomp").Cells(filabusqueda, 2).Value And _
Quebusco1 = Sheets("dbcomp").Cells(filabusqueda, 3).Value And _
Quebusco2 = Sheets("dbcomp").Cells(filabusqueda, 4).Value And _
Quebusco3 = Sheets("dbcomp").Cells(filabusqueda, 5).Value And _
Quebusco4 = Sheets("dbcomp").Cells(filabusqueda, 6).Value And _
Quebusco5 = Sheets("dbcomp").Cells(filabusqueda, 7).Value And _
Quebusco6 <> Sheets("dbcomp").Cells(filabusqueda, 13).Value Then
'si se encuentra el dato puede mostrar un mensaje de error como el siguiente
MsgBox "Dato duplicado"
'se posiciona en la celda nuevamente
ComboProveedor.SetFocus
Exit Sub
Else
filabusqueda = filabusqueda + 1
End If
Wend
'Copia los datos en la hoja ingreso comprobante si la fac es cuenta corriente
ActiveSheet.Unprotect Password:="1610"
If CheckBox1.Value = True Then
Sheets("ingreso comprobante").Select
filalibre = ActiveSheet.Range("c65536").End(xlUp).Row + 1
Cells(filalibre, 3) = CDate(TextFecha)
Cells(filalibre, 4) = TextCuenta.Value
Cells(filalibre, 5) = ComboProveedor.Value
Cells(filalibre, 6) = ComboComprobante.Value
Cells(filalibre, 7) = ComboTipo.Value
Cells(filalibre, 8) = TextPrefijo.Value
Cells(filalibre, 9) = TextNumero.Value
Cells(filalibre, 10) = TextImporte.Value
End If

Para adicionar una hoja el código es:

Workbooks(6). Sheets. Add

Para cambiar nombre a pestañas de nombre de hojas de excel el código es: (aca se hace igual al valor de un rango)

Sheets(6).Name = Range("a1").Value

En www.programarexcel.blogspot.com. encontraras varios ejemplos que puedes aplicar a tu proyecto bájalos y modifícalos según necesites.

Añade tu respuesta

Haz clic para o