Automatiser création composition produit en différentes langues

Bonjour à tous,

Je fais suite à une précédente demande qui a évoluée. Je suis chargé de la créer et traduire le composition de produits. Cette composition doit obéir à une certaine nomenclature pour être lue et intégrée par notre backoffice.

Je reçois les informations brutes sous la forme suivante: X% COMPOSANTFR X% COMPOSANTFR X% COMPOSANTFR . Par exemple : 72% POLYAMIDE 21% ELASTHANNE 7% POLYESTER

Le nombre et types de composants varie entre 2 et 4 (par exemple, 83% POLYAMIDE 17% ELASTHANNE, ou alors: 55% POLYESTER 18% POLYAMIDE 17% ELASTHANNE 10% COTON). Ce nombre peut être amené à évoluer dans le futur (5 composants ou plus, par exemple).

A partir de ces données brutes, je dois les mettre en forme pour intégration dans notre back office.

- Pour une intégration en français, la mise en forme à respecter est la suivante:

|ComposantFR=X%|ComposantFR=X%|ComposantFR=X%|. Avec mon premier exemple, cela donnerait: |Polyamide=72%|Elasthanne=21%|Polyester=7%|

Je précise que le passage des composants en majuscules à première lettre majuscule puis minuscules est important.

- Pour une intégration dans une langue étrangère (à ce jour: Anglais, Allemand, Espagnol, Italien, mais de nouvelle langue sont prévues pour plus tard), la mise en forme à respecter est la suivante:

|ComposantFR~ComposantAUTRELANGUE=X%|ComposantFR~ComposantAUTRELANGUE=X%|ComposantFR~ComposantAUTRELANGUE=X%|

Avec mon premier exemple, cela donnerait pour l'espagnol: |Polyamide~Poliamida=72%|Elasthanne~Elastano=21%|Polyester~Poliéster=7%|

Je cherche donc à savoir s'il est possible d'automatiser ces mises en formes. C'est à dire rentrer la mise en forme brute pour automatiquement obtenir les mises en formes dans les différentes langues (FR / EN / ALL / ES / IT), en prenant en compte les contraintes (passage majuscules -> minuscules, évolution du nombre de composants par produits, évolution du type de composants, nouvelles langues à venir).

En pièce jointe se trouve un fichier exemple ainsi que la liste des composants + traduction.

Merci d'avance pour votre aide !

3exemple.xlsx (9.42 Ko)

Bonjour

Pour info, ce fil est la suite d'un autre fil qui avait avorté sur l'impossibilité pour X.L. de définir des règles claires (mathématiquement logiques) concernant les formes, formes qui semblent avoir disparu de la demande d'aujourd'hui.

Si les formes ne font plus partie du besoin, je peux poster ce que j'avais fait en PowerQuery pour les langues...

Bonjour Chris,

Effectivement nos besoins ont évolués comme précisé dans le début de mon post, c'est pour cela que j'en ai créé un nouveau. Il a été décidé de se concentrer sur la composition avant de trouver une solution pour les formes, puisqu'on n'avait pas trouvé de solution à ce sujet.

Si tu as une solution pour la composition c'est super merci ! Par contre la forme de la composition que j'obtiens n'est plus la même que dans mon précédent post; je la récupère sous forme brute et doit la mettre en forme dans les 5 langues (et plus dans le futur).

Merci pour ton aide,

bonjour,

edit bonjour 78Chris

une proposition via une macro (lancer via altf8), la matière 100%

coton dont on doit préciser le pourcentage est incongrue.

1xavlis.xlsm (28.48 Ko)

RE à tous

Le problème majuscules/minuscules est plus complexe que cela car les minuscules du csv sont accentuées : il faut donc une table de correspondance.

Ce que j'avais fait il y a un mois partait d'une autre structure des données brutes (avec des ~).

Les choses semblent beaucoup fluctuer puisque tu annonces aussi plus ou moins le retour des formes...

Modifier le chemin du fichier puis Données, Actualiser Tout

Bonjour à tous,

@h2so4 Merci pour ta proposition ! J'ai essayé de rajouter une langue et un composant tout est pris en compte, c'est super. Effectivement le 100% coton n'est pas pertinent ici, je vais le retirer. Par contre comme le remarque Chris, j'ai l'impression que le problème de majuscule / accent pose problème.

