VBA: création de ligne

titine06

XLDnaute Junior
Bonjour à tous !!

J'ai une base de données (feuille SOURCE) dans laquelle, j'ai une liste de produits.
Chaque ligne correspond à un produit auquel j'ai affecté une Quantité.

Mon objectif, est de copier chaque ligne de la feuille SOURCE, et de la reproduire (dans la feuille SAISIE) autant de fois qu'il y a de Quantité.
ex: si la quantité d'une ligne est: 50 alors, cette ligne va etre copier/coller 50 fois.

La complexité de mon besoin est:

  • je ne souhaite pas copier l'ensemble de la ligne, mais uniquement les colonnes, dont le nom est référencé dans la feuille PARAMETRE C3:H3.

  • Je ne souhaite pas copier toutes les lignes, mais uniquement les lignes de la plage référencé dans la feuille PARAMETRE: C2: D2


  • Je souhaite coller les lignes à partir de la celulle référencé dans la feuille PARAMETRE D5: D6


J'espère que j'ai bien exprimé mon besoin...
Je reste dispo si vous avez des questions.

Toute aide/conseil est la bienvenue !
Merci d'avance

Titine
 

Pièces jointes

  • TITINE.xls
    24.5 KB · Affichages: 37
  • TITINE.xls
    24.5 KB · Affichages: 39
  • TITINE.xls
    24.5 KB · Affichages: 38

Modeste

XLDnaute Barbatruc
Re : VBA: création de ligne

Bonjout titine06,

Je ne comprends pas bien le but de la manoeuvre ... difficile donc de donner un quelconque conseil :confused:

Une série de questions me viennent à l'esprit:
- Le tableau en feuille Source, démarrera toujours en B9??
- Combien de colonnes au max? Jamais plus que ce qu'on a là?
- Tu te charges de vérifier que les n° de lignes en C2:D2 existeront bien dans le tableau?
- Tu es certaine de ne jamais générer, de cette manière, un tableau dépassant le nombre de lignes de la feuille de calcul?
- Tu garantis aussi que les titres des colonnes à prendre en compte seront identiques dans les deux feuilles?
- Tu n'auras pas de volumes trop conséquents à gérer?

... Si tu peux répondre par l'affirmative à chaque question, alors tu peux tester la pièce jointe ... en y ajoutant, au fur et à mesure de tes tests, des données supplémentaires et en faisant varier les différents paramètres (dans la feuille du même nom)

Edit: le code proposé ne copiait pas chaque ligne autant de fois que la quantité renseignée. Celui-ci devrait être mieux!?
 

Pièces jointes

  • TITINE(V3).xls
    40.5 KB · Affichages: 43
Dernière édition:

titine06

XLDnaute Junior
Re : VBA: création de ligne

Bonjour Modeste, le Forum !!!

Tout d'abord merci pour ta réponse. :D
La version que tu m'as fait est très bien et marche !

Je vais répondre aux différentes questions:

- l'intérêt du fichier excel: à la base, c'est un outil qui permet de faire des devis (produit, nombre de produits, options), et je souhaite créer cette fonction de création d'une ligne par quantité pour avoir un devis détaillé.
Pourquoi je souhaite que les zones saisies & copie soient définies via des celulles? car je ne gère pas trop (du tout) le vba, et je préfère créer des formules, et une feuille dédié au paramétrage du VBA. De plus, cela m'aide à mieux comprendre comment le VBA fonctionne.

-le tableau commencera toujours en B9? Non, la colonne de départ est variable en fonction des noms de colonnes référencés dans la feuille PARAMETRE, et la ligne aussi :( je n'y avais pas pensé. Je vais rajouter une zone dans la feuille PARAMETRE pour définir la ligne (actuellement 9) à laquelle le tableau commence.

-Le nombre de colonne max: ca dépassera un peu le nombre de colonne actuel, mais ca n'ira pas après la colonne Z. Donc si j'ai bien compris le code, il n'y a pas besoin de faire de modif sur l'actuel !

-Je me charge de vérifier que les ligne C2: D2 existerons (via une formule)

-Nombre de ligne max: pas plus de 1000 donc ca devrait aller

-Les titres seront les mêmes ! =) (je fais des liaisons entre les celulles pour être sur)

-Dans les deux cas il n'y aura pas trop de volume à gérer: 50 ligne max pour la feuille SOURCE // 1000 pour la feuille SAISIE. Cependant, le fichier réèl est très lourd (il y a d'autres feuilles indépendantes, avec beaucoup de formules/PDF/Images....) Est-ce que ca risque de poser problème?


J'ai mis en pièce jointe la version du fichier avec la zone en plus pour délimiter la ligne de début du tableau SOURCE.
Parallèlement, je continue mes tests et te fait un retour dès que j'ai fini !! =)

Encore merci pour ton aide !!!

titine06
 

Pièces jointes

  • TITINE(V4).xls
    40.5 KB · Affichages: 42

Modeste

XLDnaute Barbatruc
Re : VBA: création de ligne

Re-bonjour,

ça vaut ce que ça vaut, dans la mesure où on ne sait pas à quoi ressemble ton fichier (tu renseignes les paramètres et/ou tu remplis la feuille "source" à l'aide de formules :confused:), mais voici une autre façon de travailler: on indique des "X" au-dessus des colonnes à recopier et devant les lignes à dupliquer ... Entendons-nous, je ne prétends pas qu'il s'agisse d'un chef-d'oeuvre, simplement, c'est plus simple à coder (donc à adapter) et ça permet de voir d'autres façons de procéder (et évite de s'enfermer dans une construction de départ qui s'est alourdie et compliquée, parfois)

... Tu en feras, bien sûr, ce que tu veux ;)
 

Pièces jointes

  • TITINE(Vx).xls
    54.5 KB · Affichages: 46

Discussions similaires

Statistiques des forums

Discussions
312 493
Messages
2 088 952
Membres
103 989
dernier inscrit
jralonso