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
 

Créez un compte ou connectez vous pour répondre

Vous devez être membre afin de pouvoir répondre ici

Créer un compte

Créez un compte Excel Downloads. C'est simple!

Connexion

Vous avez déjà un compte? Connectez vous ici.

Haut Bas