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 :

Traitement de doublons sur plusieurs colonnes d'un tableau à remplissage avec formulaire


Sujet :

Macros et VBA Excel

  1. #1
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Juillet 2014
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2014
    Messages : 15
    Points : 8
    Points
    8
    Par défaut Traitement de doublons sur plusieurs colonnes d'un tableau à remplissage avec formulaire
    Bonjour à tous,

    Je suis en train de travailler sur un fichier excel permettant de faire des remontées d'anomalies.
    Ces dernières se font grâce à un formulaire (avec textbox + combobox).
    Elles alimentent un tableau où je souhaite qu'il n'y ait pas de doublons.
    Exemple :
    J'ai 10 cases à remplir dans mon formulaire pour alimenter les 10 colonnes (de B à K) de mon tableau
    Si deux lignes ont des valeurs identiques dans les colonnes D, E, F, G et I alors, elles sont considérées comme deux lignes doublons et je souhaite que cela n'arrive pas.
    Je me suis donc créer un module :
    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
    32
    33
    34
    35
    36
    Sub eliminer_doublons()
    Sheets("Feuil5").Activate
    Sheets("Feuil5").Range("D3").Select
        Do Until ActiveCell = UserForm1.ComboBox1.Value Or ActiveCell = ""
        ActiveCell.Offset(1, 0).Select
        Loop
        If ActiveCell = UserForm1.ComboBox1.Value Then
    Sheets("Feuil5").Range("E3").Select
        Do Until ActiveCell = UserForm1.ComboBox2.Value Or ActiveCell = ""
        ActiveCell.Offset(1, 0).Select
        Loop
        If ActiveCell = UserForm1.ComboBox2.Value Then
    Sheets("Feuil5").Range("F3").Select
        Do Until ActiveCell = UserForm1.ComboBox3.Value Or ActiveCell = ""
        ActiveCell.Offset(1, 0).Select
        Loop
        If ActiveCell = UserForm1.ComboBox3.Value Then
    Sheets("Feuil5").Range("G3").Select
        Do Until ActiveCell = UserForm1.TextBox4.Value Or ActiveCell = ""
        ActiveCell.Offset(1, 0).Select
        Loop
        If ActiveCell = UserForm1.TextBox4.Value Then
    Sheets("Feuil5").Range("H3").Select
        Do Until ActiveCell = UserForm1.ComboBox4.Value Or ActiveCell = ""
        ActiveCell.Offset(1, 0).Select
        Loop
        If ActiveCell = UserForm1.ComboBox4.Value Then
    MsgBox "Cette anomalie a déjà été remontée."
    Else
    MsgBox "Merci ! Votre anomalie a bien été remontée."
    End If
    End If
    End If
    End If
    End If
    End Sub
    Enfin, quand je valide mon formulaire, voici ce que fait mon bouton de validation :
    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
    Private Sub CommandButton1_Click()
    If TextBox1 = "" Or TextBox2 = "jj/mm/aaaa" Or TextBox4 = "" Or TextBox5 = "" Or ComboBox1 = "Sélectionner une Enseigne" Or ComboBox2 = "Sélectionner un Entrepôt" Or ComboBox3 = "Sélectionner une Strate" Or ComboBox4 = "" Or ComboBox5 = "" Then
    MsgBox ("Toutes les informations ne sont pas remplies.")
    Else
    If Sheets("Feuil5").Range("B3") = "" Then
    Sheets("Feuil5").Range("B3") = TextBox1
    Else
    If Sheets("Feuil5").Range("B3") <> "" Then
    eliminer_doublons
    Else
    Sheets("Feuil5").ListObjects(1).ListRows.Add
    End If
    End If
    Dlt = Sheets("Feuil5").Range("D1048576").End(xlUp).Row
    Sheets("Feuil5").Range("B" & Dlt) = TextBox1
    Sheets("Feuil5").Range("C" & Dlt) = TextBox2.Value
    TextBox2.Value = Format(TextBox2, "mm/dd/yyyy")
    Sheets("Feuil5").Range("D" & Dlt) = ComboBox1
    Sheets("Feuil5").Range("E" & Dlt) = ComboBox2
    Sheets("Feuil5").Range("F" & Dlt) = ComboBox3
    Sheets("Feuil5").Range("G" & Dlt) = TextBox4
    Sheets("Feuil5").Range("H" & Dlt) = TextBox5
    Sheets("Feuil5").Range("I" & Dlt) = ComboBox4
    Sheets("Feuil5").Range("J" & Dlt) = ComboBox5
    Unload UserForm1
    End If
    End Sub
    Quand je créé une ligne doublon dans le formulaire et que je clique sur le bouton de validation, j'ai le MsgBox "Merci ! Votre anomalie a bien été remontée." qui apparaît, POURTANT ma ligne ne s'est pas insérée dans le tableau...
    Pouvez-vous m'aider

    Merci par avance, n'hésitez pas si besoin du fichier !

    Bonne journée,

    ClemenceI

  2. #2
    Inactif  

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2012
    Messages
    4 904
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2012
    Messages : 4 904
    Points : 10 168
    Points
    10 168
    Billets dans le blog
    36
    Par défaut
    Si je réponds qu'Excel n'est pas fait pas fait pour gérer des données; il y en a qui vont penser que je ne réponds pas à la question.

    Dans Excel on peut faire un filtre avancé avec Extraction sans doublon dans une autre feuille. Tu prends ta feuille, tu extrais sans doublon dans une nouvelle feuille, tu effaces ta feuille initiale, tu renommes ta nouvelle feuille.

    C'est bien plus simple que toutes les simagrées avec des macros inutilement superfétatoires comme disait Jièl Goubert. Cela ne prend que quelques minutes à la fin de la journée.

Discussions similaires

  1. Selectionchange sur plusieurs colonnes et gestion des doublons
    Par nananinanana dans le forum Macros et VBA Excel
    Réponses: 17
    Dernier message: 23/02/2017, 11h47
  2. [AC-2010] Recherche doublons sur plusieurs colonnes
    Par David_18 dans le forum Access
    Réponses: 11
    Dernier message: 19/05/2014, 19h15
  3. doublons sur plusieurs colonnes
    Par sheira dans le forum Débuter
    Réponses: 25
    Dernier message: 01/12/2010, 09h37
  4. Filtrer les doublons sur plusieurs colonnes
    Par henri228 dans le forum Conception
    Réponses: 2
    Dernier message: 07/05/2010, 22h21
  5. Réponses: 2
    Dernier message: 06/09/2007, 15h08

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