Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Erreur 13 sur VBA

6 réponses
Avatar
Julien
Bonjour tout le monde,

J'ai un problème comme je l'ai indiqué en objet d'erreur 13 lors de
l'exécution du VBA sur Excel. Malheureusement, ce n'est pas moi qui ai écris
le programme donc je n'y vois goutte. Pourriez-vous m'aider à diagnostiquer
le problème, s'il vous plaît?
La ligne qui fait -------------------comme ça -------------------- est celle
d'où provient l'erreur.

Merci beaucoup d'avance pour votre aide,

Sub ATP_Calcul()
x = 3
i = 3
j = 2
Sheets("Flexo").Select
Do Until x = 485
Sheets("ATP").Cells(1, 2) = Sheets("Flexo").Cells(x, 1)
Sheets("ATP").Cells(1, 3) = Sheets("Flexo").Cells(x, 3)
Sheets("ATP").Cells(1, 4) = Sheets("Flexo").Cells(x, 4)
Sheets("ATP").Cells(1, 5) = Sheets("Flexo").Cells(x, 5)
Sheets("ATP").Cells(1, 6) = Sheets("Flexo").Cells(x, 10)
Sheets("ATP").Cells(1, 7) = Sheets("Flexo").Cells(x, 13)
Sheets("ATP").Select
Do Until i = 20000
---------------------If Cells(i, 16).Value = 1
Then--------------------------------- Sheets("Results").Cells(j, 1) =
Sheets("ATP").Cells(i, 4)
Sheets("Results").Cells(j, 2) = Sheets("ATP").Cells(i, 9)
Sheets("Results").Cells(1, 4) = Sheets("ATP").Cells(1, 4)
j = j + 1
Else
End If
i = i + 1
Loop
Sheets("Results").Select
Cells(j, 2).FormulaR1C1 = _
"=TREND(R2C2:R[-1]C2,R2C1:R[-1]C1,R1C4,TRUE)"
Cells(1, 6) = Cells(j, 2)
Cells(1, 8) = j - 2
Sheets("Flexo").Cells(x, 17) = Sheets("Results").Cells(1, 6)
Sheets("Flexo").Cells(x, 18) = Sheets("Results").Cells(1, 8)
Sheets("Results").Select
Range("A2:B5000").Select
Selection.ClearContents
i = 3
j = 2
x = x + 1
Loop

End Sub

6 réponses

Avatar
michdenis
Bonjour Julien

Un erreur de type 13 est par exemple, essayer d'affecter à un variable que l'on a définit As Integer du texte.


If Cells(i, 16).Value = 1 Then
Sheets("Results").Cells(j, 1) = Sheets("ATP").Cells(i, 4)
End if

Question :
Dans ta procédure : il me semble que seule cette adresse n'est pas précédée par le nom de sa feuille Cells(i, 16).Value . Une
raison particulière ?

Où est écrit ta macro ? Module standard ou un module de feuille ?

Quelle est le contenu de ces cellules ?

Quelle est ta version d'excel ?


Salutations!







"Julien" a écrit dans le message de news:
Bonjour tout le monde,

J'ai un problème comme je l'ai indiqué en objet d'erreur 13 lors de
l'exécution du VBA sur Excel. Malheureusement, ce n'est pas moi qui ai écris
le programme donc je n'y vois goutte. Pourriez-vous m'aider à diagnostiquer
le problème, s'il vous plaît?
La ligne qui fait -------------------comme ça -------------------- est celle
d'où provient l'erreur.

Merci beaucoup d'avance pour votre aide,

Sub ATP_Calcul()
x = 3
i = 3
j = 2
Sheets("Flexo").Select
Do Until x = 485
Sheets("ATP").Cells(1, 2) = Sheets("Flexo").Cells(x, 1)
Sheets("ATP").Cells(1, 3) = Sheets("Flexo").Cells(x, 3)
Sheets("ATP").Cells(1, 4) = Sheets("Flexo").Cells(x, 4)
Sheets("ATP").Cells(1, 5) = Sheets("Flexo").Cells(x, 5)
Sheets("ATP").Cells(1, 6) = Sheets("Flexo").Cells(x, 10)
Sheets("ATP").Cells(1, 7) = Sheets("Flexo").Cells(x, 13)
Sheets("ATP").Select
Do Until i = 20000
---------------------If Cells(i, 16).Value = 1
Then--------------------------------- Sheets("Results").Cells(j, 1) Sheets("ATP").Cells(i, 4)
Sheets("Results").Cells(j, 2) = Sheets("ATP").Cells(i, 9)
Sheets("Results").Cells(1, 4) = Sheets("ATP").Cells(1, 4)
j = j + 1
Else
End If
i = i + 1
Loop
Sheets("Results").Select
Cells(j, 2).FormulaR1C1 = _
"=TREND(R2C2:R[-1]C2,R2C1:R[-1]C1,R1C4,TRUE)"
Cells(1, 6) = Cells(j, 2)
Cells(1, 8) = j - 2
Sheets("Flexo").Cells(x, 17) = Sheets("Results").Cells(1, 6)
Sheets("Flexo").Cells(x, 18) = Sheets("Results").Cells(1, 8)
Sheets("Results").Select
Range("A2:B5000").Select
Selection.ClearContents
i = 3
j = 2
x = x + 1
Loop

End Sub
Avatar
Youky
Salut Julien
Je pense comme cela, des appuis sur Entrer ont été éffectués
Youky

Sub ATP_Calcul()
x = 3
i = 3
j = 2
Sheets("Flexo").Select
Do Until x = 485
Sheets("ATP").Cells(1, 2) = Sheets("Flexo").Cells(x, 1)
Sheets("ATP").Cells(1, 3) = Sheets("Flexo").Cells(x, 3)
Sheets("ATP").Cells(1, 4) = Sheets("Flexo").Cells(x, 4)
Sheets("ATP").Cells(1, 5) = Sheets("Flexo").Cells(x, 5)
Sheets("ATP").Cells(1, 6) = Sheets("Flexo").Cells(x, 10)
Sheets("ATP").Cells(1, 7) = Sheets("Flexo").Cells(x, 13)
Sheets("ATP").Select
Do Until i = 20000
If Cells(i, 16).Value = 1 Then
Sheets("Results").Cells(j, 1) = Sheets("ATP").Cells(i, 4)
Sheets("Results").Cells(j, 2) = Sheets("ATP").Cells(i, 9)
Sheets("Results").Cells(1, 4) = Sheets("ATP").Cells(1, 4)
j = j + 1
Else
End If
i = i + 1
Loop
Sheets("Results").Select
Cells(j, 2).FormulaR1C1 = _
"=TREND(R2C2:R[-1]C2,R2C1:R[-1]C1,R1C4,TRUE)"
Cells(1, 6) = Cells(j, 2)
Cells(1, 8) = j - 2
Sheets("Flexo").Cells(x, 17) = Sheets("Results").Cells(1, 6)
Sheets("Flexo").Cells(x, 18) = Sheets("Results").Cells(1, 8)
Sheets("Results").Select
Range("A2:B5000").Select
Selection.ClearContents
i = 3
j = 2
x = x + 1
Loop

End Sub
"Julien" a écrit dans le message de news:

Bonjour tout le monde,

J'ai un problème comme je l'ai indiqué en objet d'erreur 13 lors de
l'exécution du VBA sur Excel. Malheureusement, ce n'est pas moi qui ai
écris

le programme donc je n'y vois goutte. Pourriez-vous m'aider à
diagnostiquer

le problème, s'il vous plaît?
La ligne qui fait -------------------comme ça -------------------- est
celle

d'où provient l'erreur.

Merci beaucoup d'avance pour votre aide,

Sub ATP_Calcul()
x = 3
i = 3
j = 2
Sheets("Flexo").Select
Do Until x = 485
Sheets("ATP").Cells(1, 2) = Sheets("Flexo").Cells(x, 1)
Sheets("ATP").Cells(1, 3) = Sheets("Flexo").Cells(x, 3)
Sheets("ATP").Cells(1, 4) = Sheets("Flexo").Cells(x, 4)
Sheets("ATP").Cells(1, 5) = Sheets("Flexo").Cells(x, 5)
Sheets("ATP").Cells(1, 6) = Sheets("Flexo").Cells(x, 10)
Sheets("ATP").Cells(1, 7) = Sheets("Flexo").Cells(x, 13)
Sheets("ATP").Select
Do Until i = 20000
---------------------If Cells(i, 16).Value = 1
Then--------------------------------- Sheets("Results").Cells(j, 1) > Sheets("ATP").Cells(i, 4)
Sheets("Results").Cells(j, 2) = Sheets("ATP").Cells(i, 9)
Sheets("Results").Cells(1, 4) = Sheets("ATP").Cells(1, 4)
j = j + 1
Else
End If
i = i + 1
Loop
Sheets("Results").Select
Cells(j, 2).FormulaR1C1 = _
"=TREND(R2C2:R[-1]C2,R2C1:R[-1]C1,R1C4,TRUE)"
Cells(1, 6) = Cells(j, 2)
Cells(1, 8) = j - 2
Sheets("Flexo").Cells(x, 17) = Sheets("Results").Cells(1, 6)
Sheets("Flexo").Cells(x, 18) = Sheets("Results").Cells(1, 8)
Sheets("Results").Select
Range("A2:B5000").Select
Selection.ClearContents
i = 3
j = 2
x = x + 1
Loop

End Sub


Avatar
Julien
Merci Youky, mais la frappe sur entrée à été faite lorsque j'ai rajouté le
----------- pour surligner. En reproduisant ta syntaxe, il m'affiche le même
message d'erreur.

Merci quand même,





Salut Julien
Je pense comme cela, des appuis sur Entrer ont été éffectués
Youky

Sub ATP_Calcul()
x = 3
i = 3
j = 2
Sheets("Flexo").Select
Do Until x = 485
Sheets("ATP").Cells(1, 2) = Sheets("Flexo").Cells(x, 1)
Sheets("ATP").Cells(1, 3) = Sheets("Flexo").Cells(x, 3)
Sheets("ATP").Cells(1, 4) = Sheets("Flexo").Cells(x, 4)
Sheets("ATP").Cells(1, 5) = Sheets("Flexo").Cells(x, 5)
Sheets("ATP").Cells(1, 6) = Sheets("Flexo").Cells(x, 10)
Sheets("ATP").Cells(1, 7) = Sheets("Flexo").Cells(x, 13)
Sheets("ATP").Select
Do Until i = 20000
If Cells(i, 16).Value = 1 Then
Sheets("Results").Cells(j, 1) = Sheets("ATP").Cells(i, 4)
Sheets("Results").Cells(j, 2) = Sheets("ATP").Cells(i, 9)
Sheets("Results").Cells(1, 4) = Sheets("ATP").Cells(1, 4)
j = j + 1
Else
End If
i = i + 1
Loop
Sheets("Results").Select
Cells(j, 2).FormulaR1C1 = _
"=TREND(R2C2:R[-1]C2,R2C1:R[-1]C1,R1C4,TRUE)"
Cells(1, 6) = Cells(j, 2)
Cells(1, 8) = j - 2
Sheets("Flexo").Cells(x, 17) = Sheets("Results").Cells(1, 6)
Sheets("Flexo").Cells(x, 18) = Sheets("Results").Cells(1, 8)
Sheets("Results").Select
Range("A2:B5000").Select
Selection.ClearContents
i = 3
j = 2
x = x + 1
Loop

End Sub
"Julien" a écrit dans le message de news:

Bonjour tout le monde,

J'ai un problème comme je l'ai indiqué en objet d'erreur 13 lors de
l'exécution du VBA sur Excel. Malheureusement, ce n'est pas moi qui ai
écris

le programme donc je n'y vois goutte. Pourriez-vous m'aider à
diagnostiquer

le problème, s'il vous plaît?
La ligne qui fait -------------------comme ça -------------------- est
celle

d'où provient l'erreur.

Merci beaucoup d'avance pour votre aide,

Sub ATP_Calcul()
x = 3
i = 3
j = 2
Sheets("Flexo").Select
Do Until x = 485
Sheets("ATP").Cells(1, 2) = Sheets("Flexo").Cells(x, 1)
Sheets("ATP").Cells(1, 3) = Sheets("Flexo").Cells(x, 3)
Sheets("ATP").Cells(1, 4) = Sheets("Flexo").Cells(x, 4)
Sheets("ATP").Cells(1, 5) = Sheets("Flexo").Cells(x, 5)
Sheets("ATP").Cells(1, 6) = Sheets("Flexo").Cells(x, 10)
Sheets("ATP").Cells(1, 7) = Sheets("Flexo").Cells(x, 13)
Sheets("ATP").Select
Do Until i = 20000
---------------------If Cells(i, 16).Value = 1
Then--------------------------------- Sheets("Results").Cells(j, 1) > > Sheets("ATP").Cells(i, 4)
Sheets("Results").Cells(j, 2) = Sheets("ATP").Cells(i, 9)
Sheets("Results").Cells(1, 4) = Sheets("ATP").Cells(1, 4)
j = j + 1
Else
End If
i = i + 1
Loop
Sheets("Results").Select
Cells(j, 2).FormulaR1C1 = _
"=TREND(R2C2:R[-1]C2,R2C1:R[-1]C1,R1C4,TRUE)"
Cells(1, 6) = Cells(j, 2)
Cells(1, 8) = j - 2
Sheets("Flexo").Cells(x, 17) = Sheets("Results").Cells(1, 6)
Sheets("Flexo").Cells(x, 18) = Sheets("Results").Cells(1, 8)
Sheets("Results").Select
Range("A2:B5000").Select
Selection.ClearContents
i = 3
j = 2
x = x + 1
Loop

End Sub







Avatar
Julien

Question :

Dans ta procédure : il me semble que seule cette adresse n'est pas précédée par le nom de sa feuille Cells(i, 16).Value . Une
raison particulière ?


Je ne sais pas, mais en rentrant l'une "Atp" ou l'autre "Flexo",
j'obtient le même message d'erreur.

Où est écrit ta macro ? Module standard ou un module de feuille ?


Ma macro est un module home-made (de feuille)


Quelle est le contenu de ces cellules ?



Mes cellules contiennent ces types de données : (i,26 affiche "25")

32 38A 6 Fermée 7
32 38A 8 Fermée 25


Quelle est ta version d'excel ?

J'ai la version 2003


Salutations!



Merci pour ton interêt et as tu d'autres questions, docteur ?






"Julien" a écrit dans le message de news:
Bonjour tout le monde,

J'ai un problème comme je l'ai indiqué en objet d'erreur 13 lors de
l'exécution du VBA sur Excel. Malheureusement, ce n'est pas moi qui ai écris
le programme donc je n'y vois goutte. Pourriez-vous m'aider à diagnostiquer
le problème, s'il vous plaît?
La ligne qui fait -------------------comme ça -------------------- est celle
d'où provient l'erreur.

Merci beaucoup d'avance pour votre aide,

Sub ATP_Calcul()
x = 3
i = 3
j = 2
Sheets("Flexo").Select
Do Until x = 485
Sheets("ATP").Cells(1, 2) = Sheets("Flexo").Cells(x, 1)
Sheets("ATP").Cells(1, 3) = Sheets("Flexo").Cells(x, 3)
Sheets("ATP").Cells(1, 4) = Sheets("Flexo").Cells(x, 4)
Sheets("ATP").Cells(1, 5) = Sheets("Flexo").Cells(x, 5)
Sheets("ATP").Cells(1, 6) = Sheets("Flexo").Cells(x, 10)
Sheets("ATP").Cells(1, 7) = Sheets("Flexo").Cells(x, 13)
Sheets("ATP").Select
Do Until i = 20000
---------------------If Cells(i, 16).Value = 1
Then--------------------------------- Sheets("Results").Cells(j, 1) > Sheets("ATP").Cells(i, 4)
Sheets("Results").Cells(j, 2) = Sheets("ATP").Cells(i, 9)
Sheets("Results").Cells(1, 4) = Sheets("ATP").Cells(1, 4)
j = j + 1
Else
End If
i = i + 1
Loop
Sheets("Results").Select
Cells(j, 2).FormulaR1C1 = _
"=TREND(R2C2:R[-1]C2,R2C1:R[-1]C1,R1C4,TRUE)"
Cells(1, 6) = Cells(j, 2)
Cells(1, 8) = j - 2
Sheets("Flexo").Cells(x, 17) = Sheets("Results").Cells(1, 6)
Sheets("Flexo").Cells(x, 18) = Sheets("Results").Cells(1, 8)
Sheets("Results").Select
Range("A2:B5000").Select
Selection.ClearContents
i = 3
j = 2
x = x + 1
Loop

End Sub






Avatar
Youky
La seule chose à redire, sans certitude
mettre le nom de la sheets à:
If Cells(i, 16).Value = 1 Then
Youky

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

Merci Youky, mais la frappe sur entrée à été faite lorsque j'ai rajouté le
----------- pour surligner. En reproduisant ta syntaxe, il m'affiche le
même

message d'erreur.

Merci quand même,





Salut Julien
Je pense comme cela, des appuis sur Entrer ont été éffectués
Youky

