Ajouter des lignes en fonction de la valeur d'une cellule.
Résolu
supermajo
Messages postés
20
Statut
Membre
-
supermajo Messages postés 20 Statut Membre -
supermajo Messages postés 20 Statut Membre -
Bonjour,
J'ai un fichier de plusieurs milliers de lignes.
Dans la cellule D2, il y a un nombre qui indique le nombre de lignes - 1, que je dois dupliquer.
Exemple :
s'il y a 3, Excel doit dupliquer 2 fois la ligne.
S'il y a 5, il doit dupliquer 4 fois la ligne, etc.......
Je ne sais pas faire une macro.
Est-ce que quelqu'un peut m'aider ?
Merci bcp
J'ai un fichier de plusieurs milliers de lignes.
Dans la cellule D2, il y a un nombre qui indique le nombre de lignes - 1, que je dois dupliquer.
Exemple :
s'il y a 3, Excel doit dupliquer 2 fois la ligne.
S'il y a 5, il doit dupliquer 4 fois la ligne, etc.......
Je ne sais pas faire une macro.
Est-ce que quelqu'un peut m'aider ?
Merci bcp
A voir également:
- Vba insérer une ligne si cellule contient
- Excel si cellule contient partie texte ✓ - Forum Excel
- Insérer une vidéo dans powerpoint - Guide
- Si cellule contient texte alors ✓ - Forum Excel
- Aller à la ligne dans une cellule excel - Guide
- Si une cellule contient un mot alors ✓ - Forum Excel
3 réponses
Bonjour supermajo
Onglet Developpeur - Visual basic (ou ALT + F11) pour ouvrir l'éditeur VBA
Insertion - Module puis copier coller la macro suivante dans la page et fermer l'éditeur
Onglet Developpeur - Macris - Selctionner ajout puis Executer
Cdlmnt
Via
Onglet Developpeur - Visual basic (ou ALT + F11) pour ouvrir l'éditeur VBA
Insertion - Module puis copier coller la macro suivante dans la page et fermer l'éditeur
Sub ajout()
Dim Ligne As Long
Ligne = Columns(4).Find("*", , , , xlByColumns, xlPrevious).Row
For n = Ligne To 1 Step -1
nl = Range("D" & n) - 1
If nl > 0 Then
For x = 1 To nl
Rows(n + 1 & ":" & n + 1).Select
Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
Next
End If
Next
End Sub
Onglet Developpeur - Macris - Selctionner ajout puis Executer
Cdlmnt
Via

Merci pour ta réponse rapide.
Je viens de tester.
Des lignes vierges se sont ajoutées, mais j'ai eu un message d'erreur
"erreur d'exécution '13'
Incompatibilité de type
et quand j'ai cliqué sur Déblocage c'est la ligne
nl = Range("D" & n) - 1
qui était en jaune.
Je ne comprends pas ce que ça veut dire.
Est-ce que c'est parce que le contenu des cellules des colonnes ne se sont pas dupliqués ?
Encore merci pour ton aide précieuse.
Cdlt
Voici le lien vers le fichier.
https://www.cjoint.com/c/HLrlHRU3BEz
La colonne D est en format standard...
Faut-il la mettre en format nombre ?
Merci encore
Le bug vient simplement de la ligne de titre qui bien sur n’est pas un nombre
Il suffit de modifier la ligne de macro
For n = Ligne To 1 Step -1
en
For n = Ligne To 2 Step -1
Pas besoin de modifier le format de la colonne
Cdlmnt
Via
Bien cordialement