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 :

Fusionner des doublons dans plusieurs colonnes [XL-2010]


Sujet :

Macros et VBA Excel

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2013
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2013
    Messages : 4
    Points : 2
    Points
    2
    Par défaut Fusionner des doublons dans plusieurs colonnes
    Bonjour à tous,

    Je maîtrise un minimum les macros (en fait, j’arrive à jouer avec l’Enregistreur, mais pas à coder de A à Z), mais je bloque sur la problématique suivante.
    J’ai un fichier comportant 3 colonnes, avec des valeurs en double dans chacune des colonnes.
    Je voudrais une macro pour fusionner automatiquement ces valeurs en double.

    J’ai déjà récupéré un bout de code, mais j’ai une erreur d’exécution et je suis incapable de comprendre pourquoi (cd. fichier joint).

    Une âme généreuse saurait-elle corriger le problème et m’expliquer brièvement le pourquoi de l’erreur ?

    Un grand merci par avance…
    Fichiers attachés Fichiers attachés

  2. #2
    Expert éminent sénior
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Points : 18 677
    Points
    18 677
    Par défaut
    Bonjour,

    que veut dire concrètement, vis à vis de la feuille de calcul d'Excel, fusionner automatiquement ces valeurs en double ?
    C'est parce que la vitesse de la lumière est plus rapide que celle du son que tant de gens paressent brillants avant d'avoir l'air con ! (Thomas Boishardy)

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2013
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2013
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    Bonjour,

    j'ai mis à jour le fichier Excel dans mon premier mail pour une meilleure compréhension (avec mon tableau source et cible.

    Pour faire simple, j'ai des données du type :
    A x 1
    B x 2
    C x 3
    C y 4
    C y 4
    D y 4

    Je voudrais que la macro fusionne les doublons (pour n'avoir plus qu'un C dans la 1ère colonne, qu'un x et qu'un y dans la 2ème colonne, qu'un 4 dans la troisième colonne).
    PS : je n'arrive pas à représenter ici mon tableau cible, mes espaces blancs sont supprimés lorsque j'enregistre mon message sur le forum...

    J'espère que c'est plus clair comme cela...

  4. #4
    Expert éminent sénior
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Points : 18 677
    Points
    18 677
    Par défaut

    Entre le x et le y dans la deuxième colonne, quel séparateur, un espace ? Ou une ligne par élément de la deuxième colonne …

    Plus clair avec un tableau de départ et un tableau d'arrivée ...

    Sinon faire une recherche sur dictionnaire ou l'objet Dictionnary évitant les doublons …
    C'est parce que la vitesse de la lumière est plus rapide que celle du son que tant de gens paressent brillants avant d'avoir l'air con ! (Thomas Boishardy)

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2013
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2013
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    Marc,

    Le tableau de départ et le tableau d'arrivée sont dans la feuille Excel attachée dans mon 1er message, tout comme le bout de code que j'ai utilisé mais qui plante à un moment.

    Dedans, tu trouveras tous les détails nécessaires (j'espère) pour solutionner le problème.

  6. #6
    Expert éminent sénior
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Points : 18 677
    Points
    18 677
    Par défaut
    D'où je suis, je ne peux télécharger … A d'autres endroits sur des machines sensibles, c'est une interdiction hors contexte de travail.

    D'autres intervenants de ce forum, dans le même souci évident de sécurité, ne veulent pas ouvrir de pièce jointe …

    Et souvent en les ouvrant, ce n'est pas forcément clair !

    Donc une démonstration à suivre dont tu auras le loisir d'adapter à tes besoins !
    C'est parce que la vitesse de la lumière est plus rapide que celle du son que tant de gens paressent brillants avant d'avoir l'air con ! (Thomas Boishardy)

  7. #7
    Expert éminent sénior Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Points : 31 877
    Points
    31 877
    Par défaut
    Si les données sont triées au préalable

    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
    Sub Fusionner()
    Dim LastLig As Long, i As Long
     
    Application.ScreenUpdating = False
    With Feuil1
        LastLig = .Cells(.Rows.Count, 1).End(xlUp).Row
        For i = LastLig To 2 Step -1
            Fusion .Range("A" & i)
            Fusion .Range("B" & i)
            Fusion .Range("C" & i)
        Next i
        .Range("A2:C" & LastLig).VerticalAlignment = xlCenter
    End With
    End Sub
     
     
    Private Sub Fusion(ByVal c As Range)
     
    If c.Value = c.Offset(-1, 0).Value And c.Value <> "" Then
        c.MergeArea.ClearContents
        c.Offset(-1, 0).Resize(2, 1).Merge
    End If
    End Sub
    Cordialement.
    J'utilise toujours le point comme séparateur décimal dans mes tests.

  8. #8
    Expert éminent sénior
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Points : 18 677
    Points
    18 677
    Par défaut

    Bien vu, simple et efficace as usual ! Effectivement si les données sont triées, pas besoin de dictionnaire …
    C'est parce que la vitesse de la lumière est plus rapide que celle du son que tant de gens paressent brillants avant d'avoir l'air con ! (Thomas Boishardy)

  9. #9
    Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2013
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2013
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    mercatog, je te dois une fière chandelle

    Marc-L, merci également pour ton aide et tes conseils, je retiendrai pour la prochaine fois d'essayer d'expliquer le plus clairement possible ma problématique sur le forum sans pièce-jointe

    Bonne journée à vous !

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 12/03/2015, 11h46
  2. Réponses: 2
    Dernier message: 10/10/2013, 15h35
  3. [XL-2003] Dénombrer des occurrences dans plusieurs colonnes
    Par mandela9857 dans le forum Excel
    Réponses: 3
    Dernier message: 18/02/2013, 19h38
  4. Réponses: 17
    Dernier message: 01/12/2008, 10h52
  5. [EXCEL] Mise en évidence des doublons dans une colonne
    Par dacid dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 30/10/2006, 19h14

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