Erreur 450

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
 
G

Guest

Guest
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+
 

GBI

XLDnaute Occasionnel
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 :confused:
edit : bonjour natorp
edit2: Ajout de la PJ
 

Pièces jointes

  • retraitement DEPQ.xls
    27 KB · Affichages: 93
Dernière édition:

GBI

XLDnaute Occasionnel
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 :rolleyes:
Encore merci de votre aide
 

GBI

XLDnaute Occasionnel
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
 

Discussions similaires

Statistiques des forums

Discussions
312 582
Messages
2 089 922
Membres
104 307
dernier inscrit
Diet