Bonjour,
Donc si j'ai bien compris, ça ça devrait fonctionner:
le code:
Sub test()
Dim tableau
Dim ligAv35 As Integer
Dim recherche As String
tableau = Range("A1").CurrentRegion.Value2
recherche = "445720"
For i = UBound(tableau, 1) To LBound(tableau, 1) Step -1
If CStr(tableau(i, 3)) = recherche Then
Range("A" & ligAv35).EntireRow.Insert
Range("A" & ligAv35, "F" & ligAv35).Value2 = Range("A" & ligAv35 + 1, "F" & ligAv35 + 1).Value2
Range("F" & ligAv35) = Replace(Range("F" & ligAv35 + 1), "20%", "10%")
ElseIf tableau(i, 3) Like "35*" Then
ligAv35 = i
End If
Next i
End Sub
Je parcours le tableau de bas en haut, si je trouve une ligne dont dont le compte commence par 35, j'enregistre son numéro de ligne dans une variable.
Si je trouve une ligne avec ce qui est cherché, je me sers de la variable pour insérer une ligne pile avant celle où le compte commence par 35.
Ensuite je reprends les valeurs de la ligne sur la nouvelle, et je remplace 20% par 10%