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

Macro pour multiplier les lignes (par n) selon une valeur (n) comprise dans une case

dapekone

XLDnaute Nouveau
Bonjour à toutes et à toutes,

J'ai besoin d'effectuer cette manip pour avancer dans mes travaux.

Pour l'instant, j'ai des lignes qui correspondent à des lots : pour chacune d'entre elles, on a "n" exemplaires (colonne "H").
J'aimerais multiplier chaque ligne par le nombre d'exemplaire en "H" (une ligne ne représenterait plus un lot, mais un seul exemplaire).
Vous avez un échantillon en PJ :
Par exemple : en ligne 5, j'ai 133 exemplaires (colonne H), je souhaiterais 133 lignes (identiques à la ligne 5) ; idem pour la ligne 6, je souhaiterais 818 lignes (qui reprennent toutes les infos de la ligne 6). Les valeurs ne doivent pas être modifiées.

Pouvez-vous m'indiquer quelle macro pourrait effectuer cette opération? (sachant que le fichier originel fait plus de 500 lignes).

(petit problème, c'est qu'il y a des valeurs non numériques : inc. (soit inconnues), mais on peut modifier en valeurs numériques (1 par ex)).

Je vous remercie par avance pour votre aide, vous m’ôtez une belle épine du pied!

Dapek
 

Pièces jointes

  • TRESORS_FRANCE.xlsx
    11.5 KB · Affichages: 104

Efgé

XLDnaute Barbatruc
Re : Macro pour multiplier les lignes (par n) selon une valeur (n) comprise dans une

Bonjour dapekone
Une proposition :
VB:
Sub Ajout()
Dim I&
Application.ScreenUpdating = False
With Sheets("Sheet1")
    For I = .Cells(.Rows.Count, 1).End(3).Row To 2 Step -1
        If IsNumeric(.Cells(I, 8).Value) And .Cells(I, 8) > 1 Then
            .Rows(I).Copy
            .Rows(I).Resize(.Cells(I, 8).Value - 1, 1).Insert Shift:=xlDown
        End If
    Next I
End With
Application.ScreenUpdating = True
End Sub
Cordialement
 

Discussions similaires

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