Sub InserLignes()
Application.ScreenUpdating = False
Dim lig As Long
For lig = Cells(Rows.Count, 2).End(xlUp).Row To 3 Step -1
If Cells(lig, "R") > 1 Then
Rows(lig + 1).Resize(Cells(lig, "R") - 1).Insert Shift:=xlDown
Cells(lig, 1).Resize(Cells(lig, "R"), 18).FillDown
End If
Next lig
End Sub
Sub InserLignes()
Application.ScreenUpdating = False
Dim lig As Long
Dim x As Integer, i As Integer
Dim c1 As Range
For lig = Cells(Rows.Count, 1).End(xlUp).Row To 4 Step -1 'De la dernière ligne de la colonne A (1) à la 1ère ligne à traiter(4)
x = Cells(lig, "R") - 1 'R est la colonne indiquant le nombre de lignes à insérer
If x > 0 Then 'Si la valeur de R-1 est supérieure à 0
Rows(lig + 1).Resize(Cells(lig, "R") - 1).Insert Shift:=xlDown 'Ajout des x lignes
Cells(lig, 1).Resize(Cells(lig, "R"), 18).FillDown 'Copie de la ligne vers les lignes insérées
For i = 0 To x - 1
Set c1 = Range("E" & lig + i & ":Q" & lig + i).Find(1) '1ère colonne de la plage F:Q contenant 1
Range(Cells(c1.Row, c1.Column + 1), Cells(c1.Row, "Q")).ClearContents 'Efface les 1 après la 1ère colonne contenant 1
Range(Cells(c1.Row + 1, c1.Column), Cells(c1.Row + x - i, c1.Column)).ClearContents 'Efface les 1 des lignes du dessous de la 1ère colonne contenant 1
Next i
End If
Next lig
End Sub
C'est bien de lire les commentaires, mais sur ce coup ce n'est pas une erreur ! En effet, avec mes tests je me suis rendu compte que s'il y avait un 1 en colonne F il y avait un soucis. (ce que je ne trouve pas logique mais je me pencherai sur le problème plus tard)PS , pour info j'ai modifié ta macro car il y avait une erreur pardon , car en lisant tes commenatires ou tu disais première colonne de la plage F Q , dans la range de la formule tu avais mis F ! Tu vois que je lis tes commentaires
Ben oui, elle est intégrée - Tu vas devoir relancertu as intégré le premier besoin dans cette macro ?
Comme j 'ai déjà travaillé avec ta première macro je ne veux pas la relancer celle ci complete.
Tu parles bien de l'entête de la colonne (ligne 3) dans laquelle est noté le 1 ?est i possible de rajouter une colonne avant la première colonne de 1, dans notre cas entre E et F avec l info du site ou est noté le 1 sur la colonne.
Par exemple , dans mon exemple 70.
Dans ce nouveau fichier il n'y a pas que des 1 mais également des 2 ; obligatoirement cela donne une erreur puisque le code cherche les 1. Est-ce qu'on peut trouver autre chose ?je t envoie le fichier car cela ne marche pas sur un autre fichier tu peux regarder svp
j'ai l info variable objet ou variable de bloc with non definie