Bonjour à tous je suis nouveau sur excel vba et je ne comprends pas grand chose aux lignes de code, je travail actuellement sur une feuille excel et je voudrais pouvoir enregistrer les données d'une feuille dans une autre qui sert de bdd (ce qui j'ai relativement réussi à faire) par contre pour éviter les doublons j'aimerais qu'on ne puisse entrer une date qu'une seule fois. En cherchant sur le net j'ai réussi à rédiger un code qui à mon avis aurait du me permettre de contraindre les date en question. Cependant il ne marche pas et bloque automatiquement toute tentative de saisie de nouvelles données dans la bdd. Voici le code en question, quelqu'un pourrait m'aider et me dire pourquoi il ne marche pas ? Merci d'avance.
Sub Horaire()
On Error Resume Next
Set rg = Feuil2.Range("A1").EntireColumn.Find(Replace(TextDate, " ", vbNullString), lookat:=xlWhole) 'Cherche la date dans la colonne A de la base de donnée
If Not rg Is Nothing Then 'si rg ne renvoie pas "rien" c'est qu'il y a un doublon
MsgBox "Cette date est déjà existante, opération annulée" 'message à faire apparaitre en cas de doublon de date
Exit Sub 'on sort alors de la fonction pour ne pas enregistrer les données dans la base
Else 'sinon toute la suite du code est faite si la date n'est pas déjà entrée
Feuil2.Activate
Dim lig As Integer
lig = Range("a65568").End(xlUp).Row + 1
Range("a" & lig).Value = Date
Range("b" & lig).Value = Feuil1.Range("J13").Value
Range("c" & lig).Value = Feuil1.Range("J15").Value
Range("d" & lig).Value = Feuil1.Range("J18").Value
Range("e" & lig).Value = Feuil1.Range("J20").Value
Range("f" & lig).Value = Feuil1.Range("J23").Value
Range("g" & lig).Value = Feuil1.Range("J25").Value
Range("h" & lig).Value = Feuil1.Range("J28").Value
Range("i" & lig).Value = Feuil1.Range("J29").Value
End If
End Sub