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

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

Statistiques des forums

Discussions
311 720
Messages
2 081 910
Membres
101 837
dernier inscrit
Ugo