Bonjour tout le monde,
Voila mon problème, quand je lance cette macro pour sélectionner plusieurs lignes sous conditions, une erreur 400 apparait. Pourtant j'ai déjà ce fragment de code dans mon programme principale et il fonctionne bien.
Alors pour essayer de régler ce problème j'ai tenté le débogage avec f8, il m'indique que la ligne 4 comporte une erreur 1004. Je ne comprend pas très bien pourquoi il m'annonce au départ une erreur 400 puis une 1004, à moins que d'autres erreurs soient présentes dans les lignes suivantes.
J'espère que vous pourrez m'éclairer sur ce problème.
Je vous remercie, bonne journée.
Voila mon problème, quand je lance cette macro pour sélectionner plusieurs lignes sous conditions, une erreur 400 apparait. Pourtant j'ai déjà ce fragment de code dans mon programme principale et il fonctionne bien.
Alors pour essayer de régler ce problème j'ai tenté le débogage avec f8, il m'indique que la ligne 4 comporte une erreur 1004. Je ne comprend pas très bien pourquoi il m'annonce au départ une erreur 400 puis une 1004, à moins que d'autres erreurs soient présentes dans les lignes suivantes.
J'espère que vous pourrez m'éclairer sur ce problème.
Je vous remercie, bonne journée.
Code:
Sub SelectionTouT()
Dim Cel As Range
Sheets("Entrée").Select
For Each Cel In Range(F2, F50) 'traite les cellules colonne F
If Application.CountA([A1:E1].Offset(Cel.Row - 1)) < 5 Then _ 'Sur cette ligne : erreur 1004
Cel.Value = "" 'si ligne incomplète aucun transfert
If Cel <> "" Then 'si x existe
Cel = ""
Cel.Offset(0, 1).Value = "" 'effacement repère colonne G
Range(Cel.Offset(0, -5), Cel.Offset(0, 1)).Interior.ColorIndex = 0 'effacement couleur ligne
Sheets("Rapport actuel").Rows(Application.Match(0, _
Sheets("Rapport actuel").Range("M:M"), 0)).Delete 'suppression de la ligne en feuille "Rapport actuel" si repère = 0
End If
Next
If (Cel.Offset(0, 1) <> 1) Then
Cel.Offset(0, 1).Value = 1 'repère colonne G
Range(Cel.Offset(0, -5), Cel.Offset(0, 1)).Interior.ColorIndex = 15 'mise en couleur
With Sheets("Rapport actuel").Range("A65536").End(xlUp) 'dernière cellule colonne A
.Offset(1).FormulaR1C1 = "=Entrée!R" & Cel.Row & "C1" 'transfert Opération
.Offset(1, 1).FormulaR1C1 = "=Entrée!R" & Cel.Row & "C2" 'transfert Temps"
.Offset(1, 2).FormulaR1C1 = "=Entrée!R" & Cel.Row & "C3" 'transfert Taux
.Offset(1, 3).FormulaR1C1 = "=Entrée!R" & Cel.Row & "C4" 'transfert Coût"
.Offset(1, 4).FormulaR1C1 = "=Entrée!R" & Cel.Row & "C5" 'transfert Sous-Traitance et Achat
.Offset(1, 12).FormulaR1C1 = "=Entrée!R" & Cel.Row & "C7" 'transfert Repère colonne M
'Sheets("Rapport").Range("A2:E65536").Sort Key1:=Sheets("Rapport").Range("A1"), Order1:=xlDescending 'tri décroissant
End With
End If
End Sub