Excel - Evitar codigo duplicado al dar de alta un nuevo pr

 
Vista:

Evitar codigo duplicado al dar de alta un nuevo pr

Publicado por Eduardo Gomez (1 intervención) el 05/12/2009 22:50:10
Hola a todos.
Mi problema es el siguiente. Quiero dar de alta una serie de productos en una hoja llamada productos mediante el uso de un formulario (el formulario tiene un textbox en el que meto el codigo y otro en el que meto la descripcion y dos botones de comando, uno para validar la entrada y otro para cancelar el formulario). Cada producto nuevo va en una linea diferente de la hoja (en la 1ª columna va el codigo del articulo y en la 2ª el nombre del articulo).

Conforme voy dando de alta los articulos quiero que al salir del textbox del formulario en el que introduzco el codigo del articulo en el caso de que el codigo ya exista previamente en la hoja (es decir que haya dado de alta un producto con ese codigo) me avise mediante un mensaje y no deje continuar el alta del producto. He probado varias cosas y no lo consigo (he encontrado codigo con el uso de while, pero no hay forma de que me funcione). Muchas gracias a todos por este magnifico foro. Dejo mi email por si alguien me puede ayudar:[email protected]

Saludos
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Evitar codigo duplicado al dar de alta un nuevo

Publicado por CarLos (3 intervenciones) el 10/12/2009 18:50:12
Intenta adaptar esto,:

Sub CompruebaDup()

Dim EntrCom As Variant
Dim f As Integer
Set r = Range("A2:A1000") 'Establece rango maximo de datos en columna A1
For n = 1 To r.Rows.Count
If r.Cells(n, 1).Value = Empty Then 'Calcula numero de celdas ocupadas
f = n 'establece contador para bucle
Exit For
End If

Next n

'------------------------------------------------------------------------------

For n1 = 1 To f
EntrCom = Cells(n1, 1).Value 'Almacena valor a comparar mediante bucle

For n2 = 1 To f 'Bucle que compara la variable EntrCom con todos los valores de las celdas
If n1 <> n2 Then 'menos con el suyo
If EntrCom = Cells(n2, 1).Value Then
MsgBox "Entrada en fila A" & n1 & ", repetida con fila A" & n2
End If
Else
Exit For

End If

Next n2
Next n1
End Sub

Detecta duplicados en el rango A2:1000, tendras que darle alguna vuelta para adaptarlo a lo que tu quieres.

Suerte
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar