No permitir seriales vendidos

28/09/2007 - 14:04 por GRIEGO59 | Informe spam
Hola,
Tengo una hoja FACTURADEVENTAS donde escribo los Nº de seriales de los
productos que se están vendiendo, pero si por error escribo un serial de un
producto ya vendido?
Como puedo informarle a Excel que ese producto ya fue vendido y no debe
permitir que se escriba ese serial?

En ese mismo libro, tengo una hoja COMPRAS que muestra todos los productos
comprados, vendidos y no vendidos con las columnas:
Serial del producto
Fecha de compra del producto
Número de factura de compra del producto
Descripción del producto
Costo del producto
Precio de venta presupuestado del producto
Fecha de venta del producto
Número de factura de venta del producto
Precio de venta final del producto
Nombre del Proveedor del producto
Ubicados en las columnas A, B, C, D, E, F, G, H, I, J, respectivamente, la
fila 1 es para títulos.

El rango donde incluyo los seriales que se están vendiendo en la hoja
FACTURADEVENTAS es B4:B18

Por los momentos se me ocurre crear una hoja adicional PRODUCTOSNOVENDIDOS y
cada vez que se vaya emitir una factura de ventas, copiar el contenido de la
hoja COMPRAS, ordenar por fecha de venta, eliminar las líneas sin fecha de
venta y copiar la columna de códigos en la hoja FACTURADEVENTA en un rango
preestablecido para eun combo del rango B4:B18, pero me parece que debe haber
una forma mas sencilla y rápida.

Gracias por su ayuda.
Griego59
 

Leer las respuestas

#1 Héctor Miguel
29/09/2007 - 09:48 | Informe spam
hola, Darío !

puedes evitar la hoja adicional y el combo si aprovechas el evento '_change' de la hoja "facturadeventas"
-> OJO: como ya tienes una propuesta para utilizar ese evento, es necesario hacerle unas adaptaciones

[segun parece] la posible repeticion de seriales pudiera ser por alguna factura anterior o [incluso] en la *actual* -???-

copia/pega las siguientes lineas [modificadas de la propuesta anterior]
-> en el modulo de codigo de la hoja "facturadeventas"

y... si cualquier duda [o informacion adicional]... comentas ?
saludos,
hector.

Private Sub Worksheet_Change(ByVal Target As Range)
Dim Msj As String
If Intersect(Target, Range("e2,b4:b18")) Is Nothing Then Exit Sub
If IsEmpty(Target) Then Exit Sub
With Worksheets("clientes")
If Target.Address <> "$E$2" Then Goto Seriales
If Not Evaluate("iserror(f2)") Then Exit Sub
If MsgBox("El codigo solicitado: " & Target & " NO existe..." & vbCr & _
"Confirmas que debe darse de alta ?", vbYesNo, _
"Alta de clientes...") = vbNo Then Exit Sub
SendKeys "{down " & Application.CountA(.[a:a]) - 1 & "}" & Target & "{tab}"
.ShowDataForm
.[a:b].Sort Key1:=.[a2], Order1:=xlAscending, Header:=xlYes
Target.Select
Exit Sub
Seriales:
If Application.CountIf([b4:b18], Target) > 1 Then Msj = " esta duplicado !!!"
If Val(Application.VLookUp(Target, .[a:g], 7, 0)) > 0 Then Msj = " es un producto YA facturado !!!"
End With
If Msj <> "" Then MsgBox "El serial " & Target & Msj: Target.ClearContents
End Sub

__ la consulta original __
Tengo una hoja FACTURADEVENTAS donde escribo los Nº de seriales de los productos que se estan vendiendo
pero si por error escribo un serial de un producto ya vendido?
Como puedo informarle a Excel que ese producto ya fue vendido y no debe permitir que se escriba ese serial?

En ese mismo libro, tengo una hoja COMPRAS que muestra todos los productos comprados, vendidos y no vendidos con las columnas:
Serial del producto
Fecha de compra del producto
Numero de factura de compra del producto
Descripcion del producto
Costo del producto
Precio de venta presupuestado del producto
Fecha de venta del producto
Nºmero de factura de venta del producto
Precio de venta final del producto
Nombre del Proveedor del producto
Ubicados en las columnas A, B, C, D, E, F, G, H, I, J, respectivamente, la fila 1 es para titulos.

El rango donde incluyo los seriales que se estan vendiendo en la hoja FACTURADEVENTAS es B4:B18

Por los momentos se me ocurre crear una hoja adicional PRODUCTOSNOVENDIDOS
y cada vez que se vaya emitir una factura de ventas, copiar el contenido de la hoja COMPRAS
ordenar por fecha de venta, eliminar las lineas sin fecha de venta y copiar la columna de codigos
en la hoja FACTURADEVENTA en un rango preestablecido para eun combo del rango B4:B18
pero me parece que debe haber una forma mas sencilla y rapida.

Preguntas similares