XL 2010 Amélioration d'une macro-insertion de ligne selon un critère-fichier ex en pj

alex53

XLDnaute Junior
Bonjour,

Je travaille actuellement sur une macro, mais je bloque et je n'arrive pas à l'améliorer et terminer le travail!

En pièce jointe il y a un exemple simplifié. Dans l'onglet "test" il y a ma macro actuelle (incomplète), et dans l'onglet "résultat souhaité" j'ai affiché le résultat que je souhaite avoir après avoir activé ma macro

D'avance merci à ceux qui jetteront un coup d’œil et qui me donneront quelques conseils pour avancer


Alexandre
 

Pièces jointes

  • Test v4.xlsm
    25.9 KB · Affichages: 42

alex53

XLDnaute Junior
Bonjour Lone-wolf,

Merci beaucoup pour ta réponse!

Pour l'instant lorsque j'active ta macro j'ai le message, "variable non définie"
J'ai essayé de corriger l'erreur tout seul mais sans succès :(

D'avance merci si tu peux jeter un coup d’œil!

Bonne journée

Alexandre
 

alex53

XLDnaute Junior
Bonjour Lone-Wolf,

Encore merci pour ta réponse.

Ce que je souhaite obtenir est un peu différent de la macro que tu as réalisé. Je n'ai pas été assez clair.

En Feuil2 j'ai mis un exemple entre l'information d'origine et l'information que je souhaite obtenir après activation de la macro.

La logique est la suivante:
-La macro analyse tous les codes produits de la colonne D. Si le code produit est un code produit mère listé dans Feuil3, alors la macro doit insérer des nouvelles lignes pour intégrer les Codes produits filles + recalculer un nouveau montant (colonne L) selon les taux de pourcentage dans Feuil 3
Je précise que je ne me sers pas de la Ref Client Interne

Exemple
-La macro analyse le 1er code produit 23265. Ce code produit est bien un code produit mère listé dans Feuil3. A ce code produit mère est rattaché 2 codes produits filles 21654 et 21156 qui équivalent respectivement 10% et 90% du code produit mère 23265
-La macro insère 2 nouvelles lignes
-La macro recopie pour les 2 nouvelles lignes les informations à l'identique de la ligne du code produit 23265 sauf pour les colonnes D et L
-Pour la colonne D, la macro indique le nouveau code produit (= 21654 pour la 1ere nouvelle ligne et 21156 pour la 2eme nouvelle ligne)
-Pour la colonne L, pour la 1ere nouvelle ligne avec le code produit fille 21654, le montant va être de 10000*10%=1000. Pour celui avec le code produit fille 21156, le montant va être de 10000*90%=9000

Puis ce même raisonnement est appliqué à toutes les lignes. Si le code produit n'est pas un code produit mère, alors rien ne se passe, la macro garde l'information à l'identique

D'avance merci si tu peux me donner quelques conseils pour avancer

Alexandre
 

Pièces jointes

  • Classeur1.xlsm
    26.1 KB · Affichages: 35

alex53

XLDnaute Junior
Bonjour Jean Pierre,
Bonjour Lone Wolf,

Encore une fois merci la macro fonctionne à merveille.

J'ai cependant un petit problème: avec mon nombre de lignes, la macro prends beaucoup de temps..
J'ai environ 3000 lignes à traiter (dans l'onglet Feuil 2) et lorsque je déclenche la macro, après 20 min Excel est toujours en train de tourner.
Ce qui est étrange est que lorsque je fais tourner la macro avec 1000 lignes (onglet Feuil 2), celle-ci s'effectue en 10 sec environ et avec 1500 lignes elle s'effectue en 20 sec environ.
Mais des que je passe au-dessus de 2000 lignes alors le temps de traitement devient très long.

Cela ne vient pas d'un bug de mes données car dans mes tests je copie toujours les mêmes 500 lignes

Pour repère, lorsque je mets 1000 lignes dans mon onglet Feuil 2 (avant traitement de la macro) cela donne environ 2500 lignes dans l'onglet Feuil 1 (après traitement de la macro)

Je précise que le fichier sur lequel je fais les tests est le même que celui posté par JeanPierre sauf que dans l'onglet "Feuil 3" je n'ai pas 7 lignes mais 200

Avez-vous une idée de comment résoudre ce problème?

D'avance merci

Alex53
 
Dernière édition:

Lone-wolf

XLDnaute Barbatruc
Bonjour Alex :), pierrejean :)

Alex, si tu prend toutes les données en un coup, c'est claire que ça ne tourne pas rond. Vaux mieux copier les données par référence client qui on un max de 10 lignes(enfin j'imagine). Pour ce, crée une liste avec les références clients.
 

Discussions similaires

Statistiques des forums

Discussions
312 913
Messages
2 093 534
Membres
105 752
dernier inscrit
fred13340