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

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

Messages postés
6786
Date d'inscription
vendredi 16 décembre 2005
Statut
Membre
Dernière intervention
21 décembre 2011
18
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
Messages postés
6786
Date d'inscription
vendredi 16 décembre 2005
Statut
Membre
Dernière intervention
21 décembre 2011
18
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
Messages postés
23
Date d'inscription
mardi 13 mai 2008
Statut
Membre
Dernière intervention
14 mars 2009

 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
Messages postés
6786
Date d'inscription
vendredi 16 décembre 2005
Statut
Membre
Dernière intervention
21 décembre 2011
18
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
Messages postés
23
Date d'inscription
mardi 13 mai 2008
Statut
Membre
Dernière intervention
14 mars 2009

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

merci,
 sa marche