Insérer x lignes en fonction d'une valeur précédente

Bonjour,

Les macros que j'ai trouvées n'ont pas résolues mon problème que je pense simple (mais je suis parfaitement nul en VBA) : J'ai une colonne A contenant une suite numérique "à trous" A : (0 - 1 - 2 - 3 - 5 - 6 - 10 - 11...15697). Je souhaite insérer le nombre de lignes manquantes entre chaque "trous" : par exemple, insérer 1 ligne en dessous de la ligne 3, puis 3 lignes en dessous de la 6 etc. J'ai inséré une colonne B dont chaque cellule contient le nombre de lignes manque B :(0 - 0 - 0 - 0 - 1 - 0 - 3 - 0.....).

Pourriez-vous m'aidez ?

En vous remerciant,

Rémi.

Bonjour,

Une proposition réalisée avec Recupérer et transformer (Power Query).

J'ai fait un exemple de 0 à 1500.

Cdlt.

35remi08.xlsx (32.49 Ko)
annotation 2020 04 24 184947

Bonjour,

Vraiment merci pour votre réponse. Le problème est que je suis réellement nul...J'ai bien tenté de passer par "données" et de me débrouiller avec les requêtes. Mais je dois complètement rater la manip (ou elle demande vraiment beaucoup de temps pour les 15243 lignes pour les 15697 lignes que je souhaite obtenir...). Bref, je n'ai pas réussi à utiliser votre solution.

J'avais essayé ce genre de macro (récupérée sur site, je ne la comprends pas vraiment...) :

"Sub ajout()

Dim Ligne As Long

Ligne = Columns(4).Find("*", , , , xlByColumns, xlPrevious).Row

For n = Ligne To 2 Step -1

nl = Range("D" & n) - 1

If nl > 0 Then

For x = 1 To nl

Rows(n & ":" & n + 1).Select

Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove

Next

End If

Next

End Sub"

Le problème est qu'elle n'ajoute pas un ligne lorsque la valeur de référence = 1 ou qu'elle ajoute 4 ligne quand la valeur de référence = 3...

En vous renouvelant mes remerciements,

Rémi.

Bonjour,

Peux-tu joindre ta liste de valeurs initiales ?

Cdlt.

Bonjour,

Mon fichier est trop lourd (pourtant simplifié)...12 Mo. Je vous envoie donc les 219 premières lignes(hors entêtes) qui devraient en contenir au final 230. Fichier total : 15243 hors entêtes pour un fichier final de 15697 lignes (hors entête).

En vous remerciant,

Rémi.

15debut-fichier1.xlsx (21.57 Ko)

Bonjour,

Doit-on repoduire les valeurs de nbvois et dismoy lors de l'insertion des nouvelles lignes ?

Doit-on mettre en évidence les nouvelles lignes et sous quelles formes ?

Cdlt.

Il suffit d'exécuter la macro VBA

Elle me parait rapide, mais il ni a que 107 lignes manquante, il faut voir avec ton fichier

Bonjour Jean-Eric, Bonjour Toukoul,

Pour Jean-Eric, j'ai seulement besoin d'ajouter les lignes manquantes avec le FID ajouté (et rien dans les autres colonnes adjacentes de ces nouvelles lignes, comme le fait la macro de Toukoul).

Pour Toukoul, tout d'abord merci ! Toutefois, quand je fais tourner la macro, elle me crée seulement 445 lignes supplémentaires au lieu des 454 manquantes (elle ajoute aussi une serie de 0 à la fin du tableau mais ce n'est pas un problème). Je n'arrive pas à comprendre pourquoi certaines lignes ne sont pas créées.

J'ai mis le fichier complet finalement moins lourd que ce que j'avais cru.

Au risque de me répéter, vraiment merci à vous,

Rémi.

13fichiertot.xlsx (574.57 Ko)

Je vous demande de m'excuser, car si le but est de rajouter des lignes, lorsque le travail consiste à aller jusqu'au bout du tableau il faut tenir compte des lignes rajoutées, ce que je ne faisais pas!

Voila la macro VBA corrigée

A+

Bonjour,

La mise à jour de la proposition initiale.

A te relire.

Cdlt.

37debut-fichier1.xlsx (812.73 Ko)

Rebonjour à vous deux,

Super ! Vos solutions répondent parfaitement à mes demandes.

En vous souhaitant une excellente journée,

Rémi.

Re,

Pense à clore le sujet.

Cdlt.

Je suis si malin que je ne parviens pas à mettre les yeux sur le qui clos le sujet....

Rechercher des sujets similaires à "inserer lignes fonction valeur precedente"