Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Microsoft 365 VBA création ligne en fonction d'un nombre et occurrence copier coller

simsinaty

XLDnaute Nouveau
Bonjour à tous chers Excel Masters,

Je tombe sur un os et fait appel à vos connaissances pour m'aider si vous le voulez bien. Je vous mets le fichier initial en pièces jointe. Si vous pouvez m'aider je vous en serai très reconnaissant. Merci à tous !

Mon tableau de base se trouve dans l'onglet BASE. Le but est de passer en une seule macro de BASE à onglet "3". Je vous fais des exemples de l'attendu à chaque étape pour plus de clarté.

Etape 1 : je souhaite insérer un nombre de lignes en-dessous de chaque ligne à partir de la ligne 2 selon la typologie en colonne R = à T2 ou U2 (résultat attendu onglet 1 avec exemple pour 2 lignes de charges et de produits). Dans mon exemple, si colonne R = charges, alors insérer 579 lignes (U2), si produits, insérer 19 lignes (T2).

Etape 2 : Toutes les lignes vides créées : remplir des mêmes valeurs que celles mises dans la ligne "maître" du dessus les valeurs pour A,B,C,D, et R (onglet 2).

Etape 3 : aller en première colonne non vide (colonne S) et :
si R = "produits",
alors copier/coller les items de facturation colonne B de l'onglet "A COLLER" pour chaque ligne( sélectionner de b2 à la fin de la liste car ces items peuvent varier en nombre)
alors colonne D = colonne T

si R = "charges",
alors copier/coller les items de facturation colonne B de l'onglet "A COLLER" pour chaque ligne, attention, ces items peuvent varier en nombre
alors copier/coller les clients colonne A de l'onglet "A COLLER" pour chaque ligne d'item

Et après ? UN grand MERCI !

Belle journée à vous.
 

Pièces jointes

  • exemple.xlsx
    199 KB · Affichages: 5

vgendron

XLDnaute Barbatruc
Hello
un nouveau test
si j'ai bien compris, dans le cas d'un produit, la colonne T = Colonne D
dans le cas d'une charge, la colonne T = Liste Client
 

Pièces jointes

  • exemple (4).xlsm
    209.3 KB · Affichages: 9

simsinaty

XLDnaute Nouveau
Hello
Un essai par macro
Alors, c'est quasi cela à 99%. Il ne manque qu'une chose : dans ton code tu as écrit (j'ai rajouté deux onglets au lieu d'un initial c'est normal)

With Sheets("5-f")
TabClient = .Range("A2:A31").Value
End With
With Sheets("5-e")
tabitem = .Range("A2:A21").Value
End With

Pour ces dernières lignes, comment dire, prendre la dernière ligne (car liste modifiable) non vides et non = 0 ?

MErci beaucoup encore !
 
Dernière édition:

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…