Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

insertion plusieurs lignes à chaque changement

  • Initiateur de la discussion Initiateur de la discussion ungarospy
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

U

ungarospy

Guest
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
 
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:
Re : insertion plusieurs lignes à chaque changement

Bonjour,

La macro bug sur cette ligne :
Columns(1).SpecialCells(xlCellTypeBlanks).Delete Shift:=xlUp
 
Re : insertion plusieurs lignes à chaque changement

Re-bonjour,

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

J'aurais dû 🙄 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 🙂
 
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?
 
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
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
23
Affichages
533
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…