Concatenation sous condition
Bonjour à tous,
J'espère que vous allez pouvoir m'aider à résoudre mon problème et que le "challenge" sera vous satisfaire.
J'ai un fichier Excel (jusque-là rien de très original
J'ai tenté des approches différentes et lu plusieurs suggestions sur le forum mais mes capacités VBA et Excel ne me permettent pas de m'inspirer des réponses de topic similaires.
Pour le moment j'ai créé une "clé", j'aimerai donc une fonction qui affiche la clé une seule fois et qui regroupe à coté tous les libellés d'évènement pour lesquels la clé est identique. Une autre solution avec le même résultat est naturellement bienvenue
Attention dans le "vrai" fichier il y a un filtre, pour les évènements non pris en compte sur un pays, il y a donc des lignes masquées. Si cela est problématique, je vous enverrai un fichier complémentaire.
Mon exemple joint.
Merci d'avance pour votre aide.
Doroteka
Salut et bienvenue sur le Forum,
Dans ton exemple, tous les textes à concaténer se suivent sur les différentes lignes ; est-ce bien le cas dans la réalité ou tu pourrais avoir deux évènements à concaténer placés complètement séparément ?
Si le nombre de données à concaténer peut être très grand, il se pourrait que la cellule concernée de la colonne M soit énorme, non ? Si c’est bien le cas, est-ce qu’un report du résultat sur une autre feuille serait envisageable ?
A te relire.
Bonjour Yvouille
C'est bien le cas dans la réalité. Pour formuler autrement, je dois regrouper dans une cellule (M2 dans l'exemple), tous les textes « n », pour lesquels la clé est identique. La structure du fichier est telle dans la réalité que les "clés" créées sont déjà regroupées. Là où le bloque, c'est que le nombre de lignes à regrouper est variable.
Le contenu de la cellule M pourrait être assez grand, mais dans l'usage il n'y a jamais plus de 10 lignes à regrouper, mais un report sur une nouvelle feuille est tout à fait envisageable, s'il est toujours possible de garder la possibilité de travailler dessus
Aujourd'hui je fais le boulo manuellement ce qui est vraiment fastidieux et en plus source d'erreur. Idéalement si j'arrive à comprendre les codes je souhaiterai aussi concaténer texte 1 ; CA 1 / Texte 2 ; CA 2 etc. Ensuite dans une nouvelle colonne, je devrai sommer les CA pour lesquels la clé est identique.
Je complète l'exemple en jaune au cas où, mais bon une chose après l'autre.
En espérant avoir répondu à la question.
A bientôt
Bonjour,
Un premier jet ... avant d'ajouter les conditions ...
Function CondConcat(maPlage As Range) As String
Application.Volatile
Dim maCell As Range
For Each maCell In maPlage
If maCell.Value <> "" Then
CondConcat = CondConcat & maCell & "; " & maCell.Offset(0, 1).Value & "/ "
End If
Next
End FunctionBonjour,
A tous les éventuels lecteurs ou participants à ce fil, je me permets de souligner que le caractère très international de la grande Société ( identifiable avec trois lettres et quatre roues ) a conduit l'auteur de la question initiale à poster un fichier Excel corrompu par des milliers de styles venus du monde entier ... soit plusieurs méga de données xml ...
Ces styles auront la très facheuse tendance d'envahir votre propre configuration Excel et de considérablement (et inutilement) alourdir tous vos fichiers ... (donc attention ...)
Amicalement
Bonjour James007,
Vraiment désolée, en effet ce n'est pas terrible.
Je me retire pour éviter tous soucis à d'autres lecteurs.