insertion plusieurs lignes à chaque changement

ungarospy

XLDnaute Nouveau
Bonjour ,

Je souhaiterais pouvoir insérer un certains nombres de lignes à chaque fois que la valeur de la colonne A change de valeur.
Le nombre de ligne n'étant jamais le même (2,3,4 ou 5) suivant le type de tableau est-il possible de passer via une comboBox ou je pourrais indiquer le nombre de ligne à inserer (ou passer par un autre moyen)

Ce que j'ai

A
A
B
B
c
c

Ce que je voudrais

A
A


B
B


C
C


je souhaite borner le nombre de ligne du tableau initial à Ligne = Range("A65536")
Merci de votre aide
 

DoubleZero

XLDnaute Barbatruc
Re : insertion plusieurs lignes à chaque changement

Bonjour ungarospy, le Forum,

Comme ceci ?

Code:
Option Explicit
Sub Ligne_insérer()
    Dim i As Long
    Application.ScreenUpdating = False
    Columns(1).SpecialCells(xlCellTypeBlanks).Delete Shift:=xlUp
    For i = Cells(Rows.Count, "a").End(xlUp).Row To 2 Step -1
        If Range("a" & i) <> Range("a" & i).Offset(-1, 0) Then Rows(i).Insert
    Next i
    Application.ScreenUpdating = True
End Sub
A bientôt :)
 
Dernière édition:

ungarospy

XLDnaute Nouveau
Re : insertion plusieurs lignes à chaque changement

Bonjour,

La macro bug sur cette ligne :
Columns(1).SpecialCells(xlCellTypeBlanks).Delete Shift:=xlUp
 

DoubleZero

XLDnaute Barbatruc
Re : insertion plusieurs lignes à chaque changement

Re-bonjour,

...La macro bug sur cette ligne :
Columns(1).SpecialCells(xlCellTypeBlanks).Delete Shift:=xlUp
J'aurais dû :rolleyes: y penser...

Remplacer le code déposé en #2 par celui-ci :

Code:
Option Explicit
Sub Ligne_insérer()
    Dim i As Long
    Application.ScreenUpdating = False
    On Error Resume Next
    Columns(1).SpecialCells(xlCellTypeBlanks).Delete Shift:=xlUp
    For i = Cells(Rows.Count, "a").End(xlUp).Row To 2 Step -1
        If Range("a" & i) <> Range("a" & i).Offset(-1, 0) Then Rows(i).Insert
    Next i
    Application.ScreenUpdating = True
End Sub
A bientôt :)
 

ungarospy

XLDnaute Nouveau
Re : insertion plusieurs lignes à chaque changement

Merci
Pour l'insertion d'une ligne pas de problème.
Par contre , si je veux en insérer 4 , je suis obligé de la faire tourner 4 fois
Est-il possible d'avoir quelque chose qui permet de faire tourner plusieurs fois cette macro en une seul fois suivant le nombre d'insertion que l'on souhaite faire?
 

ungarospy

XLDnaute Nouveau
Re : insertion plusieurs lignes à chaque changement

J'ai trouvé un truc qui marche par contre je dois modifier la macro suivant le nombre de ligne à insérer en ajoutant ou supprimant la ligne de commande suivante : " Rows(lRow).EntireRow.Insert"

Sub InsertRowAtChangeInValue()

Dim lRow As Long

For lRow = Cells(Cells.Rows.Count, "A").End(xlUp).Row To 2 Step -1
If Cells(lRow, "A") <> Cells(lRow - 1, "A") Then
Rows(lRow).EntireRow.Insert
Rows(lRow).EntireRow.Insert
Rows(lRow).EntireRow.Insert
End If
Next lRow
End Sub

Si on pouvait me trouver un truc pour évité de faire cette modification , car du coup je fonctionne en mode dégradé
Merci
 

Discussions similaires


Haut Bas