hola,
creo que podria valerte algo parecido a esto:
i por ejemplo suponemos que la columna 'cuit' es la 1ª (A) y el dato
lo ingresas siempre en la 1ª celda vacia de esa columna pega esto en
el modulo de la hoja;
'--pegalo en elmodulo de la hoja (adapta las referencias a la Columna
a la real
'y prueba con copias)
'
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Rows.Count > 1 Then _
[a65536].End(xlUp).Select: Exit Sub
If Target.Column = 1 And _
Target.Row = [a65536].End(xlUp).Row And _
Application.CountIf(Columns(1), Target.Value) > 1 Then _
MsgBox "El cuit ya existe": Target.ClearContents: Target.Select
End Sub
espero te ayude
Un saludo
Ivan
> Tengo una columna llamada cuit (clave unica de identificacion tributaria), en la cual incorporo datos.
> Se puede hacer una macro que me indique que el valor que estoy cargando en la celda
> ya fue consignado anteriormente en esa columna...
otra alternativa... si la introduccion de datos es manual (por parte del usuario):
puedes evitar/prevenir la entrada de datos duplicados usando reglas de validacion:
1) selecciona (p.e.) toda la columna 'A' (o un rango de celdas especifico)
2) (menu) datos / validacion -> configuracion
3) en criterios de validacion / permitir -> seleccionas: personalizada
4) en formula escribes: =contar.si(a:a,a1)=1
notas:
- es [solo] para entradas directas. NO funciona si...
×) se copia desde otro lugar
×) se introducen datos por codigo
- si se trata de un rango especifico... (en la funcion)...
- el primer argumento_rango es absoluto
- la segundo es referencia relativa ->y corresponde a la celda activa dentro de la seleccion<-
p.e. =contar.si($a$8:$d$45,a8)=1
es otra forma (de entre tantas mas y depende de las necesidades reales)
saludos,
hector.
"Héctor Miguel" escribió: