Concaténer avec une condition

Bonsoir,

Je cherche un moyen simple, autre qu'en VBA, de concaténer tous les identifiants dans une seule case, à condition qu'ils aient le même îlot. Ça sera plus clair avec le fichier joint.

Merci!

Bonne soirée

300teste.xlsx (11.09 Ko)

Salut Pierre,

Combien peut-il y avoir d'identifiants au maximum par ilot ?

Selon le nombre d'identifiants, ce serait quand même bien plus logique de faire cela avec un code VBA. Quelle est la raison pour laquelle tu ne le veux pas ?

A te relire

EDIT : Voici déjà une solution avec 6 identifiants au maximum par ilôt, à placer en C2 et à incrémenter vers le bas.

=SI(B2=B1;"";A2&SI(B3=B2;" "&A3;"")&SI(B4=B2;" "&A4;"")&SI(B5=B2;" "&A5;"")&SI(B6=B2;" "&A6;"")&SI(B7=B2;" "&A7;""))
299test-pierre.xlsx (11.68 Ko)

Salut Yvouille,

Merci pour ton aide,

Je reconnais que ça serait plus logique en VBA mais je n'ai jamais utilisé de code VBA. Sinon j'ai au maximum 10 identifiants par îlots.

C'est peut être l'occasion de s'y mettre!

A bientôt

Pour le code VBA - avec lequel il n'y aurait pas de limite d'identifiants - je peux éventuellement voir d'ici la fin de la journée.

En ce qui concerne la formule proposée, arrives-tu à effectuer les modifications nécessaires afin qu'elle couvre 10 identifiants possibles, voire 11 pour plus de sécurité, à la place des 6 déjà en place ? Si non, je regarde également ça dans la soirée.

A te relire.

Je viens de modifier la formule pour couvrir les 10 identifiants et ça marche.

Ça m'intéresserait de savoir coder ce genre de chose, mais pour l'instant mon problème est résolu.

Merci encore

Bonjour à tous,

En VBA, çà pourrait donner ( la colonne "B" étant triée),

pas de limites

Sub Concat()
Dim Lg%, i%, x%
    Application.ScreenUpdating = False
    Lg = Range("a65536").End(xlUp).Row
    Range("c2:c" & Lg).ClearContents

    '--- concatene les Id sur 1 ligne col "C" ---
    '--- x = ligne à concaténer ---
    For i = 2 To Lg
        If Cells(i - 1, "b") = Cells(i, "b") Then
            x = i - 1
            Do While Cells(i - 1, "b") = Cells(i, "b")
                Cells(x, "c") = Cells(x, "c") & " " & Cells(i, "a")
                i = i + 1
            Loop
                i = i - 1
        Else
            Cells(i, "c") = Cells(i, "c") & " " & Cells(i, "a")
        End If
    Next i
End Sub

Amicalement

Claude

Salut Claude,

J'avais promis à Pierre de m'occuper de son code d'ici ce soir. Je pense que j'aurais tenu mes promesses.

Heureusement que je n'avais pas encore commencé, sinon mon travail aurait été inutile.

Bonne journée.

Bonsoir à tous,

Pas de suite ?

Amicalement

Claude

Bonjour,

J'ai exactement le même besoin à un détail près :

  • nombre illimité d'identifiants
  • les résultats sont attendus sur une autre feuille
  • la colonne B pas trié

pensez vous pouvoir m'aider ? je pense que vba s'impose.

Salut Kikou et bienvenue sur le Forum,

Je pense que ton problème n'est pas bien compliqué, mais il faudrait vraiment que tu me fournisses un ficher exemple, surtout du résultat attendu ; faut-il par exemple indiquer sur cette deuxième feuille les ilots regroupés les uns après les autres sans lignes vides comme sur les exemples ci-dessus ? Etc.

Indique bien ce qui est le fichier de base (par exemple en écriture noire) et ce qui est le résultat attendu (par exemple en rouge).

A te relire.

joindre un fichier

