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 :

Identifier les doublons dans une base


Sujet :

Macros et VBA Excel

  1. #141
    Expert confirmé
    Homme Profil pro
    PAO
    Inscrit en
    Octobre 2014
    Messages
    2 576
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : PAO
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Octobre 2014
    Messages : 2 576
    Points : 4 174
    Points
    4 174
    Par défaut
    Pas assez précis dans ma phrase :
    Quand je disais tri des doublons, sous-entendait que le tri en colonne F rassemblait chaque doublons entre eux comme le fait le 2eme code de unparia en page 1

    Edit : on s'est croisé Jacques dans nos post, je m'y mets de suite
    Cordialement
    Ryu

    La connaissance s’acquiert par l’expérience, tout le reste n’est que de l’information. – Albert Einstein

    Pensez à la Balise [ CODE][/CODE ] - à utiliser via le bouton # => Exemple

    Une fois votre problème solutionné pensez à mettre en n'oubliant pas d'indiquer qu'elle est la solution finale choisie
      0  1

  2. #142
    Membre extrêmement actif
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 82
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Points : 12 422
    Points
    12 422
    Par défaut
    C'est tout-à-fait cela, Ryu.
    Et c'est ce que tu trouves en code dans mon message juste au-dessus (on s'est croisés).
    Bonne nuit.
    Je n'accepte pas de demande d' "amitié" individuelle. Tout développeur est pour moi un ami.
    Je n'ouvre AUCUN classeur tiers (avec ou sans macro ******). Ne m'en proposez donc pas .

    ****** : Non, non ... un classeur .xlsx ne "peut" par exemple et entre autres pas contenir un activex (de surcroît invisible) , "bien sûr" ...

    Il est illusoire de penser que l'on saurait exprimer valablement et précisément en un langage (rigide) de développement ce que l'on peine à exprimer dans le langage naturel, bien plus souple.
      0  0

  3. #143
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re unparia
    bon j'ai suivi scrupuleusement les consignes demo en gif a l'appui

    et le sort de f tu le fait avant la copie en H ca me perturbe
    le fait de ne pas toucher finalement aux colonnes concernées me rend perplexe

    et pour finir ca fait pas le boulot regarde la capture code a droite a l'appui

    je montre bien la ligne 2 et 11 qui sont des doublons et regarde les colonnes g h

    Nom : demo2.gif
