Erreur 400 dans une macro

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Roverman

XLDnaute Nouveau
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.

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
 

Pièces jointes

Re : Erreur 400 dans une macro

Bonjour Pierrot,

Effectivement, je suis pas un as mais celle là j'aurai quand même pu m'en apercevoir !! Maintenant les lignes sélectionnées s'effacent bien, merci 🙂

Par contre la deuxième partie de la macro ne fonctionne pas. J'ai un message d'erreur qui me dit :"Variable objet ou variable de bloc With non définie" Pourtant mes variables m'ont l'air bien déclarées, j'espère que la raison n'est pas aussi évidente que la précédente erreur.

Merci
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
4
Affichages
180
  • Question Question
Microsoft 365 worksheet_change
Réponses
29
Affichages
482
Réponses
2
Affichages
154
Réponses
4
Affichages
243
Réponses
3
Affichages
665
Retour