XL 2019 Ajouter des lignes entre des valeurs

RippedJaguar

XLDnaute Nouveau
Bonjour,
J'ai créé un tableau, cependant je souhaite ajouter des lignes entre les valeurs de ma colonne "Code Article" - Comme vu, ils en manquent dans le désordre.
  • Je veux rajouter des lignes selon les chiffres manquant de ma colonne "code Article" qui commence par 0025.
  • Et ça je désire le faire d'une manière rapide voir semi-manuel soit en passant par un programme en VBA si c'est possible ?
Screen

> (Ce tableur est pour une partie de ma gestion des stocks, les fournisseurs m'envoyant des catalogues depuis un fichier Word, qu'il passe sous EXCEL...)
 

job75

XLDnaute Barbatruc
Bonjour RippedJaguar, fanch55, le forum,

Triez le tableau sur la colonne "Code Article" en ordre croissant et exécutez cette macro :
VB:
Sub Ajout_lignes()
Dim ligdeb&, col As Variant, derlig&, i&, n&
ligdeb = 16 'à adapter éventuellement
col = Application.Match("Code Article", Rows(ligdeb), 0)
If IsError(col) Then Exit Sub
For i = Cells(Rows.Count, col).End(xlUp).Row To ligdeb + 2 Step -1
    n = Val(Cells(i, col)) - Val(Cells(i - 1, col))
    If n > 1 Then Rows(i).Resize(n - 1).Insert
Next
End Sub
A+
 

job75

XLDnaute Barbatruc
Sur l'image on lit "Filtres textuels" donc la colonne "Code Article" contient des textes.

On peut alors incrémenter les valeurs comme ceci :
VB:
Sub Ajout_lignes()
Dim ligdeb&, col As Variant, derlig&, i&, n&
ligdeb = 16
col = Application.Match("Code Article", Rows(ligdeb), 0)
If IsError(col) Then Exit Sub
For i = Cells(Rows.Count, col).End(xlUp).Row To ligdeb + 2 Step -1
    n = Val(Cells(i, col)) - Val(Cells(i - 1, col))
    If n > 1 Then
        Rows(i).Resize(n - 1).Insert
        Cells(i - 1, col).AutoFill Cells(i - 1, col).Resize(n) 'incrémente
    End If
Next
End Sub
 

Discussions similaires

Statistiques des forums

Discussions
312 163
Messages
2 085 859
Membres
103 005
dernier inscrit
gilles.hery