J'ai essayé de lancer la macro avec : 55% FIBRES VÉGÉTALES 18% POLYAMIDE 17% ELASTHANNE 10% COTON et j'ai un message d'erreur m'indiquant "Erreur d'exécution 9 : L'indice n'appartient pas à la sélection" (même problème avec le composant Filet de pêche recyclé). Est ce que c'est effectivement lié aux accents?

@Chris Merci pour ton aide. Effectivement le format des données brutes n'est plus le même (avant quelqu'un se chargeait de le mettre en forme FR pour moi, maintenant je dois m'en occuper). Les choses fluctuent beaucoup car l'entreprise pour laquelle je travaille n'a pas beaucoup de moyen et est en pleine réorganisation ! En revanche pas de retour de formes prévu ni annoncé.

J'ai bien réussi à actualiser les données avec ton fichier; c'est ok pour le FR mais pour les autres langues ça traduit bien les composants mais en gardant la mise en forme FR (càd |ComposantFR=X%|ComposantFR=X%|ComposantFR=X%|) alors qu'il faudrait la mise en forme avec des ~ (type |ComposantFR~ComposantAUTRELANGUE=X%|).

J'ai aussi essayé d'ajouter un composant, c'est bien pris en compte, mais ça ne fonctionne pas si j'ajoute une langue :/

Concernant la table de correspondance, j'ai ajouté les valeurs majuscules au fichier des composants (en pj), est ce que ca te va comme ca?

Merci à tous les deux,

RE

Pour la différence de séparateur je n'avais pas vu

Pour la table de correspondance des caractères, j'en avais utilisé une mais le Français étant la référence, la colonne de MAJUSCULES suffit...

Pour la langue, PQ mémorise par défaut le nombre de colonnes du CSV : j'ai supprimé cette mention et testé avec une langue en plus, cela fonctionne

bonsoir,

correction de ma proposition VBA

8xavlis.xlsm (26.15 Ko)

Bonjour à tous les deux,

@Chris, merci pour ton retour. L'ajout d'une langue est bien en compte. Par contre la mise en forme que j'obtiens après avoir actualisé les données n'est plus bonne. J'ai pour FR: 72% Polyamide|21% Elasthanne|7% Polyester et pour les langues (ex. EN): 72% Polyamide~21% Elastane~7% Polyester.

Aussi, j'ai l'impression que les composants avec accents ne sont pas pris en compte, en tout cas je n'arrive pas à les faire afficher. Avec l'exemple 55% ISSUE DE FIBRES VÉGÉTALES 18% POLYAMIDE 17% ELASTHANNE, j'obtiens 18% Polyamide|17% Elasthanne (il manque un composant).

@h2so4: merci beaucoup pour ta proposition, les accents sont bien pris en compte, tout fonctionne très bien!

Bonjour à tous,

Je relance cette boucle car mon besoin a évolué. Jusqu'à présent le fichier de h2o4 fonctionnait très bien, mais la forme des compos que je reçois a un peu changé. Je les reçois désormais sous la forme suivante: COMPOSANTFR_1=X%|COMPOSANTFR_2=X%|ETC...

Par exemple: POLYAMIDE=72%|ELASTHANNE=21%|POLYESTER=7%|Formes=Avec armatures|Matière=Dentelle de calais

Pour le traduire, j'ai toujours besoin de la même forme qu'auparavant, càd: ComposantFR~ComposantAUTRELANGUE=X%|ComposantFR~ComposantAUTRELANGUE=X%|ETC...

Avec mon exemple, pour traduire en espagnol, cela donnerait: POLYAMIDE~Poliamida=72%|ELASTHANNE~Elastano=21%|POLYESTER~Polyester=7%|Forme~Forma=Avec armatures|Matière~Material=Dentelle de calais

J'ai besoin de traduire les COMPOSANTS (càd ce qui se trouve avant le "=") de mes compositions en respectant la nomenclature ci dessus, dans les langues suivantes: ALLEMAND, ITALIEN, ESPAGNOL, ANGLAIS.

Je vous joins un fichier d'exemple avec onglet 1 une liste d'exemple de compositions et onglet 2 une table de correspondance avec les traductions par langue des composants (sachant que cette liste de composant peut évoluer au fil du temps).

Merci pour votre aide

4classeur2.xlsx (13.83 Ko)
Rechercher des sujets similaires à "automatiser creation composition produit differentes langues"