Créer multilignes à partir d'une ligne selon certains critères

12multilignes.xlsx (8.98 Ko)

Bonjour à tous,

Je suis un débutant dans VBA, mais j'ai un peu du mal pour commencer en attaquant directement des trucs bien concrets et utiles.
Si quelqu'un qui arrive à créer ce type de macro, ça pourrait vraiment me servir et gagner énormément du temps dessus.
Par la suite, je peux aussi créer ce type de macro en lisant votre code, d'ailleurs ça pourrait aussi servir aux autres commerçants qui importent leur produits en masse sur leur site.
En tous cas, je vous remercie en avance pour votre aide.

Voici mon objectif (voir le fichier ci-joint "MultiLignes.xlsx"):
J'ai un site web qui vends des vêtements, pour pouvoir mettre en ligne une chemise en couleur blanche avec la référence ch1, j'ai besoins créer 4 lignes pour 4 types de tailles (S M L XL), et j'ai besoins aussi remplir la quantité(quantité) pour chaque taille. Alors j'aimerais régénérer automatiquement toutes les lignes dans la feuille "Final" à partir de la feuille "Source" qui contient qu'une seule ligne par référence, à noter que dans la feuille "Source", il faut extraire la quantité et la taille dans le champs "taille_quantité" afin de les séparer et les insérer dans la feuille "Final".

Dans la feuille "Final", j'ai ajouté 3 champs (Attribut1,Attribut2 et Attribut3), ils seront aussi crées selon la valeur du champs taille et quantité.

il y a un cas particulier, pour les pantalons, dans la feuille "Source", pour le champs "taille_quantité", c'est marqué "1/25 2/26", cela veut dire, il a 1 pièce en taille 25 et 2 pièce en taille 26, par contre, je dois remplacer "/" par US dans la feuille "Final".

A noter que il y a que 2 types de format pour le champ "taille_quantité", la quantité et la taille peut être différent, mais le format est le même :

format 1: il commence toujours par un chiffre (exemple : 4) pour la quantité qui suit des lettres (exemple :XL) qui désignent la taille,
1S 2M 3L 4XL 5XXL 6 XXXL
et
format 2: il commence toujours par un chiffre(exemple : 1) pour la quantité qui suit le symbole "/" puis le chiffre (exemple : 25) qui corresponds aussi à la taille.
1/25/ 2/26 3/27

Je pense que j'ai un peu du mal pour vous expliquer par texte, peut être vous allez voir le fichier ci-joint, ça sera plus compréhensible.

.
Veuillez trouver ci-joint le fichier MultiLignes.xlsx qui contient 2 feuilles (Source et Final).

à noter que dans la feuille "Final", les colonne en couleur oranges, ce sont des valeurs fixes, alors les autres colonnes qui contiennent des valeurs qui varient selon le champs "taille_quantité" de la feuille "Source".

Bonjour

Ci joint ma solution

Je n'ai pas fait les attributs 1 et 2 car quelque soit la taille ou la couleur le chiffre ne change pas?

16multilignes.xlsm (22.18 Ko)

A+ François

Bonjour à tous

Une proposition PowerQuery

Source mise sous forme de tableau structuré. Si elle évolue clic droit dans le résultat, Actualiser

13multilignes-pq.xlsx (20.53 Ko)

Edit : vu 2007 après coup. Si ta version est effectivement inférieure à 2010, PowerQuery n'y est pas disponible

Bonjour

Bonjour à tous

Une variante VBA

Bye !

Je vous remercie pour votre rapidité et l'efficacité de votre précieuse retour, alors j'ai testé les 3 fichiers, ils sont tous très intéressant, voici quelques remarques et suggestions:
1. le code de fanfan38 qui marche parfaitement, néanmoins je vous propose une petite suggestion pour remplacer If [T_source].Item(i, 2) = "pantalon" par quelques choses comme If [T_source].Item(i, 4) qui contient le caractère '/', car j'ai oublié de vous préciser qu'il y a aussi la catégorie short etc... qui contient aussi le caractère '/' dans le champs 'taille_quantité'. Je pense que je vais essayer me débrouiller pour ajouter cette condition moi même en modifiant le code.

2. Pour le code de 78chris, en faite, j'ai aussi la version 2019 FR, j'ai testé ton fichier, lorsque je clique sur le bouton "actualiser tout" dans l'onglet Données, il m'affiche un message d'erreur ci-dessous, qui empêche l'exécution :

échec lors de l'initialisation de la source de données. vérifiez le serveur de base de données ou contactez votre administrator de base de données, etc...

3.Pour le code de govba , lorsque j'exécute le macro, il m'affiche un message d'erreur, puis je clique sur le bouton 'Débogage', il me redirige vers la ligne du code 'tabloR(5, k + t) = Left(tq, p - 1)'.

A noter que même si fanfan38 m'a déjà porté la solution, je préfère laisser ce sujet encore pendant quelques jours, afin de voir plusieurs solutions possibles.

correction faite

pour les attributs 1 et 2 tu n'as pas donné de réponse

5multilignes.xlsm (22.24 Ko)

A+ François

RE

2. Pour le code de 78chris, en faite, j'ai aussi la version 2019 FR, j'ai testé ton fichier, lorsque je clique sur le bouton "actualiser tout" dans l'onglet Données, il m'affiche un message d'erreur ci-dessous, qui empêche l'exécution :

échec lors de l'initialisation de la source de données. vérifiez le serveur de base de données ou contactez votre administrator de base de données, etc..

As-tu testé sur le fichier posté ? Si je charge le fichier présent ici dans mon post sur un PC équipé de 2010 il se met à jour sans erreur ni message

Vérifie tes options de sécurité : que la requête traite le contenu du classeur ou un fichier externe, c'est considéré comme données externes.
Donc si ton niveau de sécurité est très élevé et bloque totalement l'accès aux données sans même afficher le message permettant de valider (c'est comme pour le VBA), normal que tu aies cette erreur.

Nouvelle version.

14multilignes-v2.xlsm (22.74 Ko)

Bye !

Bonjour,

78chris, ça marche, effectivement c'est l'option de sécurité qui a bloqué l'exécution, désormais ça marche.
gmb, ton nouveau fichier marche aussi.

Maintenant j'ai 3 fichiers à ma disposition pour résoudre ce type de cas. Et je vous remercie à tous pour votre aide et votre efficacité, et à bientôt.
Rechercher des sujets similaires à "creer multilignes partir ligne certains criteres"