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 :

Macros de concaténation de différentes informations


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2018
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2018
    Messages : 11
    Par défaut Macros de concaténation de différentes informations
    Bonjour à tous,

    je suis sur un cas assez particulier en ce moment, je cherche à concaténer dans une seule colonne plusieurs informations provenant de différents onglets ( régime 1, régime 2) en prenant le soin supprimer les doublons de la liste finale obtenue

    Et si possible de faire supprimer les données de la liste finale déjà présente dans dans l'onglet : réfrigérateur ..

    Je vous remercie d'avance pour vos apports.
    Fichiers attachés Fichiers attachés

  2. #2
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 13 173
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Comme beaucoup de contributeurs de ce site, je n'ouvre pas les fichiers joints.
    Un léger effort d'explication de ta part t'aiderait à avoir plus de réponses. Une image de la ou des feuilles concernées serait un plus très apprécié.

    Pour concaténer plusieurs chaînes de caractères en VBA c'est comme avec Excel. On utilise l'opérateur de concaténation représenté par l'esperluette &
    Exemple avec la concaténation de constantes
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    T$ = "Albert" & " " & "Einstein"
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  3. #3
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Citation Envoyé par lifestar Voir le message
    je suis sur un cas assez particulier en ce moment, je cherche à concaténer dans une seule colonne plusieurs informations provenant de différents onglets ( régime 1, régime 2) en prenant le soin supprimer les doublons de la liste finale obtenue
    Je vais partir de l'hypothèse (qui me semble très probable) que tu utilises le mot "concaténer" de façon impropre ou du moins dans un sens très différent de celui utilisé dans Excel.

    Si tu veux mettre les données de plusieurs onglets dans un seul sans doublon, la méthode la plus simple est de commencer par faire une copie globale et ensuite d'appliquer à l'ensemble une suppression de doublons (Ruban Données > Supprimer les doublons).
    Si tu veux à tout prix le faire en VBA, l'enregistreur automatique de macro te livrera 80% du code sur un plateau.

  4. #4
    Expert confirmé Avatar de BENNASR
    Homme Profil pro
    Responsable comptable & financier
    Inscrit en
    Décembre 2013
    Messages
    2 974
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Responsable comptable & financier
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2013
    Messages : 2 974
    Par défaut
    bonjour
    Pour moi la demande n'est pas claire mais si tu cherches à parcourir la colonne A de la feuille 1 puis la colonne A de la feuille 2 et tu les compare avec la colonne A de la feuille 3 et la différence tu l'inscris dans la feuille synthèse tu aura comme solution les dictionnaires
    c'est une solution de Mr boisgontierjacques si je me rappelle bien (Bonjour de passage )
    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
    Dim f1
    Dim f2
    Dim f3
    Dim f4
    Sub test()
      Set f1 = Sheets("Fruits")
      Set f2 = Sheets("Légumes")
      Set f3 = Sheets("réfrigérateur")
      Set f4 = Sheets("Synthèse")
      a = f1.Range("A3:A" & f1.[A65000].End(xlUp).Row)
      b = f3.Range("A3:A" & f3.[A65000].End(xlUp).Row)
      d = f2.Range("A3:A" & f2.[A65000].End(xlUp).Row)
      Set mondico1 = CreateObject("Scripting.Dictionary")
      For Each c In b: mondico1(c) = c:  Next c
      For Each c In d: mondico1(c) = c:  Next c
      Set mondico2 = CreateObject("Scripting.Dictionary")
      For Each c In a
        If Not mondico1.Exists(c) Then mondico2(c) = c
      Next c
      f4.[A6].Resize(mondico2.Count, 1) = Application.Transpose(mondico2.keys)
    End Sub

  5. #5
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2018
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2018
    Messages : 11
    Par défaut
    Citation Envoyé par BENNASR Voir le message
    bonjour
    Pour moi la demande n'est pas claire mais si tu cherches à parcourir la colonne A de la feuille 1 puis la colonne A de la feuille 2 et tu les compare avec la colonne A de la feuille 3 et la différence tu l'inscris dans la feuille synthèse tu aura comme solution les dictionnaires
    c'est une solution de Mr boisgontierjacques si je me rappelle bien (Bonjour de passage )
    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
    Dim f1
    Dim f2
    Dim f3
    Dim f4
    Sub test()
      Set f1 = Sheets("Fruits")
      Set f2 = Sheets("Légumes")
      Set f3 = Sheets("réfrigérateur")
      Set f4 = Sheets("Synthèse")
      a = f1.Range("A3:A" & f1.[A65000].End(xlUp).Row)
      b = f3.Range("A3:A" & f3.[A65000].End(xlUp).Row)
      d = f2.Range("A3:A" & f2.[A65000].End(xlUp).Row)
      Set mondico1 = CreateObject("Scripting.Dictionary")
      For Each c In b: mondico1(c) = c:  Next c
      For Each c In d: mondico1(c) = c:  Next c
      Set mondico2 = CreateObject("Scripting.Dictionary")
      For Each c In a
        If Not mondico1.Exists(c) Then mondico2(c) = c
      Next c
      f4.[A6].Resize(mondico2.Count, 1) = Application.Transpose(mondico2.keys)
    End Sub
    Merci BENNASR pour ta réponse, j'ai essayé intégrer la macro mais j'ai le message suivant à la ligne 13 :
    Le composant ActiveX ne peut pas créer l'objet

  6. #6
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2018
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2018
    Messages : 11
    Par défaut
    Citation Envoyé par Menhir Voir le message
    Je vais partir de l'hypothèse (qui me semble très probable) que tu utilises le mot "concaténer" de façon impropre ou du moins dans un sens très différent de celui utilisé dans Excel.

    Si tu veux mettre les données de plusieurs onglets dans un seul sans doublon, la méthode la plus simple est de commencer par faire une copie globale et ensuite d'appliquer à l'ensemble une suppression de doublons (Ruban Données > Supprimer les doublons).
    Si tu veux à tout prix le faire en VBA, l'enregistreur automatique de macro te livrera 80% du code sur un plateau.
    Bonjour Mennir,

    Merci pour ta proposition Mon but c'est d'avoir un fichier entièrement automatisé.

    Et passer par l'enregistrer de macro ne m'aidera pas plus.

  7. #7
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    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 374
    Billets dans le blog
    8
    Par défaut re
    re

    Et passer par l'enregistrer de macro ne m'aidera pas plus.
    a bon !!?????
    sais tu ce c'est l'enregistreur de macro????, j'en ai pas l'impression !!
    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

  8. #8
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Citation Envoyé par lifestar Voir le message
    Et passer par l'enregistrer de macro ne m'aidera pas plus.
    1-Explication minimaliste dans la demande initiale
    2-Ne prend pas la peine de compléter son explication malgré plusieurs demandes
    3-Envoi de fichier joint dès le premier message
    4-Ne recherche pas à débuger le premier code transmis
    5-Ne cherche pas à appliquer par lui-même les solutions qui lui sont proposées

    J'ai l'impression que tu n'as pas vraiment l'intention d'être très actif sur ce sujet...
    Tu cumules tous les symptômes de ceux qui veulent qu'on leur fasse leur travail servi sur un plateau...

  9. #9
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2018
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2018
    Messages : 11
    Par défaut
    Citation Envoyé par Menhir Voir le message
    1-Explication minimaliste dans la demande initiale
    2-Ne prend pas la peine de compléter son explication malgré plusieurs demandes
    3-Envoi de fichier joint dès le premier message
    4-Ne recherche pas à débuger le premier code transmis
    5-Ne cherche pas à appliquer par lui-même les solutions qui lui sont proposées

    J'ai l'impression que tu n'as pas vraiment l'intention d'être très actif sur ce sujet...
    Tu cumules tous les symptômes de ceux qui veulent qu'on leur fasse leur travail servi sur un plateau...
    Tu vas drôlement vite en besogne amigo.

    1-j'ai pas eu le temps en semaine de préciser la demande initiale du coup je m’apprête à le faire
    2-J'envoie le fichier joint pour que la demande soit plus explicite ( Drôle de controverse si je base sur tes idées "préconçues" )
    3- j'ai essayé de débuger le premier code transmis
    4- J'ai essayé ta solution avant même de poster le sujet

    Donc évite de coller des étiquettes à la louche.

    Merci à tous ceux qui ont contribué au sujet.

Discussions similaires

  1. Concaténer les différentes valeurs d'un seul champs
    Par nekro65 dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 17/03/2011, 19h06
  2. Macro Excel - concaténer des filtres
    Par needyou dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 30/06/2010, 15h34
  3. Réponses: 11
    Dernier message: 11/07/2008, 14h58
  4. Concaténation textkey avec information Dataset
    Par jules_11 dans le forum BIRT
    Réponses: 13
    Dernier message: 20/04/2007, 19h35
  5. [GD] Différentes informations dans une image.
    Par ~~PriVate JoKe~~ dans le forum Bibliothèques et frameworks
    Réponses: 4
    Dernier message: 16/11/2006, 22h29

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