Ajouter des lignes en fonction de la valeur d'une cellule.

Résolu/Fermé
supermajo
Messages postés
15
Date d'inscription
dimanche 16 décembre 2018
Statut
Membre
Dernière intervention
19 mars 2019
- 16 déc. 2018 à 19:09
supermajo
Messages postés
15
Date d'inscription
dimanche 16 décembre 2018
Statut
Membre
Dernière intervention
19 mars 2019
- 23 janv. 2019 à 16:01
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

3 réponses

via55
Messages postés
13694
Date d'inscription
mercredi 16 janvier 2013
Statut
Membre
Dernière intervention
28 juin 2022
2 432
16 déc. 2018 à 19:34
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
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
1
supermajo
Messages postés
15
Date d'inscription
dimanche 16 décembre 2018
Statut
Membre
Dernière intervention
19 mars 2019

16 déc. 2018 à 20:14
Bonsoir Via55,

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
0
supermajo
Messages postés
15
Date d'inscription
dimanche 16 décembre 2018
Statut
Membre
Dernière intervention
19 mars 2019

17 déc. 2018 à 12:35
Bonjour

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
0
via55
Messages postés
13694
Date d'inscription
mercredi 16 janvier 2013
Statut
Membre
Dernière intervention
28 juin 2022
2 432
17 déc. 2018 à 13:40
Re

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
0
supermajo
Messages postés
15
Date d'inscription
dimanche 16 décembre 2018
Statut
Membre
Dernière intervention
19 mars 2019

17 déc. 2018 à 14:20
Merci beaucoup via55.
Bien cordialement
0