Insérer une ligne avec condition

Résolu
Ecrelinf Messages postés 36 Date d'inscription   Statut Membre Dernière intervention   -  
Ecrelinf Messages postés 36 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

Voici mon problème :
J'ai un tableau excel avec dans la colonne J, des valeurs triés selon un tri personnalisé (elles ne sont pas triées dans l'ordre croissant ou décroissant) et j'aimerais que lorsque l'on "change" de valeur on insère une ligne. Par exemple :
J'ai :
308 en J2
308 en J3
308 en J4
250 en J5

Je voudrais insérer une ligne entre J4 et J5.

J'ai essayé ça :

Dim f As Long
For f = 1 To i - 1
If Range("J" & f).Value <> Range("J" & f - 1) Then
Rows(f + 1).Select
Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
End If
Next

Avec i-1 la dernière ligne contenant des valeurs.

Lorsque j'exécute, j'ai en fait i-1 lignes qui s'insèrent entre la ligne 1 et 2 ^^'

Est-ce que quelqu'un a une idée de comment je pourrais faire ? J'imagine qu'un for n'est pas la solution, mais peut être qu'avec un while ...

Ah j'oubliais, je suis novice sur VBA, donc allez y douuuuucement ahah

Merci d'avance,

Ecrelinf

2 réponses

f894009 Messages postés 17277 Date d'inscription   Statut Membre Dernière intervention   1 713
 
Bonjour,

un exemple:

Sub test()
Dim f As Long
'adaptez le nom de la feuille
With Worksheets("feuil1")
'derniere cellule non vide colonne J
derlig = Range("J" & Rows.Count).End(xlUp).Row
'boucle de fin vers debut-1
For f = derlig To 2 Step -1
If Range("J" & f).Value <> Range("J" & f - 1) Then
Rows(f).Insert Shift:=xlUp
End If
Next f
End With
End Sub
1
Ecrelinf Messages postés 36 Date d'inscription   Statut Membre Dernière intervention  
 
Nickel merci à toi !!
0