Macro pour insérer un ligne sous condition
yannick
-
Gyrus Messages postés 3360 Statut Membre -
Gyrus Messages postés 3360 Statut Membre -
Bonjour,
J'ai un fichier excel avec des données sorties d'une base de données.
En colonne A, j'ai un ordonnancement.
Exemple
1
2
3
4
6
7
8
Vous remarquez qu'on passe de 4 à 6.
Je cherche donc une macro pour insérer une ligne si les chiffres ne se suivent pas (si on passe de 4 à 6, il faut insérer une ligne entre les deux ; si on passe de 4 à 7, il faut insérer deux lignes).
Merci pour votre aide !!!
J'ai un fichier excel avec des données sorties d'une base de données.
En colonne A, j'ai un ordonnancement.
Exemple
1
2
3
4
6
7
8
Vous remarquez qu'on passe de 4 à 6.
Je cherche donc une macro pour insérer une ligne si les chiffres ne se suivent pas (si on passe de 4 à 6, il faut insérer une ligne entre les deux ; si on passe de 4 à 7, il faut insérer deux lignes).
Merci pour votre aide !!!
2 réponses
-
Bonsoir,
Sub Test()
Dim Ligne As Long, i As Long, n As Long
For Ligne = Range("A" & Rows.Count).End(xlUp).Row To 2 Step -1
If Range("A" & Ligne) > Range("A" & Ligne - 1) + 1 Then
n = Range("A" & Ligne) - Range("A" & Ligne - 1) - 1
For i = 1 To n
Rows(Ligne).Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
Next i
End If
Next Ligne
End Sub
A+ -
Bonsoir,
Un peu tard mais j'étais sur ce code qui crée la série, créer un bouton activex
Option Explicit
Private Sub CommandButton1_Click()
Dim i, x As Integer
For i = Range("A65536").End(xlUp).Row To 2 Step -1
If Cells(i + 1, 1) > Cells(i, 1) + 1 Then
x = Cells(i + 1, 1) - Cells(i, 1) - 1
Rows(i + 1).Resize(x).Insert
End If
Next
For i = 2 To Range("A65536").End(xlUp).Row-1
Cells(i + 1, 1) = Cells(i, 1) + 1
Next
End Sub
A+
Mike-31
Une période d'échec est un moment rêvé pour semer les graines du savoir.