No duplicar un dato en una hoja excel

Lo que quiero es saber si hay alguna otra opción que no sea el CONTAR. SI, para poder gestionar la hoja de excel donde trabajo con bastantes facturas. Lo que realmente me gustaría es saber si puedo mejorar este excel. Quisiera que cuando introduzca en la celda de factura el número, me avise si esta duplicado o no, y para eso imagino que tendrá que estar relacionado el la celda de proveedor.

Ya es la tercera vez que hago la consulta y el último me comenta que con una MACRO. ¿Alguien sabe como hacerlo?

1 Respuesta

Respuesta
3

Pon esta macro en el ventó change de la hoja en la que estás trabajando. En mi ejemplo estoy vigilando los valores introducidos en la columna A. Si se introduce algún valor repetido te lo rechazará borrándolo.

(Recuerda finalizar y puntuar mi labor)

Private Sub Worksheet_Change(ByVal Target As Range)

valor = Target.Value

contarsi = Application.WorksheetFunction.CountIf(Columns(1), valor)

If contarsi > 1 Then

MsgBox "el dato está duplicado y no se admite"

Target.Select

Target.ClearContents

End If
End Sub

Disculpa mi ignorancia, pero que es el ventó change???? Gracias.

Quise decir evento y haz lo siguiente:

Pulsa ALT + F11 y con esto abrirás el editor de visual basic

A la izquierda tendrás una estructura de tu archivo excel mostrándote cada una de tus hojas de trabajo. Si no lo ves pulsa en Ver---explorador de proyectos.

Ahora haz doble click en la hoja en la que quieres instalar este control, por ejemplo hoja1. Se habilitará una zona blanca en la parte derecha de pantalla que es donde tienes copiar toda mi macro, y ya está.

He intentado poner la macro, pero quisiera saber, si la columna corresponde a otra letra, tengo que cambiar donde pones Columns (1), por la columna que corresponda???

También quisiera saber, si se puede hacer que tenga referencia con el número de proveedor, ya que me encuentro con varios proveedores que tienen el mismo número de factura.

Y por último, cuando introduzca la MACRO, como la grabo????

Gracias.

Así es, si el control lo vas a hacer en otra columna cambia ese dígito por el que corresponde.

La macro se graba sola cuando grabes tu hoja de cálculo van conjuntamente.

En cuanto a la segunda cuestión, en tu caso, pondría esta macro para que te avisara pero te dejara continuar:

Private Sub Worksheet_Change(ByVal Target As Range)
valor = Target.Value
contarsi = Application.WorksheetFunction.CountIf(Columns(1), valor)
If contarsi > 1 Then
MsgBox "el dato está duplicado téngalo en cuenta"
End If
End Sub

En vez de columns(1) puedes poner columns("a:a"), por ejemplo

Recuerda finalizar y puntuar

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas