Bonjour à tous,

J'ai rédigé une macro pour qu'en fonction du nombre inscrit dans la colonne BL un certain nombre de ligne soit ajouté

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
Sub insererLig()
 
    Dim lig As Long
 
    Application.ScreenUpdating = False
 
    For lig = Cells(Rows.Count, 5).End(xlUp).Row To 2 Step -1
 
        If Cells(lig, "BL") > 0 Then
            Rows(lig + 1).Resize(Cells(lig, "BL")).Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
            Cells(lig + 1, 1).Resize(Cells(lig, "BL"), 1) = Cells(lig, "A")
            Cells(lig + 1, 2).Resize(Cells(lig, "BL"), 1) = Cells(lig, "B")
            Cells(lig + 1, 3).Resize(Cells(lig, "BL"), 1) = Cells(lig, "C")
            Cells(lig + 1, 4).Resize(Cells(lig, "BL"), 1) = Cells(lig, "D")
               End If
    Next lig
 
    Application.ScreenUpdating = True
 
End Sub
En plus de recopier les valeurs des premières colonnes, j'aimerai que la macro ajoute des valeurs dans la colonne O. Si jamais j'ajoute pas de ligne, il met M dans la colonne si jamais j'aoute une ligne, il met M dans la première et L dans la deuxième. J'ai essayé ca que j'ai mis juste avant le "end if " de la macro précédente:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
If Cells(lig, "BL") = 1 Then
       Cells(lig + 1, 15).Resize(Cells(lig, "BL"), 1) = "L"
       Cells(lig, 15).Resize(Cells(lig, "BL"), 1) = "M"
If Cells(lig, "BL") = 0 Then
       Cells(lig, 15).Resize(Cells(lig, "BL"), 1) = "M"
Mais quand je lance la macro, il me dit qu'il y a un if sans for et que du coup ca ne marche pas.

Je ne comprends pas puisque mon code commence par définir le for.

Pouvez-vous me venir en aide?

Merci beaucoup