Insérer une ligne à chaque changement de valeur d'une certaine colonne.

Kevin75

XLDnaute Nouveau
Bonjour,
J'ai une requête concernant une petite macro Excel :

J'ai un tableau de données de plusieurs lignes et colonnes et je veux insérer une ligne de cellule vierge à chaque fois que la valeur de la colonne B change.

Exemple :

Code:
Pomme                                 Pomme
Pomme                                 Pomme
Banane   ->   devient   ->  *ligne de cellule vierge*
Banane                                Banane 
Poire                                 Banane
Poire                         *ligne de cellule vierge*                      
                                      Poire
                                      Poire

Pour la logique informatique, je vois à peu près ce qu'il faut faire, j'ai surtout un problème dans la syntaxe.
Voila sur quoi je partais, mais cela ne fonctionne pas.
Code:
Sub Espacement()
Dim NoCol As Integer
Dim NoLig As Integer
    NoCol = 2 'lecture de la colonne B
    For NoLig = 1 To 300 Step 1
        If Cells(NoLig + 1, NoCol) <> Cells(NoLig, NoCol) Then Rows(NoLig).Select
        Selection.Insert Shift:=xlDown
    Next NoLig
End Sub
Cela m'insère 300 lignes vide ;)
Merci d'avance pour votre aide.
 
Dernière édition:

pierrejean

XLDnaute Barbatruc
Re : Insérer une ligne à chaque changement de valeur d'une certaine colonne.

Bonjour kevin75

Et bienvenue sur XLD

A tester:

Code:
Sub test()
For n = Range("A" & Rows.Count).End(xlUp).Row To 2 Step -1
 If Range("A" & n - 1) <> Range("A" & n) Then
   Rows(n).Insert
 End If
Next
End Sub
 

juj781

XLDnaute Nouveau
Bonjour,
Ce code est parfait sauf qu'a chaque fois qu'on excute la macro, cela nous rajoute des lignes. Avez vous des pistes pour inclure une condition du type "si c'est une ligne vide alors passer à la suivante sans rajouter de nouvelle ligne "
Merci !
 

Discussions similaires

Statistiques des forums

Discussions
312 198
Messages
2 086 126
Membres
103 127
dernier inscrit
willwebdesign