[Excel] Copier des données pour chaque ligne

Bonjour à tous.

Après plusieurs heures de recherches, plus ou moins fructueuses, je me suis résigné à demander de l’aide auprès des Geeks, des vrais !

Mon problème est le suivant:

Sous Excel, j’ai une feuille avec toutes les références produits d’un catalogue de la forme :

| ref1 |
| ref2 |
| ref3 |

Dans une autre feuille, j’ai toutes les déclinaisons possibles pour un produit.
| txt1 | 23.50�?� |
| txt2 | 28.90�?� |
| txt3 | 27.50�?� |

Il faudrait que j’arrive à “fusionner” ces deux tableaux afin d’avoir quelque chose du genre :
| ref1 | txt1 | 23.50�?� |
| ref1 | txt2 | 28.90�?� |
| ref1 | txt3 | 27.50�?� |
| ref2 | txt1 | 23.50�?� |
| ref2 | txt2 | 28.90�?� |
| ref2 | txt3 | 27.50�?� |
| ref3 | txt1 | 23.50�?� |
| ref3 | txt2 | 28.90�?� |
| ref3 | txt3 | 27.50�?� |

Et là je suis un peu désespéré, parce que j’ai à peu prêt 1600 déclinaisons et plus de 1000 produits, soit au bas mot 1 600 000 lignes … la méthode “à la main” étant bien entendu à proscrire pour mon bien être mental.

Pourquoi sous Excel me direz-vous ? Pour convertir ce fichier en CSV et l’importer sous Prestashop.

A l’aide !

J’ai pas trop compris ce passage …en gros tu as une feuille avec les références (ça ok), mais a coté tu as une feuille par produit ? pour les déclinaisons.

C’est ce que je comprend, et ça fait donc plus de 1000 feuilles donc j’émets un doute sur mon raisonnement…

Je n’ai que deux feuilles.

J’ai une feuille avec les références uniques des produits et une feuille avec toutes les déclinaisons possibles applicables à chaque produit. Les déclinaisons sont toutes les mêmes pour chaque produit.

En gros je copie 1000 fois les déclinaisons, et je rajoute devant la référence produit

Comment fais tu le lien entre le produit et ses déclinaisons entre les deux feuilles?

kaneloon > Les produits ont tous les mêmes déclinaisons, il faut juste que j’arrive à monter le fichier Excel pour pouvoir l’importer.

Il me semble que tu veux faire ce qu’on appelle en base de données un produit cartésien c’est à dire en SQL ne pas faire de jointure, ou en SQL ANSI faire Table1 CROSS JOIN Table2.

C’est ça ?

Si ça se fait sans souci en SQL, en revanche en excel de base, à moins de faire une boucle VBA excel je ne vois pas comment faire.

Alors que RECHERCHEV() en macro excel peut simuler la jointure quand elle existe.

A mon avis la le seul moyen c’est de passer par du VBA (qui dépasse mes compétences), je vois pas autrement.

Tu as toujours le meme nombre de declinaison par produit ? Et l’ordre est conservé ?
Si c’est ca, c’est juste une simple insertion de colonne avec qq formule pour repetant x fois une reference avant de passer à la suivante.

Sinon, je comprends comment tu sais que la declinaison de la ligne x de ton onglet declinaison est lié à la reference du produit y de ton onglet reference.

Poste ton fichier sinon, mais ca me semble pas bien mechant à faire.

Bon, j’ai arrêté de cherché, je pris le taureau par le cornes, j’ai importer mes données en SQL, j’ai fait ma jointure en PHP, et hop on en parle plus.

Excel c’est gentil mais “so 20° century”

Merci à tous !

Ahaha, j’avais eu un problème similaire et j’avais eu la même démarche Geekzone + forum de développeurs VBA… et bah aucune solution, malgré toute la bonne volonté. Excel c’est pas encore “for human beings”. Et les trucs qui te paraissent obvious, ça sait pas faire.

heu, j’utilise excel comme un porc tout les jours, et je suis encore tombé sur aucun truc evident qu’il ne sait pas faire. C’est juste qu’il faut avoir une approche un peu differente de celle que l’on a en programmation.
Mais sans passer par du VBA, juste avec les formules simples (somme, nb.si …), avancé (indirect, decaler, recherchev, index, equiv), et les formules matricielles ({SI(PLAGE;A;B)}), tu torches quasi tout.

Faut pas lui demander d’etre une base de données, mais tu peux déjà faire des trucs bien touchy avec ca. Alors les trucs obvious, c’est finger in the noze :wink:

Ouais enfin le vba c’est pas bien compliqué et quand même pas mal puissant. Méthode “for dummies”: tu enregistres une macro et tu regardes le code résultant.

bin je dis pas que c’est compliqué, c’est juste que ca change ton fichier de registre : faut activer l’exécution de macro et c’est pas toujours bien perçu, et surtout, avec une autre approche qu’une approche algorithmique classique, tu peux arriver a faire énormément de chose avec simplement les formules.

Souvent on conseille de passer au VBA sous excel, et je pense que c’est une méconnaissance de la puissance des formules avancés, qui sont quand même super puissante et plus simple à mettre en oeuvre.

J’avais un truc vraiment tout con à faire (extraire des dates dans un document A et les copier dans un document B sans casser la mise en page) et bah personne n’avait trouvé comment automatiser ça simplement. En fait, je reproche pas trop à Excel d’être Excel, je reproche aux collectivités/mairies/whatever de l’utiliser dès qu’ils ont besoin d’un tableau (en l�??occurrence un échéancier) sans se demander si l’outil répond à leur besoin.

Excel ne serait pas un tableur ? :wink:

Ben si. Excel est un excellent tableur, mais trop souvent c’est utilisé comme une base de données, ou une appli autonome et ça devient une usine à gaz.

(j’ai vu ton " :wink: " mais je ne pouvais pas m’empêcher de répondre dans le doute)

C’est certes un tableur, mais pour faire un planning, la fonction tableau d’open office par exemple est 10x plus intuitive dans le genre wysiwyg. Tracer le cadre à la main, faire des clics droits pour ajouter des colonnes sans que ça pète tout le reste… bref, c’est pas le débat, mais je trouve qu’excel s’en sort mal pour des besoins de base.