Verifier l'unicité de l'ID

Bonjour a tous,

Je souhaite créer une macro qui me permet de déterminer si un ID est unique sur la feuille Excel.

Je possède deux colonnes :

  • ID (valeurs numérique)
  • Nom de trames (String)

Il me faudrait une macro qui vérifie que un ID ne possède que un nom de trame assigné et dans le cas contraire m'afficher les trames qui ont le même ID.

Pour y parvenir il faut créer une array? Il me semble qu'il y a déjà une fonction qui s'occupe de vérifier dans un tableau que son ID n'ait qu'un nom unique associé mais je n'arrive pas à comprendre le fonctionnement des tableaux en vba

Merci d'avance de votre aide

David

bonjour,

C'est un peu minimum comme explication... En plus sans fichier que veux-tu qu'on te dise ?

En plus il va falloir faire de la sémantique...

Pour moi Vérifier l'unicité de l'ID ça ne veux pas dire grand chose :

1 - Ou tu veux vérifier dans ta base de donnée qu'il n'y a pas de doublon... Et il y a des outils pour ça... (Données > Supprimer les doublons...)

2 - Sinon c'est que tu veux vérifier la validité de ta saisie AVANT de la transférer dans la BD (en vérifiant que ça ne peux pas créer de doublon)

Si c'est ça que tu veux, déjà le meilleur moyen de ne pas créer de doublon est de laisser VBA attribuer lui-même un N° D'iD

en petit nègr' : ( MAX(Colonne )+1(par exemple)

Même si c'est un composite, normalement VBA est tout à fait capable de faire ça mieux que toi !

A ma connaissance il n'y a qu'un cas ou tu es obligé de saisir toi-même une iD, c'est quand une partie de ta base de donnée a été archivée mais que tu ne dois pas attribuer un N° ayant déjà existé (dans tes archives) C'est le cas notamment pour beaucoup d'association qui ne doivent pas recréer un N° de licence ayant déjà existé dans le passé... Sauf à re-licencier le même individu.

Bon de toute façon là oui, il faut parcourir la liste des iD existant et l'utilisation des Array ou des Dictionnary est souhaitable.

Mébon... En l'absence de fichier joint je ne peux pas t'en dire plus...

En plus il faut qu'on sache comment tu risques de créer des doublons : en utilisant un UserForm ou par saisie directe dans le tableau ?

En plus ça serait bien qu'on sache dès le départ ce que tu veux faire de ta recherche : Si l'iD existe déjà tu dois en créer une autre ou au contraire tu dois arrêter tout et saisir sur la ligne qui existe déjà ?

Vala,vala...

A+

Bonjour,

il est oùùùùùùù le fichier exemple ?

P.

Re bonsoir,

Merci pour la réponse

C'est plus simple que tu ne le décrit ! Voici un exemple du tableau en pièce jointe.

Il me faut vérifier que un numéro ID n'est associé qu'à un seul nom de trame (les valeurs sont ajoutés directement sur le tableau)

Si un numéro d'un ID est associé à deux noms de trames différents, il faut alors les mettre en défaut (comme pour l'ID mis en jaune dans le fichier fourni).

Cela m'évite de devoir vérifier manuellement que tout est en ordre, surtout qu'il y a plus de 200 ID différent dans mon fichier complet !

Je vous remercie d'avance pour votre aide

78book1.xlsx (8.73 Ko)

Bonjour,

avec un format conditionnel dans ta colonne B, tu verras de suite ce qui est > 1 (en quantité)

=NB.SI($B$2:$B$14;$B2)>1

P.

Bonsoir,

Donc on est dans le cas N° 1 c'est plutôt une recherche à postériori.

Une MFC fera l'affaire : Voir ici

A+

Merci ! La réponse était encore plus simple que je me l'imaginais

Rechercher des sujets similaires à "verifier unicite"