Bonsoir les amis, j'ai fait une boucle avec "for i = 3 to 150" qui fonctionnait très bien, et j'ai voulu essayé de d'accélérer la procédure avec ce code:
mais à la ligne "for i = 3 to derlig" j'ai une imcompatibilité de type 13

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
21
22
23
24
25
26
27
28
29
30
31
32
33
34
Sub suprime_ligne_acceuil()
Dim dep As String
Dim nom As String
Dim i As Integer
Dim derlig As String
 
derlig = Range("O" & Range("O65536").End(xlUp).Row)
For i = 3 To derlig
dep = Range("Y" & i).Text
nom = Range("Q" & i).Text
 
If Range("Y" & i).Value > "" And Range("X" & i).Interior.Color = RGB(255, 0, 0) Then 'couleur cellule
 
Range("O" & i).Select
Rep = MsgBox("Devis de" & " " & nom & " " & "est" & " " & dep & Chr(10) & "Souhaitez-vous supprimer la ligne enregistrée ?", vbYesNo + vbQuestion + vbDefaultButton2, "Etat des devis")
         If Rep = vbYes Then
    Rep = MsgBox("Etes vous vraiment sûr de vouloir supprimer la ligne enregistrée ?", vbYesNo + vbQuestion + vbDefaultButton2, "Confirmation suppression")
            If Rep = vbYes Then
ActiveCell.Offset.ClearContents
ActiveCell.Offset(0, 1).ClearContents
ActiveCell.Offset(0, 2).ClearContents
ActiveCell.Offset(0, 3).ClearContents
ActiveCell.Offset(0, 4).ClearContents
ActiveCell.Offset(0, 5).ClearContents
ActiveCell.Offset(0, 6).ClearContents
ActiveCell.Offset(0, 7).ClearContents
ActiveCell.Offset(0, 8).ClearContents
ActiveCell.Offset(0, 10).ClearContents
        End If
     End If
End If
Next i
Call actualiser
End Sub
je vous remercie d'avance pour l'aide apportée