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 sur une ligne complète


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Inscrit en
    Avril 2007
    Messages
    1 247
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 1 247
    Par défaut Doublons sur une ligne complète
    Bonjour rdurupt

    J'ai lu cette discussion.
    Je sais que je vais te replonger dans le passé. mais j'aui repris ton code vba sur les doublons (trés efficace d'ailleurs .
    Mais je souhaiterais afficher un msgbox dans le cas ou le code aurais supprimé des doublons.
    Et je ne sais pas ou inserer ce msgbox...
    Pourrais tu m'aider ?
    Merci d'avance

  2. #2
    Membre éprouvé
    Homme Profil pro
    Technicien bureau d'études
    Inscrit en
    Novembre 2015
    Messages
    118
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Technicien bureau d'études

    Informations forums :
    Inscription : Novembre 2015
    Messages : 118
    Par défaut
    Bonjour facteur.
    Ce que tu peux faire c'est de calculer ton nombre de lignes en début de procédure, et vérifier le nombre en fin.
    Si tu as une différence tu fais afficher une Msgbox.

    Ca pourrait donner

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Dim DerLigDeb as Long, DerLigFin as Long
     
    DerLigDeb = Cells(Rows.Count, 1).End(xlup).row
     
    Tu suis la procédure de suppression des doublons.
     
    DerLigFin = Cells(Rows.Count, 1).End(xlup).Row
    If DerLigFin <> DerLigDebut Then Msgbox "Des doublons ont été supprimés"
    J'espère que tu as pu suivre mon raisonnement.

  3. #3
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    J'aurais préféré faire un voyage dans le temps au volant d'une belle bagnole!


    La MethodeHighlander permet de définir si les informations qui lui sont passés en paramètres ont déjà été rencontrer.

    La MethodeHighlander ce comporte comme un monnayeur on entre le pièces dans la machine, un mécanisme plus ou moins complexe valide si il s'agit d'une bonne ou mauvaise et place les mauvais dans un sac. Il suffit d'analyser le contenu du sac!

    C'est un check-point qui implémente un tableau!
    Avec ce tableau on connait ce qui va être supprimé!
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    For L = UBound(RowsSup) To 1 Step -1
       Msg =Msg & MyRange(RowsSup(L), 1) & vbcrlf
    DeleteRow ActiveSheet.Range(MyRange(RowsSup(L), 1).Address)
    Next
    Msgbox msg
    Dernière modification par Invité ; 28/02/2016 à 12h17.

  4. #4
    Membre éprouvé
    Inscrit en
    Avril 2007
    Messages
    1 247
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 1 247
    Par défaut
    Merci pour ces reponses :
    thebenoit59 : je garde ton code sous le coude. Il pourra m 'etre utile dans une autre procédure

    rdurupt :ton bout de code m'affiche les données qu 'il a supprimé. alors que je souhaiterais voir apparaitre un msgbox tu type :
    "données déjà enregistrées
    .
    J'ai donc modifié ton code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    For L = UBound(RowsSup) To 1 Step -1
    'msg = msg & MyRange(RowsSup(L), 1) & vbCrLf
    msg = "Données déjà enregistrée"
       DeleteRow ActiveSheet.Range(MyRange(RowsSup(L), 1).Address)
    Next
     
    MsgBox msg
    Le code fonctionne trés bien lorsque j'ai des doublons .
    Mais le soucis, c'est que, même lorsque je n'aie pas de doublons, une boite de dialogue vide "sans commentaire" s'affiche.

    Comment faire pour que cette boite de dialogue vide ne s'affiche pas lorsque je n'aie pas de doublons?
    Merci

    Et en matiere de voyage dans le temps, quelle période aurais tu aimé visité ... ?

  5. #5
    Invité
    Invité(e)
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    For L = UBound(RowsSup) To 1 Step -1
    'msg = msg & MyRange(RowsSup(L), 1) & vbCrLf
    DeleteRow ActiveSheet.Range(MyRange(RowsSup(L), 1).Address)
    Next
     if UBound(RowsSup) >0 then msg = "Données déjà enregistrée : " & UBound(RowsSup)
    Et en matiere de voyage dans le temps, quelle période aurais tu aimé visité ... ?
    avant l'arrivée de l'informatique je me serais ennuyé, et dans le futur je serais incompétent alors difficile à dire!

  6. #6
    Membre éprouvé
    Inscrit en
    Avril 2007
    Messages
    1 247
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 1 247
    Par défaut
    Salut rdurupt
    Concernant ton code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    For L = UBound(RowsSup) To 1 Step -1
    'msg = msg & MyRange(RowsSup(L), 1) & vbCrLf
    DeleteRow ActiveSheet.Range(MyRange(RowsSup(L), 1).Address)
    Next
     if UBound(RowsSup) >0 then msg = "Données déjà enregistrée : " & UBound(RowsSup)
    Si mon fichier n'a pas de doublons, je n'aie pas de boite de dialogue vide qui'affiche: c'est donc ok
    Par contre, si mon fichier a des doublons, je n'aie pas de boite de dialogue qui me dis "données déjà enregistrée":: donc pas cool..

    N'as tu pas oublié, aprés ton code, les deux lignes ci dessous
    Si j'inserer les deux lignes ci dessus aprés ton code, j'ai un message d'erreur qui s'affiche
    Erreur de compilation : For sans Next"


    Pour répondre à ton voyage dans le passé, je dirais que tu serais celui qui aurait inventé et révolutionné l'informatique.
    En somme tu serais une guest star.. lol

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

Discussions similaires

  1. Doublons sur les lignes details d'une commande
    Par lesaintclezio dans le forum Microsoft Dynamics
    Réponses: 2
    Dernier message: 06/08/2015, 15h42
  2. Réponses: 1
    Dernier message: 25/08/2014, 09h25
  3. [XL-2010] Doublons sur une ligne complète
    Par moi244 dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 07/02/2013, 19h55
  4. Lien sur une ligne de tableau
    Par Oluha dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 09/02/2005, 12h36
  5. pointer sur une ligne d'un TStringGrid
    Par jeannot27 dans le forum C++Builder
    Réponses: 7
    Dernier message: 20/10/2004, 11h56

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