Macro pour inserer une ligne

Bonjour,

Jai tente, sans succes, de creer une macro pour insere une ligne lorsque le numero de certificat (colonne A) change, c-a-d insere une ligne vide entre chanque numero de certificat different.

Par exemple, dans le fichier ci-joint, jaimerais quune ligne vide sajoute entre les lignes 3-4, 7-8, 10-11, etc...

Merci a lavance pour votre aide et/ou conseil,

Frenchyboy

26macro-insert-rows.zip (102.09 Ko)

bonjour,

3 remarques sur ta macro si je puis me permettre:

  • il faut boucler sur ton index "numéro" pour qu'il change de valeur et qu'il traite les lignes suivantes
  • il faut commencer par le bas et monter en haut car lorsque tu insères une ligne tu incrémentes les autres donc ton curseur ne bouge pas
  • si tu mets des variables, il faut éviter de les mettre entre guillemets sinon ils sont considérés comme du texte

Voici la macro corrigée

Option Explicit
Option Base 1

Sub Insert_Rows()

    Dim numero As Integer
    Dim derligne As Integer

    derligne = Columns("A:A").Find("*", Range("A1"), , , xlByRows, xlPrevious).Row

    For numero = derligne - 1 To 2 Step -1
        If Cells(numero, 1).Value <> Cells(numero + 1, 1).Value Then
        Rows(numero + 1 & ":" & numero + 1).Select
        Selection.Insert Shift:=xlDown
        End If
    Next numero

End Sub

espérant t'avoir aidé

Bonjour FrenchyBoy, Nor,

même principe, plus simple, Nor, me semble-t-il, quant aux calculs de la dernière ligne de "A" et de l'Insert?!

Même si tous les chemins mènent à Rome!

Cliquer dans [A1] démarre la macro!

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
'
If Target.Address = [A1].Address Then
    iRow = Range("A" & Rows.Count).End(xlUp).Row
    Application.ScreenUpdating = False
    For x = iRow To 3 Step -1
        If Cells(x, 1) <> Cells(x - 1, 1) Then Rows(x).Insert shift:=xlDown
    Next
    Application.ScreenUpdating = True
End If
'
End Sub

Bonne soirée!

A+

Rechercher des sujets similaires à "macro inserer ligne"