Microsoft 365 Macro Pour inserer 9 lignes à chaque nouveau matricule

  • Initiateur de la discussion Initiateur de la discussion SEVE95
  • 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 !

Bonjour à tous

Vincent pourquoi une 2eme boucle il me semble que l'on peut le faire avec une seule boucle et arrêter la boucle à 4 au lieu de 3

For i = LastLine To 4 Step -1

VB:
Sub InsererEntreChaqueligne()
Application.ScreenUpdating = False
Dim i&, LastLine&
With ActiveSheet
    LastLine = .Range("A" & .Rows.Count).End(xlUp).Row
    For i = LastLine To 4 Step -1
        If .Range("A" & i) <> .Range("A" & i - 1) Then
            .Rows(i & ":" & i + 9).Insert
'            For j = 1 To 9
'                .Rows(i).Insert
'            Next j
        End If
    Next i
End With
Application.ScreenUpdating = True
MsgBox "OK"
End Sub
 

Pièces jointes

Bonjour à tous

Vincent pourquoi une 2eme boucle il me semble que l'on peut le faire avec une seule boucle et arrêter la boucle à 4 au lieu de 3



VB:
Sub InsererEntreChaqueligne()
Application.ScreenUpdating = False
Dim i&, LastLine&
With ActiveSheet
    LastLine = .Range("A" & .Rows.Count).End(xlUp).Row
    For i = LastLine To 4 Step -1
        If .Range("A" & i) <> .Range("A" & i - 1) Then
            .Rows(i & ":" & i + 9).Insert
'            For j = 1 To 9
'                .Rows(i).Insert
'            Next j
        End If
    Next i
End With
Application.ScreenUpdating = True
MsgBox "OK"
End Sub
Hello Phil

pourquoi une seconde boucle.. parce que je me pose systématiquement la question de "comment inserer x lignes d'un coup" 🙂
et pour s'arreter à 4 au lieu de 3.. effectivement
 
tu parles de 5000 lignes.. j'en déduis que finalement, ce n'est pas entre chaque NOUVEAU matricule mais bien entre CHAQUE ligne

VB:
Sub InsererEntreChaqueligne()
    Application.ScreenUpdating = False
    With ActiveSheet 'avec la feuille active
        LastLine = .Range("A" & .Rows.Count).End(xlUp).Row 'dernière ligne non vide de la colonne A
       
        Set zone = .Range("A2:F" & LastLine) 'on définit le tableau complet
        .Sort.SortFields.Clear
        .Sort.SortFields.Add2 Key:=zone.Columns(1).Offset(1, 0), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal 'on créé le tri sur la colonne A
        With .Sort 'on applique le tri
            .SetRange zone
            .Header = xlYes
            .MatchCase = False
            .Orientation = xlTopToBottom
            .SortMethod = xlPinYin
            .Apply
        End With

        For i = LastLine To 4 Step -1 'pour toutes les lignes en partant du bas
            'If .Range("A" & i) <> .Range("A" & i - 1) Then 'si on a deux matricules différents
                .Rows(i).Resize(9).Insert
            'End If
        Next i
    End With
    Application.ScreenUpdating = True
    MsgBox "OK"
End Sub
 
Re

En plus court pour le tri

VB:
Sub InsererEntreChaqueligne()
Application.ScreenUpdating = False
With ActiveSheet 'avec la feuille active
    LastLine = .Range("A" & .Rows.Count).End(xlUp).Row 'dernière ligne non vide de la colonne A
   .Range("A2:F" & LastLine).Sort Key1:=Range("A2:F" & LastLine), Order1:=1, Header:=xlYes, DataOption1:=xlSortNormal 'xlSortTextAsNumbers
    For i = LastLine To 4 Step -1 'pour toutes les lignes en partant du bas
        If .Range("A" & i) <> .Range("A" & i - 1) Then 'si on a deux matricules différents
            '.Rows(i & ":" & i + 9).Insert
            .Rows(i).Resize(9).Insert 'ou en version plus élégante de Cousinhub  ; )
        End If
    Next i
End With
Application.ScreenUpdating = True
MsgBox "OK"
End Sub

Et même remarque que Vincent
chez moi, avec ton fichier, elle s'execute correctement...

Ou alors il nous manque une info ......😳
 
Merci pour votre retour,
J'ai copié la macro dans visual basic et en l'éxécutant j'ai ce message
1719223849676.png
 
- 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

Discussions similaires

Réponses
16
Affichages
529
Réponses
3
Affichages
193
Retour