Comment eviter un doublon dans une base de donné avec du vba [Résolu]

Messages postés
23
Date d'inscription
mardi 13 mai 2008
Statut
Membre
Dernière intervention
14 mars 2009
- - Dernière réponse : 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
Afficher la suite 

6 réponses

Meilleure réponse
Messages postés
6789
Date d'inscription
vendredi 16 décembre 2005
Statut
Membre
Dernière intervention
21 décembre 2011
16
3
Merci
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

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 193 internautes nous ont dit merci ce mois-ci

Commenter la réponse de mortalino
Messages postés
6789
Date d'inscription
vendredi 16 décembre 2005
Statut
Membre
Dernière intervention
21 décembre 2011
16
0
Merci
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
Commenter la réponse de mortalino
Messages postés
23
Date d'inscription
mardi 13 mai 2008
Statut
Membre
Dernière intervention
14 mars 2009
0
Merci
 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
Commenter la réponse de cs_inco13
Messages postés
6789
Date d'inscription
vendredi 16 décembre 2005
Statut
Membre
Dernière intervention
21 décembre 2011
16
0
Merci
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
Commenter la réponse de mortalino
Messages postés
23
Date d'inscription
mardi 13 mai 2008
Statut
Membre
Dernière intervention
14 mars 2009
0
Merci
'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"
Commenter la réponse de cs_inco13
Messages postés
23
Date d'inscription
mardi 13 mai 2008
Statut
Membre
Dernière intervention
14 mars 2009
0
Merci
merci,
 sa marche
Commenter la réponse de cs_inco13