VBA excel insérer une ligne vide

Résolu/Fermé
Vince - 23 nov. 2007 à 12:34
 le père - 23 nov. 2007 à 14:17
Bonjour,

Je voudrais en vba excel insérer des lignes à chaque fois qu'une valeur d'une cellule change par rapport à celle du dessus.

exemple : il faudrait que j'insére une ligne vide entre 15 et 20, entre 20 et 23, entre 23 et 26.


Colonne

15
15
15
20
20
23
26
26
26

Voila le code sur lequel je travaillais mais ça ne marche pas sur les lignes seules.

Dim CellsToSuppr As Range, derLi As Long

Application.ScreenUpdating = False
derLi = Cells(Rows.Count, 1).End(xlUp).Row
For i = 1 To derLi
If Not Cells(i, 4) = Cells(i + 1, 4) Then
If CellsToSuppr Is Nothing Then
Set CellsToSuppr = Cells(i, 4)
Else: Set CellsToSuppr = Union(CellsToSuppr, Cells(i, 4))
End If
'Selection.EntireRow.Insert Shift:=xlDown
Else
End If
Next i
CellsToSuppr.Select
Selection.EntireRow.Insert Shift:=xlDown


merci d'avance pour l'aide.

1 réponse

Bonjour,

Ta formule pour derli est vraiment bizarre, d'où la sors-tu ? Chez moi derli vaut toujours 1
Dim derli As Long

Dim i%, f As Worksheet
  Set f = ActiveSheet
  
  derli = f.UsedRange.Row + f.UsedRange.Rows.Count - 1
  For i = f.UsedRange.Row To derli
    If Not f.Cells(i, 4) = f.Cells(i + 1, 4) Then
      f.Cells(i + 1, 4).EntireRow.Insert Shift:=xlDown
      i = i + 1                       ' pour sauter la ligne vide
      derli = derli + 1          ' car on a repoussé la dernière ligne
    End If
  Next i
  Application.ScreenUpdating = True
3