Macro insertion de lignes
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:
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:
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