extraer datos de una BD y eliminarlo segun condicion

4 envíos / 0 nuevos
Último envío
ROY.AREDO
Imagen de ROY.AREDO
Offline
última acción: Hace 12 años 3 meses
alta: 09/12/2011 - 16:15
Puntos: 25
extraer datos de una BD y eliminarlo segun condicion

Srs Buenos Dias si me podrían ayudar con esto. tengo un registro de ventas bien extenso y en una columna le pongo si pagó o esta por cobrar y lo que quiero es que en otra hoja me aparesca solo las facturas por cobrar y cuando en el registro le ponga q ya me cancelaron, en la hoja esa factura se elimine y siempre me quede lo que está por cobrar. espero su ayuda gracias

universoexcel
Imagen de universoexcel
Offline
última acción: Hace 6 años 8 meses
Nivel 1 - 200 puntosNivel 2 - 500 puntos
alta: 25/10/2011 - 19:41
Puntos: 710
Re: extraer datos de una BD y eliminarlo segun condicion

La solución más simple sería que usaras una Tabla Dinámica, y ordenaras en los renglones, el numero de la factura y el indicador si está pagada. Con esto podrías filtrar las facturas que no estén pagadas.

Así cuando una factura se pague, y cambie el indicador en tu hoja original, al refrescar tu tabla dinámica (opimiendo F9), te quedarían de nuevo solo los registros sin pagar.

Visitanos en http://universoexcel.com

juandudas
Imagen de juandudas
Offline
última acción: Hace 1 año 7 meses
Nivel 1 - 200 puntosNivel 2 - 500 puntosNivel 3 - 1000 puntosNivel 4 - 2000 puntos
alta: 27/12/2006 - 23:36
Puntos: 2588
filtro

puedes probar también con un filtro directamente aplicado en tu BD

así evitas copiar los datos a otro lugar.

mi cabeza es un mar de dudas

xoan ninguen
Imagen de xoan ninguen
Offline
última acción: Hace 3 años 9 meses
Nivel 1 - 200 puntosNivel 2 - 500 puntos
alta: 19/01/2011 - 10:03
Puntos: 835
Re: extraer datos de una BD y eliminarlo segun condicion

La mejor forma es con Tablas dinámicas, de lejos. Hacerlo de otra forma (Macros, al menos está clasificado en este epígrafe) es matar moscas a cañonazos, pero en una especie de programación medieval podrías usar la función SI de excel...

Suponiendo, que igual es mucho suponer, que tienes en la columna A los importes y en la columna B el texto "PAGADO" (no importará el que indique que está por cobrar)

=SI(MAYUSC(HojaXXX!B1)="PAGADO";0;HojaXXX!A1)

Donde HojaXXX es la hoja en la que tienes los datos de registro.

Así podrás hacer una suma rápida, los que están pagados se muestran con importe 0, y los que están por cobrar, se muestra el importe...

Caso contrario, macro... (usar bajo la responsabilidad de cada cual, no se admiten reclamaciones de ningún tipo por pérdida de datos. Para probar, mejor en una copia)

Sub CepillateLaFactura()
Dim lgFila As Long
Dim strTextoPagado As String

On Error GoTo ControlErrores
lgColumna = VBA.CLng(InputBox("Indique el número de columna en la que está el indicador de PAGO (ej: A=1, B=2,...)"))
strTextoPagado = InputBox("Indique el texto que indica PAGO REALIZADO", , "PAGADO")

For lgFila = ActiveSheet.UsedRange.Rows.Count To 1 Step -1
If VBA.UCase(VBA.CStr(ActiveSheet.Cells(lgFila, lgColumna).Value)) = strTextoPagado Then
ActiveSheet.Rows(lgFila).Delete Shift:=xlUp
End If
Next lgFila

ControlErrores:
Err.Clear
On Error GoTo 0

End Sub

Saludos

-----------------------------------------------------------------

www.TrazEX.com (soluciones sobre Excel)