Insertion de lignes ''filles'' d'après valeurs de lignes ''mère

Bonjour !

Je pense que seule une macro pourra m'aider, mais je suis à la ramasse dès qu'il s'agit de macro... C'est pourquoi j'aurais besoin de vos lumières s'il vous plait !

Je possède un fichier de "lignes mères" (voir le fichier joint).

L'idée serait d'ajouter un certain nombre de "lignes filles" en dessous de chaque ligne mère correspondante.

Le nombre de lignes serait en fonction du chiffre dans la colonne "O" (de 1 à 8max).

Idéalement, il faudrait répéter à l'identique de la "mère" la partie gauche du tableau (de "A" à "K") dans les lignes filles.

La manœuvre se fait plutôt facilement à la main, mais j'ai plus de 7000 lignes mères à traiter... D'où l’intérêt d'une macro à mon avis...

J'espère que mes explications sont suffisamment claires...

En attendant de vous lire, je vous remercie par avance de prendre de votre temps pour m'aider !

Bonne suite de journée !

Salut,

Je m'y met

Girodo,

Salut,

Si joint mon bout de code :

Sub MeresFilles()
'
' MeresFilles Macro
'

'Rajoute des lignes en partant de la dernière jusqu'à la ligne 2
For Ligne = 9 To 2 Step -1
Debug.Print Cells(Ligne, 15).Value
'Si la valeur en O est supérieure à 0
If Cells(Ligne, 15).Value > 0 Then

    For j = 1 To Cells(Ligne, 15).Value
        'Insertion de j lignes en dessous
        Rows(Ligne + 1).Insert Shift:=xlDown

        'Reprise des valeurs de A à K
        For i = 1 To 11
        Cells(Ligne + 1, i).Value = Cells(Ligne, i).Value
        Next i

        'Valeur en P = fille
        Cells(Ligne + 1, 16).Value = "fille"

    Next j
End If
Next Ligne
'
End Sub

Et le résultat en PJ

Girodo,

C'est Parfait !!!!

Merci beaucoup !

J'ai même pu l'adapter facilement à mes 7000 et quelques lignes !

Et tout a tourné comme sur des roulettes !!

C'est vraiment top ! Merci encore de m'avoir sorti cette grosse écharde du pied

Bonne continuation !

Salut,

Avec plaisir,

Je viens de relire mon message précédent,

Tu peux enlever la ligne Debug.Print Cells(Ligne, 15).Value qui ne sert à rien

ça affiche juste une valeur dans VBA qui m'a aidé pendant que je codais

Girodo,

D'accord, j'essaie de faire tourner comme ça.

Mais j'avais parlé trop vite... Je n'avais pas fait attention qu'il ne lisait que les 9 premières lignes.

Mais du coup, j'ai vu où changer la valeur et fait le test sur les 20 premières lignes. Ça fonctionne.

Mais si je met 7700 lignes, il m'affiche une erreur d'exécution '13' - Incompatibilité de type.

Sub MeresFilles()
'
' MeresFilles Macro
'

'Rajoute des lignes en partant de la dernière jusqu'à la ligne 2
For Ligne = 7700 To 2 Step -1
'Si la valeur en V est supérieure à 0
If Cells(Ligne, 22).Value > 0 Then

For j = 1 To Cells(Ligne, 22).Value [Le débogage met cette ligne en évidence]
        'Insertion de j lignes en dessous
        Rows(Ligne + 1).Insert Shift:=xlDown

        'Reprise des valeurs de A à K
        For i = 1 To 18
        Cells(Ligne + 1, i).Value = Cells(Ligne, i).Value
        Next i

        'Valeur en P = fille
        Cells(Ligne + 1, 23).Value = "fille"

    Next j
End If
Next Ligne
'
End Sub

Y a-t-il une limite dans le nombre de lignes exécutables ? Ou alors j'ai mal écrit quelquechose ?...

Salut,

Sans le le fichier source difficile à dire,

Le code lis pour chaque ligne le chiffre dans la colonne "O" (autrement dit la 15ème colonne) et insère le nombre de lignes correspondant.

Je vois que tu as remplacé mon 15 par un 22. Le nombre de lignes à insérer se trouve maintenant en colonne V ?

Si tu veux que je regarde envoie moi le fichier par MP

Girodo,

Rechercher des sujets similaires à "insertion lignes filles valeurs mere"