IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Doublons VBA "ID UNIQUE"


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Invité
    Invité(e)
    Par défaut Doublons VBA "ID UNIQUE"
    Bonjour , j'ai un formulaire que je viens de développer ( merci à ce forum ) et j'ai un problème .
    En fait , je cherche un code qui me permet de ne pas ajouter une ligne si la colonne "A" (qui est un Id ) est répétée .
    et ce code ne doit pas impacter les autres boutons de commande " rechercher " et "fermer" .

  2. #2
    Expert confirmé Avatar de BENNASR
    Homme Profil pro
    Responsable comptable & financier
    Inscrit en
    Décembre 2013
    Messages
    2 974
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Responsable comptable & financier
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2013
    Messages : 2 974
    Par défaut
    Bonjour
    à tester :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Range("A2:A" & Range("A65535").End(xlUp).Row)) Is Nothing Then
    COMPARE = Cells(Target.Row, 1)
    For i = 2 To Range("A65535").End(xlUp).Row - 1
        If Cells(i, 1) = COMPARE Then
            Cells(Target.Row, 1) = ""
            MsgBox ("Attention, vous avez entré un doublon" & vbLf & "Recommencez la saisie")
            Exit Sub
        End If
    Next i
    End If
    End Sub
    Fichiers attachés Fichiers attachés

  3. #3
    Invité
    Invité(e)
    Par défaut
    Merci beaucoup Bennaser pour votre réponse rapide .
    Le code fonctionne mais un autre problème est toujours là , le code n'efface que la cellule de l'id , je voudrais bien avoir un qui efface toute la ligne , s'il vous plait .

  4. #4
    Expert confirmé Avatar de BENNASR
    Homme Profil pro
    Responsable comptable & financier
    Inscrit en
    Décembre 2013
    Messages
    2 974
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Responsable comptable & financier
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2013
    Messages : 2 974
    Par défaut
    bricolage
    je suis qu'un autodidacte
    mais si vous avez 4 colonnes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Range("A2:A" & Range("A65535").End(xlUp).Row)) Is Nothing Then
    COMPARE = Cells(Target.Row, 1)
    For i = 2 To Range("A65535").End(xlUp).Row - 1
        If Cells(i, 1) = COMPARE Then
            Cells(Target.Row, 1) = ""
            Cells(Target.Row, 2) = ""
            Cells(Target.Row, 3) = ""
            Cells(Target.Row, 4) = ""
            MsgBox ("Attention, vous avez entré un doublon" & vbLf & "Recommencez la saisie")
            Exit Sub
        End If
    Next i
    End If
    End Sub

  5. #5
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
            Target.EntireRow.ClearContents

  6. #6
    Invité
    Invité(e)
    Par défaut
    @Bennaser , je sais pas pourquoi mais ce code ne marche pas pour moi , il fonctionne comme le précédant ( il ne supprime que la première colonne )



    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Range("A2:A" & Range("A65535").End(xlUp).Row)) Is Nothing Then
    COMPARE = Cells(Target.Row, 1)
    For i = 2 To Range("A65535").End(xlUp).Row - 1
        If Cells(i, 1) = COMPARE Then
            Cells(Target.Row, 1) = ""
            Cells(Target.Row, 2) = ""
            Cells(Target.Row, 3) = ""
            Cells(Target.Row, 4) = ""
            MsgBox ("Attention, vous avez entré un doublon" & vbLf & "Recommencez la saisie")
            Exit Sub
        End If
    Next i
    End If
    End Sub

    Menhir, merci mais ce code je le place après le THEN ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
            Target.EntireRow.ClearContents

    Excusez-moi, je suis une débutante
    Dernière modification par Invité ; 12/02/2020 à 23h47. Motif: Ajout des balises [CODE] mon code [/CODE] (bouton #)

  7. #7
    Expert confirmé Avatar de BENNASR
    Homme Profil pro
    Responsable comptable & financier
    Inscrit en
    Décembre 2013
    Messages
    2 974
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Responsable comptable & financier
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2013
    Messages : 2 974
    Par défaut
    re
    comme à indiqué menhir (bonjour) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Range("A2:A" & Range("A65535").End(xlUp).Row)) Is Nothing Then
    COMPARE = Cells(Target.Row, 1)
    For i = 2 To Range("A65535").End(xlUp).Row - 1
        If Cells(i, 1) = COMPARE Then
        Target.EntireRow.ClearContents
            MsgBox ("Attention, vous avez entré un doublon" & vbLf & "Recommencez la saisie")
            Exit Sub
        End If
    Next i
    End If
    End Sub
    mais attention ce n'est pas un code mais plutôt l'évenement worksheet_change
    deux clix sur la feuille appropriée et mettre le code
    voila un exemple
    Fichiers attachés Fichiers attachés

  8. #8
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Citation Envoyé par ElenaEva Voir le message
    Menhir , merci mais ce code je le place après le THEN ?
    Quel est le message d'erreur ?

  9. #9
    Expert confirmé Avatar de Patrice740
    Homme Profil pro
    Retraité
    Inscrit en
    Mars 2007
    Messages
    2 478
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mars 2007
    Messages : 2 478
    Par défaut
    Bonjour,
    Citation Envoyé par ElenaEva Voir le message
    Bonjour , j'ai un formulaire que je viens de développer .... .
    Par formulaire qu'entends-tu ? Un formulaire VBA (userform) ou une feuille de calcul ?
    Si c'est une feuille de calcul, tu pourrais simplement empêcher la saisie de doublon à l'aide d'une validation de donnée (pas besoin de VBA).

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XL-2013] Equivalent rechercheV et doublons [VBA]
    Par simon12 dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 01/07/2014, 17h14
  2. [WD17] erreur doublon sur clé unique
    Par labib23dz dans le forum WinDev
    Réponses: 4
    Dernier message: 28/11/2013, 18h04
  3. [XL-2010] vba Calendrier unique
    Par duplaly dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 17/03/2012, 09h25
  4. [XL-2003] pb doublon vba excel 2003
    Par doudou299 dans le forum Excel
    Réponses: 1
    Dernier message: 18/04/2011, 20h16
  5. doublon VBA excel
    Par bigmousse69 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 05/01/2009, 10h58

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo