OVH Cloud OVH Cloud

Erreur de type 13 ?

7 réponses
Avatar
Yoyo
Rebonjour =E0 tous,

Voila j'ai de nouveau besoin de vos comp=E9tences pour m'expliquer
pourquoi ma macro cr=E9er une erreur de type 13 au bout de quelques
boucles.
D'apr=E8s le forum cela viendrai d'une mauvaise d=E9claration de variable
mais ayant d=E9clarer mes variable en type variant je ne comprend pas.
L'erreur ce produit su le if dans ma boucle.
Je vous ai mis mon code ci-dessous et vous remerci par avant du temps
que vous consacrez pour m'aider.



>Sub copie_valeurs()

>'Copie dans la feuille 4 les donn=E9es commune des feuilles 2 et 3 dans l=
a feuille 4

>Dim Lextract, Lquotefile, Lsynthese As Variant
>Lsynthese =3D 1
>'Boucle de recherche
> For Lextract =3D 1 To 650
> For Lquotefile =3D 1 To 5000


> 'Crit=E8res de recherche

> If (Sheets(2).Range("E" & Lextract) =3D Sheets(3).Range("O=
" & Lquotefile) _
> Or (Sheets(2).Range("E" & Lextract) =3D
Sheets(3).Range("P" & Lquotefile)) _
> And (Sheets(2).Range("Y" & Lextract) =3D
Sheets(3).Range("M" & Lquotefile)) _
> And (Sheets(2).Range("AI" & Lextract) >
Sheets(3).Range("AE" & Lquotefile) _
> And (Sheets(2).Range("AJ" & Lextract) < Sheets(3).Range("A=
E" & Lquotefile)))) Then

> 'Copie la ligne extract en An de la feuil4
> Sheets(2).Range("A" & Lextract, "BZ" &
Lextract).Copy
> Sheets(4).Select
> Range("A" & Lsynthese).Select
> ActiveSheet.Paste
> ' Copie laligne du quote file en CAn de la feuil4
> Sheets(3).Range("A" & Lquotefile, "AZ" &
Lquotefile).Copy
> Sheets(4).Select
> Range("CA" & Lsynthese).Select
> ActiveSheet.Paste
> 'incr=E9mentation de la ligne de la feuille
synth=E8se
> Lsynthese =3D Lsynthese + 1
>
>End If

> Next Lquotefile
> Next Lextract



>End Sub

7 réponses

Avatar
Jacky
Bonjour,

Regarde ici, et applique la méthode de Michel

http://groups.google.fr/group/microsoft.public.fr.excel/browse_frm/thread/d037d0e717ff8452/004d588ef3faedf4?lnk=st&q=erreur+type+13&rnum&hl=fr#004d588ef3faedf4

Salutations
JJ


"Yoyo" a écrit dans le message de news:

Rebonjour à tous,

Voila j'ai de nouveau besoin de vos compétences pour m'expliquer
pourquoi ma macro créer une erreur de type 13 au bout de quelques
boucles.
D'après le forum cela viendrai d'une mauvaise déclaration de variable
mais ayant déclarer mes variable en type variant je ne comprend pas.
L'erreur ce produit su le if dans ma boucle.
Je vous ai mis mon code ci-dessous et vous remerci par avant du temps
que vous consacrez pour m'aider.



Sub copie_valeurs()

'Copie dans la feuille 4 les données commune des feuilles 2 et 3 dans la
feuille 4

Dim Lextract, Lquotefile, Lsynthese As Variant
Lsynthese = 1
'Boucle de recherche
For Lextract = 1 To 650
For Lquotefile = 1 To 5000



'Critères de recherche

If (Sheets(2).Range("E" & Lextract) = Sheets(3).Range("O" &
Lquotefile) _
Or (Sheets(2).Range("E" & Lextract) Sheets(3).Range("P" & Lquotefile)) _
And (Sheets(2).Range("Y" & Lextract) Sheets(3).Range("M" & Lquotefile)) _
And (Sheets(2).Range("AI" & Lextract) >
Sheets(3).Range("AE" & Lquotefile) _

And (Sheets(2).Range("AJ" & Lextract) <
Sheets(3).Range("AE" & Lquotefile)))) Then

'Copie la ligne extract en An de la feuil4
Sheets(2).Range("A" & Lextract, "BZ" &
Lextract).Copy

Sheets(4).Select
Range("A" & Lsynthese).Select
ActiveSheet.Paste
' Copie laligne du quote file en CAn de la feuil4
Sheets(3).Range("A" & Lquotefile, "AZ" &
Lquotefile).Copy

Sheets(4).Select
Range("CA" & Lsynthese).Select
ActiveSheet.Paste
'incrémentation de la ligne de la feuille
synthèse

Lsynthese = Lsynthese + 1

End If


Next Lquotefile
Next Lextract




End Sub


Avatar
FILK
Bonjour Yoyo,

Je pense que dans ton cas, il faut que tu utilises des espions (clic droit
ajouter un espion) pour controler la valeur de tes variables. Tu comprendras
alors comment débugguer ton code.

Philippe.



Rebonjour à tous,

Voila j'ai de nouveau besoin de vos compétences pour m'expliquer
pourquoi ma macro créer une erreur de type 13 au bout de quelques
boucles.
D'après le forum cela viendrai d'une mauvaise déclaration de variable
mais ayant déclarer mes variable en type variant je ne comprend pas.
L'erreur ce produit su le if dans ma boucle.
Je vous ai mis mon code ci-dessous et vous remerci par avant du temps
que vous consacrez pour m'aider.



Sub copie_valeurs()

'Copie dans la feuille 4 les données commune des feuilles 2 et 3 dans la feuille 4

Dim Lextract, Lquotefile, Lsynthese As Variant
Lsynthese = 1
'Boucle de recherche
For Lextract = 1 To 650
For Lquotefile = 1 To 5000



'Critères de recherche

If (Sheets(2).Range("E" & Lextract) = Sheets(3).Range("O" & Lquotefile) _
Or (Sheets(2).Range("E" & Lextract) > Sheets(3).Range("P" & Lquotefile)) _
And (Sheets(2).Range("Y" & Lextract) > Sheets(3).Range("M" & Lquotefile)) _
And (Sheets(2).Range("AI" & Lextract) >
Sheets(3).Range("AE" & Lquotefile) _

And (Sheets(2).Range("AJ" & Lextract) < Sheets(3).Range("AE" & Lquotefile)))) Then

'Copie la ligne extract en An de la feuil4
Sheets(2).Range("A" & Lextract, "BZ" &
Lextract).Copy

Sheets(4).Select
Range("A" & Lsynthese).Select
ActiveSheet.Paste
' Copie laligne du quote file en CAn de la feuil4
Sheets(3).Range("A" & Lquotefile, "AZ" &
Lquotefile).Copy

Sheets(4).Select
Range("CA" & Lsynthese).Select
ActiveSheet.Paste
'incrémentation de la ligne de la feuille
synthèse

Lsynthese = Lsynthese + 1

End If

Next Lquotefile
Next Lextract




End Sub






Avatar
Yoyo
Encore merci à vous deux Jacky et FILK

Je vais faire ce que vous me proposer pour trouver mon bug:

Bonne journée à vous
*

Cordialement Yoyo
Avatar
Yoyo
J'ai essayer vos méthode pour débugger mais je n'y arrive pas.

je sais que l'erreur provien de mes comparaison car quand je ne les
met pas dans mon programme tout fonctionne parfaitement .
Mes données comparées sont des nombres

je ne comprend pas , encore merci de votre aide

cordialement Yoyo
Avatar
docm
Si ce ne sont que des nombres, compare les valeurs converties avec la fonction CDBL.
Par exemple, remplace Sheets(2).Range("E" & Lextract) par
Cdbl(Sheets(2).Range("E" & Lextract) )
etc...

docm

"Yoyo" a écrit dans le message de news:

J'ai essayer vos méthode pour débugger mais je n'y arrive pas.

je sais que l'erreur provien de mes comparaison car quand je ne les
met pas dans mon programme tout fonctionne parfaitement .
Mes données comparées sont des nombres

je ne comprend pas , encore merci de votre aide

cordialement Yoyo
Avatar
Yoyo
Merci a tous, J'ai trouvé mon erreur cela venais de mes données elles
contenai quelque erreur et il manquai des parenthèse sur mes fonction.

maintenant tout fonctionnne bien

cordialement Yohann
Avatar
Yoyo