Comment eviter un doublon dans une base de donné avec du vba

Résolu
cs_inco13 Messages postés 23 Date d'inscription mardi 13 mai 2008 Statut Membre Dernière intervention 14 mars 2009 - 24 juin 2008 à 17:58
cs_inco13 Messages postés 23 Date d'inscription mardi 13 mai 2008 Statut Membre Dernière intervention 14 mars 2009 - 24 juin 2008 à 19:01
bonjour,
je voudrait savoir si il existe un moyn d'eviter des doublons dans une base de donnee exel  avec du vba.
merci

6 réponses

mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
24 juin 2008 à 18:52
voici un bout de code :

'ACTIVATION DU BOUTTON OK
Private Sub ok_Click()

If Destination = "" Or designation = "" Or Calendar = "" Then
  reponse = MsgBox("Vous
n'avez pas remplis certaines informations!", vbCritical, "ATTENTION")
'C 'EST ICI QUE J4EST ENVIE DE
VERIFIR LES DOUBLONS
ElseIf Destination <> "" And designation <> "" And Calendar <> "" Then
 ligne = Cells(Rows.Count, "A").End(xlUp).Row + 1
 Dim HasDupe As Boolean, i As Integer
 
    For i = 1 To ligne - 1
       If Cells(i, 1).Value = Destination And _
           Cells(i, 2).Value = Calendar.Value And
_
           Cells(i, 3).Value = designation Then
               HasDupe = True
               Exit For
       End If
    Next i
    
    If HasDupe Then
        MsgBox "Les données sont déjà indiquée
à la ligne " & i
    Else
       Range("A" & ligne) = Destination
       Range("B" & ligne) = Calendar.Value
       Range("C" & ligne) = designation
    End If
 End If
voyage.Hide
menuppl.Show
End Sub
~
<small>Mortalino ~ [code.aspx?ID=39466 Colorisation
automatique]</small>

@++

le mystérieux chevalier,"Provençal, le gaulois"
Forum Office & VBA
3
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
24 juin 2008 à 18:05
salut,

solution simple :
tu peux appliquer un filtre qui masquera la ligne ayant le doublon
=> menu Données, Filtrer, Filtre élaboré, choisi la plage, et coche extraction sur place et sans doublons

Solution plus lourde :
parcourir à l'aide de 2 boucles imbriquées ta plage de donnée

@++

le mystérieux chevalier,"Provençal, le gaulois"
Forum Office & VBA
0
cs_inco13 Messages postés 23 Date d'inscription mardi 13 mai 2008 Statut Membre Dernière intervention 14 mars 2009
24 juin 2008 à 18:10
 merci
 d'avoir repondu en fait je demande sa c'est pour un formulaire et pour m'enpecher l'utilisateur  de  reutiliser 2 fois les meme donnée dans le cas de la sollution la plus lourde quel serait le code a adapter.sachand que g troi variable dans dans mon formulaire
0
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
24 juin 2008 à 18:15
As-tu plus d'infos ?

Quelle est la plage de données de ta recherche de doublons ?
Comment comptes tu insérer la données.

Tu parles de 3 variables, c'est à dire ?

@++

le mystérieux chevalier,"Provençal, le gaulois"
Forum Office & VBA
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_inco13 Messages postés 23 Date d'inscription mardi 13 mai 2008 Statut Membre Dernière intervention 14 mars 2009
24 juin 2008 à 18:33
'ACTIVATION DU BOUTTON ANNULER
Private Sub annuler_Click()
reponse = MsgBox("Voulez Vous vraiment quitter?", vbYesNo, "QUITTER")
If vbYesNo = oui Then
 
 Range("destination").Clear
 Range("calendar").Clear
 Range("designation").Clear


  Unload voyage
  Else
  End If




End Sub


'COMPARAISON DE LA DATE DU CALENDRIER ET DE LA DATE DU JOUR


Private Sub Calendar_Click()
If Calendar.Value <= Worksheets("acceuil").Range("jour") Then
reponse = MsgBox("la date du voyage ne peut pas être inférieur" _
& vbCrLf & "à la date d'aujourd'hui ou identique à celle-ci !", vbCritical, "ERREUR DE DATE")
Else
End If
End Sub


'ACTIVATION DU BOUTTON OK
Private Sub ok_Click()


If destination "" Or designation "" Or Calendar = "" Then
  reponse = MsgBox("Vous n'avez pas remplis certaines informations!", vbCritical, "ATTENTION")
C'EST ICI QUE J4EST ENVIE DE VERIFIR LES DOUBLONS
ElseIf destination <> "" And designation <> "" And Calendar <> "" Then
 ligne = Cells(Rows.Count, "A").End(xlUp).Row + 1
 Range("A" & ligne) = destination
 Range("B" & ligne) = Calendar.Value
 Range("c" & ligne) = designation
 
 End If
voyage.Hide
menuppl.Show
End Sub


met 3 variables sont en rouge et ma plage de recherche est "orga"
0
cs_inco13 Messages postés 23 Date d'inscription mardi 13 mai 2008 Statut Membre Dernière intervention 14 mars 2009
24 juin 2008 à 19:01
merci,
 sa marche
0
Rejoignez-nous