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 :

Macro de concaténation


Sujet :

Macros et VBA Excel

  1. #1
    Membre très actif
    Homme Profil pro
    Inscrit en
    Avril 2012
    Messages
    116
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2012
    Messages : 116
    Par défaut Macro de concaténation
    Bonjour,

    J'ai un tableau Tab1 alimenté par un deuxième tableau Tab2 (qui est sur une autre feuille du classeur).
    Je remplis les données dans Tab2 et elles sont envoyées automatiquement dans Tab1 à des lignes spécifiques en fonction de leur contenu par l'intermédiaire d'une macro.

    Cependant je voudrais créer une macro qui supprime les doublons sur ce Tab1 car les mêmes lignes peuvent être transférées plusieurs fois (par erreur par exemple).


    Je voudrais donc créer une macro qui concatene les infos contenus dans les cellules B, C, D et E dans la colonne AG. Afin de pouvoir utiliser la fonction "Supprimer les doublons" d'Excel.
    J'ai essayé avec l'enregistreur de macro mais ça ne fonctionne pas..

    Pour l'instant mon code permet simplement de supprimer les doublons sur la colonne AG qui devra donc être concaténée :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Sub DoublonsInvestissement()
     
        Columns("AG:AG").Select
        ActiveSheet.Range("$A$1:$AG$1893").RemoveDuplicates Columns:=33, Header:= _
            xlYes
    End Sub
    Je voudrais donc intégrer le code permettant de concaténer la colonne AG à l'interieur de ce code.

    Vous allez me dire, pourquoi ne crée tu pas une fonction "=concatener" dans ta colonne AG.. Le fait est que lorsque les données sont transférées de Tab2 à Tab1, les lignes s'intercalent à des endroits spécifiques, ce qui créer des décalages pour ma fonction, et cela même si je fixe (avec $) la colonne.

    Avez-vous une solution ?

    Merci par avance pour votre aide

  2. #2
    Membre Expert Avatar de Fvandermeulen
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2007
    Messages
    1 869
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1 869
    Par défaut
    Citation Envoyé par ElPibeOro Voir le message
    ...
    Le fait est que lorsque les données sont transférées de Tab2 à Tab1, les lignes s'intercalent à des endroits spécifiques, ce qui créer des décalages pour ma fonction, et cela même si je fixe (avec $) la colonne.
    ...
    Alors ça c'est étrange !!!

    Mais pour ne pas perdre de temps avec ça, voici un exemple pour faire la concaténation dans VBA et l'écrire en AG puis supprimer les doublons

    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 CleanDoublon()
    Dim Ws As Worksheet 'Variable pour la feuille à nettoyer
    Dim DerLig As Long 'Variable pour déterminer la dernière ligne utilisée
    Dim R As Long 'R pour la boucle sur les lignes
     
    Set Ws = Sheets(1) 'Affectaction de la feuille en question à la variable => A adapter pour ton cas
    DerLig = Ws.Cells(Ws.Columns(1).Cells.Count, 1).End(xlUp).Row 'Affecte le N° de la dernière ligne sur bse de la colonne A
     
    For R = 2 To DerLig 'Boucle sur l'ensemble des lignes
        Ws.Cells(R, 33) = Ws.Cells(R, 2) & Ws.Cells(R, 3) & Ws.Cells(R, 4) & Ws.Cells(R, 5) 'Place en AG la concaténation
    Next R
     
    Ws.Range(Cells(1, 1), Cells(DerLig, 33)).RemoveDuplicates Columns:=33, Header:=xlYes 'Suppression Doublon sur la plage concernée, critère colonne 33
     
     
    End Sub

  3. #3
    Membre très actif
    Homme Profil pro
    Inscrit en
    Avril 2012
    Messages
    116
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2012
    Messages : 116
    Par défaut
    Merci beaucoup Fvandermeulen, c'est parfait ça fonctionne parfaitement !

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

Discussions similaires

  1. Macro Excel - concaténer des filtres
    Par needyou dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 30/06/2010, 15h34
  2. Réponses: 11
    Dernier message: 11/07/2008, 14h58
  3. concaténation de macros
    Par Phyxx dans le forum Macro
    Réponses: 9
    Dernier message: 15/05/2008, 13h21
  4. Concaténer & Conditions = Macro ou formules ?
    Par Troutchu dans le forum Excel
    Réponses: 18
    Dernier message: 14/03/2008, 17h01
  5. Macro Excel : copier-coller-concaténer
    Par neo2k2 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 29/06/2007, 10h39

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