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 :

Créer une Macro de saisie de données avec vérification des doublons [XL-365]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2019
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2019
    Messages : 2
    Par défaut Créer une Macro de saisie de données avec vérification des doublons
    Bonsoir à tous,
    Je viens de créer une macro pour la création d’une banque de données. Elle retranscrit des fiches papiers en listes sur Excel 2013.
    Afin de faciliter l’opération de retranscription, j’ai opté pour une feuille Excel qui reproduit la mise en page de la fiche papier. Son contenu est ensuite copié en feuille 2 ‘Recueil données’ par la macro Ajouter_fiche. Ainsi les fiches sont en lignes et les variables en colonnes.

    Parmi les variables, il y a le numéro de la fiche (Formulaire!C5).
    J’aimerai créer un événement Worksheet_Change qui me permet de vérifier que le nombre saisie dans la case Formulaire!C5 n’est pas déjà existant dans la colonne ‘Recueil données’!A:A

    Pour y parvenir j’ai trouver cette ligne de code VBA dans la partie tutoriel, mais je n’arrive pas à l’adapter à mon document.

    La voici :

    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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    Option Explicit  
    Private Sub Worksheet_Change(ByVal Target As Excel.Range)
    Dim Colonne As Integer
    Dim Adresse As String
    'On sort si plus d'une cellule a été modifiée
    If Target.Count > 1 Then Exit Sub
    'On sort si la cellule modifiée est vide
    If Target.Value = "" Then Exit Sub
     
    'Définit la colonne à vérifier (1=Colonne A, 2=colonne B ...etc...)
    Colonne = 1
     
    'Vérifie si c'est la colonne cible a été modifiée
    If Target.Column = Colonne Then
     
        'Recherche si la nouvelle donnée existe déjà dans la colonne.
        Adresse = Columns(Colonne).Find(What:=Target.Value, After:=Target.Offset(1, 0), LookAt:=xlWhole, _
            SearchDirection:=xlNext).Address
     
        'Si l'adresse de cellule trouvée ne correspond pas à la cellule modifiée, cela
        'signifie qu'il y a un doublon dans la colonne.
        If Adresse <> Target.Address Then
     
            MsgBox "La donnée '" & Target & "' existe déjà dans la cellule " & Adresse
            'Suppression de la donnée
            Target.Value = ""
            Target.Select
     
        End If
    End If
    End Sub
    Pouvez-vous m’éclairer svp ?

    Arnaud M

  2. #2
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2019
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2019
    Messages : 2
    Par défaut
    Réponse trouvée, il suffisait de paramétrer un contrôle des données sur excel personnalisé avec la commande =NB.SI('Recueil données'!A:A;C5)=0.

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

Discussions similaires

  1. Réponses: 7
    Dernier message: 17/07/2016, 09h44
  2. Réponses: 5
    Dernier message: 20/10/2015, 11h56
  3. Réponses: 2
    Dernier message: 19/05/2014, 14h39
  4. Réponses: 1
    Dernier message: 01/04/2010, 22h23
  5. Réponses: 1
    Dernier message: 08/10/2008, 15h30

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