Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.
  • Initiateur de la discussion Initiateur de la discussion GBI
  • Date de début Date de début

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 !

GBI

XLDnaute Occasionnel
Bonjour cher forum,

Je rencontre un probleme de type erreur 450 ("erreur de compilation: nombre d'arguments incorrect ou affectation de propriété incorecte")quand je lance le code ci-après
Code:
Sub extraire_les_DEPQ()

Application.ScreenUpdating = False
Dim critere(1 To 4) As String
Dim Compteur As Long
Dim Derlig As String

Derlig = Sheets(1).Range("A65536").End(xlUp).Row

Compteur = 2

critere(1) = "D"
critere(2) = "E"
critere(3) = "P"
critere(4) = "Q"

For i = 2 To Derlig
With Sheets(1)
    If left(Cells(i, 1), 1) = critere(1) _
    Or left(Cells(i, 1), 1) = critere(2) _
    Or left(Cells(i, 1), 1) = critere(3) _
    Or left(Cells(i, 1), 1) = critere(4) Then
        Sheets(1).Range(Cells(i, 1), Cells(i, 3)).Copy Destination:=Range("3!A" & Compteur)
        Compteur = Compteur + 1
    End If
End With
Next i

End Sub

C'est incompréhensible dans la mesure où j'ai déjà utilisé ce code un nombre considérable de fois et que jusqu'alors il fonctionnait bien.
Auriez-vous une idée de solution?
Cdt
GBI
 
Re : Erreur 450

Bonjour GBI,

Sans doute, suivant la feuille sur laquelle tu appelles la macro cela ne fonctionne pas.

Lorsque tu utilise With Sheets(1) il faut faire référence à ces cellules en mettant un '.' (point)

Je me suis permis de changer le test qui sera sûrement plus rapide.

Code:
[COLOR=blue]Sub[/COLOR] extraire_les_DEPQ()
    Application.ScreenUpdating = [COLOR=blue]False[/COLOR]
    [COLOR=blue]Dim[/COLOR] Compteur [COLOR=blue]As[/COLOR] [COLOR=blue]Long[/COLOR]
    [COLOR=blue]Dim[/COLOR] Derlig [COLOR=blue]As[/COLOR] [COLOR=blue]Long[/COLOR]
    Derlig = Sheets(1).Range([I]"A65536"[/I]).[COLOR=blue]End[/COLOR](xlUp).Row
    Compteur = 2
    [COLOR=blue]For[/COLOR] i = 2 To Derlig
        [COLOR=blue]With[/COLOR] Sheets(1)
            [COLOR=blue]If[/COLOR] InStr(1, [I]"D;E;P;Q"[/I], Left(.Cells(i, 1), 1)) > 0 [COLOR=blue]Then[/COLOR]
                .Range(.Cells(i, 1), .Cells(i, 3)).Copy Destination:=Range([I]"3!A"[/I] & Compteur)
                Compteur = Compteur + 1
            [COLOR=blue]End[/COLOR] [COLOR=blue]If[/COLOR]
        [COLOR=blue]End[/COLOR] [COLOR=blue]With[/COLOR]
    [COLOR=blue]Next[/COLOR] i
[COLOR=blue]End[/COLOR] [COLOR=blue]Sub[/COLOR]

Je n'ai pas mis de point devant le range de Destination se sera donc la feuille active.

A+
 
Re : Erreur 450

Bonjour Hasco,
merci pour ton retour, je n'avais effectivement pas pensé à tester directement les "criteres" dans le retraitement, je vais donc appliquer ta méthode à l'avenir.
Cependant mon problème persiste, il bloque sur un "left", je pense qu'il ne reconnait pas cette fonction puisqu'il la laisse en minuscule ("left" au lieu de "Left") ce qui m'intrigue encore plus 😕
edit : bonjour natorp
edit2: Ajout de la PJ
 

Pièces jointes

Dernière édition:
Re : Erreur 450

Bonjour Pierrot 93
Cela refonctionne de nouveau, c'est vraiment étrange 🙁
Je pense que ma machine va passer par un petit formatage.
J'aurai au moins une méthode plus efficace de retraitement grace à ce cher Hasco 🙄
Encore merci de votre aide
 
Re : Erreur 450

Re GBI
je viens de faire le test avec un copier/coller de la macro écrite par Hasco dans ton fichier et ça marche nickel....

Bjr hasco et pierrot

cordialement Gérard
 
Re : Erreur 450

Petit up, j'ai trouvé d'où venait mon problème
J'avais bêtement nommé une macro "left", lorsque j'utilisais ce terme il confondait donc le sub avec l'instruction
Note à moi-meme : "penser à mieux choisir les noms de mes subs"
Encore merci de votre aide !
PS.: Hasco ton code il fonctionne très bien
 
- 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
5
Affichages
910
Réponses
15
Affichages
784
Réponses
10
Affichages
661
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…