Bonjour,

Merci de votre réponse.

Voici un fichier

L'objectif est de remplir la feuille ALL " au kilomètre" et que la feuille synthèse se mette à jour toute seule.

47calendrier.xlsx (178.11 Ko)

Ta demande ne ressemble pratiquement en rien à la demande de Pierre.

Tu sembles avoir fait ton fichier exemple un peu à la va-vite, tellement à la va-vite que je trouve que tu te fous un peu de ma gueule

Sur la feuille ‘ALL’, tu as le site ‘LANG’, mais sur la feuille ‘Synthèse’ tu as la référence ‘LAN’.

Tu indiques qu’en B3 de la feuille ‘Synthèse2 tu désires 36, j’en conclu qu’il faut reporter la colonne B de la feuille ‘ALL’ mais pour la paire ATL/RVH, tu reportes une fois la colonne D (15) et une fois la colonne B (10).

Ta philosophie c’est : "J’écris n’importe quoi et il n’a qu’à se démerder" ???

A te relire.

Houla !!

je ne veux surtout pas que tu penses ça !

Je suis allé un peu vite peut être et surement pas assez explicite sur mon besoin mais je te promets que je ne me fous pas de ma gueule...

Alors s'il-te-plait laisse-toi le temps de me fournir un fichier correct sur lequel je peux voir quelles données tu désires reporter. Pas besoin de mettre 36 exemples, 3 ou 4 exemples représentatifs suffisent.

A te relire.

Alors je reprends sur de meilleure base, je l'espère...

Mon souhait est de concaténer les cellules de la feuille ALL colonne D pour une même période et un même site.

Le résultat sur une feuille synthèse qui se mettrait à jour au fur et à mesure que je complète la feuille ALL

Je trouve au contraire que cela ressemble au problème de Pierre car sa formule me convient presque.

C'est clair dans ma tête mais pas forcément sur mon clavier et je m'en excuse...

22calendrier.xlsx (177.71 Ko)

Salut,

Je ne veux pas épiloguer, mais dans le fichier de Pierre, il faut concaténer des données sur une seule colonne et dans un ordre alphanumérique alors que dans ton cas il faut regrouper des données d’un tableau à deux dimensions avec des données non-triées d’une page à l’autre. Tu peux essayer d’appliquer le code qui convient au fichier de Pierre au tien ; tu verras que tu n’obtiens aucun résultat.

Dans le fichier ci-joint, à chaque fois que tu sélectionnes la feuille ‘Synthèse’, elle est automatiquement réactualisée en fonction des modifications effectuées sur la feuille ‘ALL’.

Cordialement.

47calendrier-v1.xlsm (195.40 Ko)

Salut Kikou,

Est-ce que ma réponse t'a été utile ?

A te relire.

Bonjour,

tout d'abord merci pour ton aide.

ta solution ne fonctionne pas chez moi mais cela me pousse à revoir mon idée de départ et à réfléchir à quelque chose de plus simple...ou de plus industriel genre redmine

merci encore.

Salut Kilou et merci pour ta réponse,

kikou12 a écrit :

ta solution ne fonctionne pas chez moi

Il n'y a pas de raison qu'elle ne fonctionne pas chez toi, mais as-tu l'envie d'approfondir la chose ou est-ce une manière de dire que ce sujet ne t'intéresse plus ? Dans ce dernier cas, dis-le franchement

Cordialement.

ça ne fonctionne pas chez moi sur excel starter car il ne veut pas de macro

j'ai tenté sur libre office mais message erreur

Erreur d'exécution BASIC.

'1'

Type: com.sun.star.container.NoSuchElementException

Message:

pas encore eu l'occasion de tester au boulot (mode vacances prolongées...)

mais comme je te disais, je regarde d'autres solutions plus simple genre un onglet par site qui simplifierait mon histoire et ne me dérangerait pas dans l'absolu.

bref, projet pas mur pour continuer.

Rechercher des sujets similaires à "concatener condition"