Affichages : 241
Taille : 523,2 Ko
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter
      0  1

  4. #144
    Expert confirmé
    Homme Profil pro
    PAO
    Inscrit en
    Octobre 2014
    Messages
    2 576
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : PAO
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Octobre 2014
    Messages : 2 576
    Points : 4 174
    Points
    4 174
    Par défaut
    Superrrr Rapidddde sur Mac
    2,62… s (sur PC je suppose que c'est un peu plus rapide… ??)
    rien qu'avec les formules, comme le prône Marc : Penser Excel avant VBA

    Edit : le coup de la concaténation je le mets bien au chaud, super pratique … +++ , le coup des lignes aussi
    Cordialement
    Ryu

    La connaissance s’acquiert par l’expérience, tout le reste n’est que de l’information. – Albert Einstein

    Pensez à la Balise [ CODE][/CODE ] - à utiliser via le bouton # => Exemple

    Une fois votre problème solutionné pensez à mettre en n'oubliant pas d'indiquer qu'elle est la solution finale choisie
      0  1

  5. #145
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    re
    ben moi j'ai pourtant suivi le post 140 démo en gif a l'appui ca match pas
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter
      0  1

  6. #146
    Expert confirmé
    Homme Profil pro
    PAO
    Inscrit en
    Octobre 2014
    Messages
    2 576
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : PAO
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Octobre 2014
    Messages : 2 576
    Points : 4 174
    Points
    4 174
    Par défaut
    Trés belle démonstration Jacques, je plussoie

    Patrick : si cela fait le boulot, le moteur est là, tu n'a plus qu'à conduire et aller ou tu veux pour gérer les doublons, faut adapter pour l'utilisation que l'on veut en faire
    Cordialement
    Ryu

    La connaissance s’acquiert par l’expérience, tout le reste n’est que de l’information. – Albert Einstein

    Pensez à la Balise [ CODE][/CODE ] - à utiliser via le bouton # => Exemple

    Une fois votre problème solutionné pensez à mettre en n'oubliant pas d'indiquer qu'elle est la solution finale choisie
      0  1

  7. #147
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    re
    tu a vu ma capture gif?? le code a droite respecte bien les consigne non??
    regarde ma ligne 2 et 11 sur le sheet
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter
      0  1

  8. #148
    Expert confirmé
    Homme Profil pro
    PAO
    Inscrit en
    Octobre 2014
    Messages
    2 576
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : PAO
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Octobre 2014
    Messages : 2 576
    Points : 4 174
    Points
    4 174
    Par défaut
    Dans ton gif regarde la ligne "n = ……"

    Dans le code de unparia
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    n = Cells.SpecialCells(xlCellTypeLastCell).Row
    Cordialement
    Ryu

    La connaissance s’acquiert par l’expérience, tout le reste n’est que de l’information. – Albert Einstein

    Pensez à la Balise [ CODE][/CODE ] - à utiliser via le bouton # => Exemple

    Une fois votre problème solutionné pensez à mettre en n'oubliant pas d'indiquer qu'elle est la solution finale choisie
      0  1

  9. #149
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    re et alors ca change quoi?.... rien du tout
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter
      0  1

  10. #150
    Expert confirmé
    Homme Profil pro
    PAO
    Inscrit en
    Octobre 2014
    Messages
    2 576
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : PAO
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Octobre 2014
    Messages : 2 576
    Points : 4 174
    Points
    4 174
    Par défaut
    j'ai fait chaque partie en pas à pas et vérifié, les doublons sont bien là et sont défini par les lignes vides qui plus est dans l'ordre (normal), de la ligne la plus petite à la ligne la plus grande

    Edit :
    Exemple pour les supprimer, quand tu as sur la ligne 27 du code complet de unparia :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set pl_doublons = Range("H1:H" & 200000).SpecialCells(xlCellTypeBlanks)
    si après tu fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     pl_doublons.EntireRow.delete
    cherche les doublons …

    sans compter les différentes adaptions que tu peux faire pour traiter tes doublons
    Cordialement
    Ryu

    La connaissance s’acquiert par l’expérience, tout le reste n’est que de l’information. – Albert Einstein

    Pensez à la Balise [ CODE][/CODE ] - à utiliser via le bouton # => Exemple

    Une fois votre problème solutionné pensez à mettre en n'oubliant pas d'indiquer qu'elle est la solution finale choisie
      0  1

  11. #151
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    puré j'ai pas la berlue... quand même ta le gif sous les yeux je dis pas de conneries

    le code correspond bien au étapes dans le post 140 et ben ca marche pas
    la ligne 11 en colonne H devrait être vide elle ne l'ai pas!!
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter
      0  1

  12. #152
    Expert confirmé
    Homme Profil pro
    PAO
    Inscrit en
    Octobre 2014
    Messages
    2 576
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : PAO
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Octobre 2014
    Messages : 2 576
    Points : 4 174
    Points
    4 174
    Par défaut
    Pourquoi elle devrait être vide ?? unparia a juste fait apparaitre les doublons, mais n'a pas touché à l'intégrité des données
    ce qui veut dire que tu peut vérifier tes doublons sans toucher à tes données, libre à toi après de gérer comme tu l'entends en modifiant légèrement le code

    as tu fais le delete comme je te l'ai proposé ?? et vérifier par la suite ? même avec un code que tu as fait si ça te rassure
    Cordialement
    Ryu

    La connaissance s’acquiert par l’expérience, tout le reste n’est que de l’information. – Albert Einstein

    Pensez à la Balise [ CODE][/CODE ] - à utiliser via le bouton # => Exemple

    Une fois votre problème solutionné pensez à mettre en n'oubliant pas d'indiquer qu'elle est la solution finale choisie
      0  1

  13. #153
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    re
    je crains que finalement tu n'est pas vraiment compris le code de unparia sinon tu me poserais pas la question

    le comportement F H chez moi n'est pas normal sur le résultat inutile pour moi de faire un delete pour tester car sous les yeux dans les 11 premières lignes
    j'ai un doublon non repéré c'est pas la peine que j'aille plus loin avant d'avoir résolu la question
    le principe final de unparia c'est que dans la colonne H les cellules vide sont des doublons

    puré de puré tu a besoins de mes lunettes la 11 est un doublon et pourtant pleine ya pas a chercher plus loin y a une erreur quelque part
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter
      0  1

  14. #154
    Membre extrêmement actif
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 82
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Points : 12 422
    Points
    12 422
    Par défaut
    Il m'arrive de penser que certaines machines sont toujours les seules à avoir des problèmes. A moins que ce ne soit le clavier. Ou encore une tasse de café posée près de la touche espace et s'y appuyant malencontreusement (j'ai hésité entre le h et le seul r de cet adverbe) et ajoutant un caractère à la fin d'une valeur qui la rend à la fois différente, mais dont l'affichage montre qu'elle est "identique". Ou encore des fantômes. Ou encore ... que sais-je ?
    Que ce soit tel ou tel autre problème à solutionner, il l'est, solutionné, partout sauf "là".
    Ainsi : un Dir trouve sur le disque de ces machines des fichiers, des dossiers, qui "n'y sont pas". Un recensement de doublons ne trouve pas un "doublon" qui, pourtant, "y est". etc ... etc ...
    Si j'étais le propriétaire d'une telle machine, je penserais à changer totalement de matériel. Et si de tels "troubles" continuaient, à déménager (because les fantômes).
    C'est bien triste, tout cela ...
    Je n'accepte pas de demande d' "amitié" individuelle. Tout développeur est pour moi un ami.
    Je n'ouvre AUCUN classeur tiers (avec ou sans macro ******). Ne m'en proposez donc pas .

    ****** : Non, non ... un classeur .xlsx ne "peut" par exemple et entre autres pas contenir un activex (de surcroît invisible) , "bien sûr" ...

    Il est illusoire de penser que l'on saurait exprimer valablement et précisément en un langage (rigide) de développement ce que l'on peine à exprimer dans le langage naturel, bien plus souple.
      0  1

  15. #155
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    re

    bonsoir unparia
    tu avouera que la je raconte pas de connerie le gif parle de lui même

    j'ai donc cherché a comprendre

    voila selon ta méthode 1.6882 secondes ou plus selon cache chez moi juste pour identifié les doublons :je ne delete pas et remet pas dans l'ordre
    juste en modifiant les plage dans le .sort
    code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Sub test10()
        t = timer
        With Sheets(1)
            Set plage = .Range("A1:E" & .Cells(Rows.Count, 1).End(xlUp).Row)    ' plage a prendre en compte
            n = Cells.SpecialCells(xlCellTypeLastCell).Row
            .Range("F1:F" & n).Formula = "=A1 & ""#"" & B1 & ""#"" & C1 & ""#"" & D1 & ""#"" & E1"
            .Range("G1:G" & n).Formula = "=Row()"
            .Range("F1:G" & n).Value = .Range("F1:G" & n).Value
            .Range("g1:A" & n).Sort key1:=.Range("F1"), order1:=xlAscending, Header:=xlNo
            .Range("H1").Value = Range("F1").Value
            .Range("H2:H" & n).Formula = "=IF(F2=F1,"""",F2)"
            MsgBox timer - t & " secondes"
        End With
    End Sub
    Nom : demo2.gif
Affichages : 181
Taille : 351,2 Ko
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter
      0  1

  16. #156
    Expert confirmé
    Homme Profil pro
    PAO
    Inscrit en
    Octobre 2014
    Messages
    2 576
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : PAO
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Octobre 2014
    Messages : 2 576
    Points : 4 174
    Points
    4 174
    Par défaut
    Patrick le code de unparia est OK car le traitement des doublons se fait de F à H et pas de A à H
    ce qui te pertube puisque tu penses à toucher au données, mais je t'ai dis que le but était ici de garder l'intégrité des données

    Donc comme tu penses de la colonne A à H
    avec une petite modifications ceci tu comprendras, j'ai fait en sorte d'utiliser le même principe de base que m'a montré Marc avec les 1 = doublons, 0 = pas doublons
    ici vide = doublons, pas vide = pas doublons donc avec le tri de A à H sur H tout tes doublons se mettront à la suite des données non doublons te permettant par la suite de les supprimer en une seule fois et rapidement
    Donc le code de Jacques légèrement modifié pour te montrer la véracité de son code :
    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
    37
    38
    39
    40
    41
    42
    Sub DoublonsunpariaTest()
     
      Application.ScreenUpdating = False
      Dim i As Long, n As Long, c As String, pl_doublons As Range, derlig As Long, les_cols
      Columns("H").ClearContents
      deb = Timer '===================================== juste pour tester
      ActiveSheet.UsedRange
      n = Cells.SpecialCells(xlCellTypeLastCell).Row
      les_cols = Array("A", "B", "C", "D", "E")
      formule = "=" & les_cols(0) & "1" ' ----->> début de notre formule (toujours le même)
      For i = 1 To UBound(les_cols) '-----------------------------------------
        formule = formule & " & """ & Chr(1) & """ & " & les_cols(i) & "1"   '| et on concatème la formule en boucle
      Next ' -----------------------------------------------------------------
      With ActiveSheet
        .Range("F1:F" & n).Formula = formule '--->> nous concaténons ici (regardez la construction de la chaîne formule)
        .Range("G1:G" & n).Formula = "=Row()" ' --->> nous attribuons (par simple constat) les Nos de lignes correspondants
        .Range("F1:G" & n).Value = Range("F1:G" & n).Value '--->> nous figeons ces valeurs (indépendantes alors des formules) pour ne pas torturer Excel
        .Range("A1:G" & n).Sort key1:=.Range("F1:G" & n), order1:=xlAscending, Header:=xlNo ' -->> et nous trions les concaténations sans (surtout) toucher aux
                                                                                            ' autres colonnes. Seuls les N)s de lignes suivront ce tri
        .Range("H1").Value = Range("F1").Value ' --->> la 1ère ligne n'est forcément pas un doublon
        .Range("H2:H" & n).Formula = "=IF(F2=F1,"""",F2)" ' --->> nous mettons à "" les valeurs trouvées si égales à celles de la
                                                          ' cellule atteinte par un déplacement type cheval aux échecs
        .Range("H2:H" & n).Value = .Range("H2:H" & n).Value '--->> et là aussi, nous figeons les valeurs, pour toujours les mêmes raisons
        .Range("A1:H" & n).Sort key1:=.Range("H1"), order1:=xlAscending, Header:=xlNo '-->> nous remettons les choses dans l'ordre originel, toujours sans toucher à l'ordre
                                                                                      ' des données traitées. Du coup, les doublons reviendront à leur rang de départ
        Dim DLColH&
        DLColH = Cells(Rows.Count, 8).End(xlUp)(2).Row
        .Range("A" & DLColH & ":H" & n).EntireRow.Delete
     
      End With
      Application.ScreenUpdating = True
     
      '==========================================================================================================================
      '================ le travail est terminé
      ' =============== ce qui suit n'est là qu'en tant que visualisation (l'une de ses formes possibles suffira)
     
      'MsgBox Timer - deb - 1 & "  secondes pour traiter " & n & " lignes de 5 colonnes et extraire la plage " & pl_doublons.Address
      'Application.ScreenUpdating = True
      'MsgBox "tiens ... on va (par exemple) la sélectionner"
      'pl_doublons.EntireRow.Select
     
    End Sub
    Cordialement
    Ryu

    La connaissance s’acquiert par l’expérience, tout le reste n’est que de l’information. – Albert Einstein

    Pensez à la Balise [ CODE][/CODE ] - à utiliser via le bouton # => Exemple

    Une fois votre problème solutionné pensez à mettre en n'oubliant pas d'indiquer qu'elle est la solution finale choisie
      0  1

  17. #157
    Membre extrêmement actif
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 82
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Points : 12 422
    Points
    12 422
    Par défaut
    tu avouera que la je raconte pas de connerie le gif parle de lui même
    Non m'sieu. Le gif ne montre que ce que l'on voit (ce qui est visible). Relis mon message et l'affaire de la "tasse de café" (si c'est cela et pas "autre chose").
    Je vais maintenant au dodo et sans fantômes autour.
    Je n'accepte pas de demande d' "amitié" individuelle. Tout développeur est pour moi un ami.
    Je n'ouvre AUCUN classeur tiers (avec ou sans macro ******). Ne m'en proposez donc pas .

    ****** : Non, non ... un classeur .xlsx ne "peut" par exemple et entre autres pas contenir un activex (de surcroît invisible) , "bien sûr" ...

    Il est illusoire de penser que l'on saurait exprimer valablement et précisément en un langage (rigide) de développement ce que l'on peine à exprimer dans le langage naturel, bien plus souple.
      0  1

  18. #158
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    re
    ryu j n'ai pas pris le temps de ragarder ton message mais j'ai identifié la ligne qui me genre non pas une erreur mais un resultat faux

    j'ai donc repris l'idée de travailler que sur fgh et bloquer la ligne de remise dans l'ordre initial j'ai bien mes doublons identifiés mais des que je debloque la lignes pour faire le ".sort" sur "G" (la colonne des rows c'est fini mes doublons ne sont plus des doublons

    va savoir pour quoi
    dans mon exemple j'ai un doublon en ligne 2,11,17 en bloquant la ligne j'ai bien mes doublons mais des que je débloque la sort G plus rien

    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
     
    Sub test10()
        t = timer
        With Sheets(1)
            Set plage = .Range("A1:E" & .Cells(Rows.Count, 1).End(xlUp).Row)    ' plage a prendre en compte
            n = Cells.SpecialCells(xlCellTypeLastCell).Row
            .Range("F1:F" & n).Formula = "=A1 & ""#"" & B1 & ""#"" & C1 & ""#"" & D1 & ""#"" & E1"
            .Range("G1:G" & n).Formula = "=Row()"
            .Range("F1:G" & n).Value = .Range("F1:G" & n).Value
            .Range("g1:f" & n).Sort key1:=.Range("F1"), order1:=xlAscending, Header:=xlNo
            .Range("H1").Value = Range("F1").Value
            .Range("H2:H" & n).Formula = "=IF(F2=F1,"""",F2)"
           ' .Range("f1:h" & n).Sort key1:=.Range("g1"), order1:=xlAscending, Header:=xlNo' ligne creant le faux 
            MsgBox timer - t & " secondes"
        End With
    End Sub
    a la fin je devrais en débloquant la ligne "créant le résultat faux " me retrouver avec la ligne 11 et 17 vide en colonne H et c'est pas le cas

    un truc de fou ce machin
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter
      0  1

  19. #159
    Expert confirmé
    Homme Profil pro
    PAO
    Inscrit en
    Octobre 2014
    Messages
    2 576
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : PAO
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Octobre 2014
    Messages : 2 576
    Points : 4 174
    Points
    4 174
    Par défaut
    Ben lis mon message

    Où sont les doublons

    EN H
    PAS en G


    le Tri en H




    EDIT : je te l'ai dit, t'as le moteur (qui plus est un moteur de course ), à toi d'adapter selon le besoin
    Cordialement
    Ryu

    La connaissance s’acquiert par l’expérience, tout le reste n’est que de l’information. – Albert Einstein

    Pensez à la Balise [ CODE][/CODE ] - à utiliser via le bouton # => Exemple

    Une fois votre problème solutionné pensez à mettre en n'oubliant pas d'indiquer qu'elle est la solution finale choisie
      0  1

  20. #160
    Membre extrêmement actif
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 82
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Points : 12 422
    Points
    12 422
    Par défaut
    un truc de fou ce machin
    Ce n'est pas moi, qui l'ait dit.

    A Ryu : je disais plus haut que je ne pouvais pas aller plus vite.
    Cette affaire de "fantôme" me fait remettre en cause ce sentiment.
    Il n'est pas impossible (mais n'en sais encore rien) que je puisse trouver le moyen d'aller encore plus vite et sans aucun "tremplin", ni collection, ni dictionnaire, ni match, ni countif ni aucune fonction de VBA ... L'indépendance (ce qui m'est le plus cher) alors totale.
    Je verrai cela à tête reposée lorsque je trouverais un moment.
    Je n'accepte pas de demande d' "amitié" individuelle. Tout développeur est pour moi un ami.
    Je n'ouvre AUCUN classeur tiers (avec ou sans macro ******). Ne m'en proposez donc pas .

    ****** : Non, non ... un classeur .xlsx ne "peut" par exemple et entre autres pas contenir un activex (de surcroît invisible) , "bien sûr" ...

    Il est illusoire de penser que l'on saurait exprimer valablement et précisément en un langage (rigide) de développement ce que l'on peine à exprimer dans le langage naturel, bien plus souple.
      0  1

Discussion fermée
Cette discussion est résolue.

Discussions similaires

  1. Identifier les doublons dans une requete
    Par totor92290 dans le forum IHM
    Réponses: 2
    Dernier message: 27/10/2016, 12h08
  2. Comment réperer les doublons dans une base de données?
    Par Marc31 dans le forum Langage SQL
    Réponses: 9
    Dernier message: 16/07/2015, 16h29
  3. [Débutant] Eviter les doublons dans une base access
    Par gilles_906 dans le forum VB.NET
    Réponses: 24
    Dernier message: 29/08/2011, 16h46
  4. Réponses: 0
    Dernier message: 09/02/2011, 09h13
  5. les images dans une base de données
    Par houhou dans le forum Bases de données
    Réponses: 8
    Dernier message: 22/06/2004, 14h27

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