Sub ATP_Calcul()
x = 3
i = 3
j = 2
Sheets("Flexo").Select
Do Until x = 485
Sheets("ATP").Cells(1, 2) = Sheets("Flexo").Cells(x, 1)
Sheets("ATP").Cells(1, 3) = Sheets("Flexo").Cells(x, 3)
Sheets("ATP").Cells(1, 4) = Sheets("Flexo").Cells(x, 4)
Sheets("ATP").Cells(1, 5) = Sheets("Flexo").Cells(x, 5)
Sheets("ATP").Cells(1, 6) = Sheets("Flexo").Cells(x, 10)
Sheets("ATP").Cells(1, 7) = Sheets("Flexo").Cells(x, 13)
Sheets("ATP").Select
Do Until i = 20000
If Cells(i, 16).Value = 1 Then
Sheets("Results").Cells(j, 1) = Sheets("ATP").Cells(i, 4)
Sheets("Results").Cells(j, 2) = Sheets("ATP").Cells(i, 9)
Sheets("Results").Cells(1, 4) = Sheets("ATP").Cells(1, 4)
j = j + 1
Else
End If
i = i + 1
Loop
Sheets("Results").Select
Cells(j, 2).FormulaR1C1 = _
"=TREND(R2C2:R[-1]C2,R2C1:R[-1]C1,R1C4,TRUE)"
Cells(1, 6) = Cells(j, 2)
Cells(1, 8) = j - 2
Sheets("Flexo").Cells(x, 17) = Sheets("Results").Cells(1, 6)
Sheets("Flexo").Cells(x, 18) = Sheets("Results").Cells(1, 8)
Sheets("Results").Select
Range("A2:B5000").Select
Selection.ClearContents
i = 3
j = 2
x = x + 1
Loop

End Sub
"Julien" a écrit dans le message de
news:



Bonjour tout le monde,

J'ai un problème comme je l'ai indiqué en objet d'erreur 13 lors de
l'exécution du VBA sur Excel. Malheureusement, ce n'est pas moi qui
ai



écris
le programme donc je n'y vois goutte. Pourriez-vous m'aider à
diagnostiquer

le problème, s'il vous plaît?
La ligne qui fait -------------------comme ça -------------------- est
celle

d'où provient l'erreur.

Merci beaucoup d'avance pour votre aide,

Sub ATP_Calcul()
x = 3
i = 3
j = 2
Sheets("Flexo").Select
Do Until x = 485
Sheets("ATP").Cells(1, 2) = Sheets("Flexo").Cells(x, 1)
Sheets("ATP").Cells(1, 3) = Sheets("Flexo").Cells(x, 3)
Sheets("ATP").Cells(1, 4) = Sheets("Flexo").Cells(x, 4)
Sheets("ATP").Cells(1, 5) = Sheets("Flexo").Cells(x, 5)
Sheets("ATP").Cells(1, 6) = Sheets("Flexo").Cells(x, 10)
Sheets("ATP").Cells(1, 7) = Sheets("Flexo").Cells(x, 13)
Sheets("ATP").Select
Do Until i = 20000
---------------------If Cells(i, 16).Value = 1
Then--------------------------------- Sheets("Results").Cells(j,
1) > > > Sheets("ATP").Cells(i, 4)



Sheets("Results").Cells(j, 2) = Sheets("ATP").Cells(i, 9)
Sheets("Results").Cells(1, 4) = Sheets("ATP").Cells(1, 4)
j = j + 1
Else
End If
i = i + 1
Loop
Sheets("Results").Select
Cells(j, 2).FormulaR1C1 = _
"=TREND(R2C2:R[-1]C2,R2C1:R[-1]C1,R1C4,TRUE)"
Cells(1, 6) = Cells(j, 2)
Cells(1, 8) = j - 2
Sheets("Flexo").Cells(x, 17) = Sheets("Results").Cells(1, 6)
Sheets("Flexo").Cells(x, 18) = Sheets("Results").Cells(1, 8)
Sheets("Results").Select
Range("A2:B5000").Select
Selection.ClearContents
i = 3
j = 2
x = x + 1
Loop

End Sub









Avatar
Julien
La seule chose à redire, sans certitude
mettre le nom de la sheets à:
If Cells(i, 16).Value = 1 Then



Non, même en mettant le nom de la sheet, le message d'erreur est le même,

merci tout de même pour ton aide.

Julien