OVH Cloud OVH Cloud

Fonction..

17 réponses
Avatar
Patrice
Bonjour,

J'ai cr=E9=E9 une fonction :

Function synth(place, deb, fin)
Sheets("R=E9cap").Select
Range(place).Select
For i =3D 1 To 15
For j =3D deb To fin
Cells(i + 3, j + 1).Value =3D matable(i, j)
Next j
Next i
End Function
--=20
et quand dans la macro je tape synth(1,2,3).. Excel me=20
signale une erreur.. genre qu'il manque quelque chose.

J'ai oubli=E9 un truc ?

Merci de votre aide

7 réponses

1 2
Avatar
Patrice
ça ne change pas mon problème, toujours une erreur quand
j'appelle la fonction.
-----Message d'origine-----
Bonjour,
Il faut que les paramètres passés en argument soient
déclarés a minima dans

la procédure
Exemple Dim place as String
Dim deb, fin as Integer
Est-ce répéré ?
--
Pounet95
on trouve tout ( ou presque ) http://www.excelabo.net/
"Patrice" a écrit
dans le message de

news: 037601c4c8b8$3d0d8390$
Bonjour,

J'ai créé une fonction :

Function synth(place, deb, fin)
Sheets("Récap").Select
Range(place).Select
For i = 1 To 15
For j = deb To fin
Cells(i + 3, j + 1).Value = matable(i, j)
Next j
Next i
End Function
--
et quand dans la macro je tape synth(1,2,3).. Excel me
signale une erreur.. genre qu'il manque quelque chose.

J'ai oublié un truc ?

Merci de votre aide


.



Avatar
Pounet95
Re,
Peux-tu essayer avec le déboggueur pour voir où ça coince ? Et nous dire
ensuite

--
Pounet95
on trouve tout ( ou presque ) http://www.excelabo.net/
"Patrice" a écrit dans le message de
news: 520d01c4c8be$6d183160$
J'ai toujours la même erreur...c'est plus dans l'appel de
la fonction que dans la fonction elle même semble t'il
-----Message d'origine-----
Bonjour Patrice

Dans une fonction perso, tu ne peux pas agir sur le
classeur. Donc tes select produisent une erreur.

Pour t'en passer ecris ta fonction comme ci-dessous.

j-p

Function synth(place, deb, fin)

For i = 1 To 15
For j = deb To fin
Sheets("Récap").Range(place).Cells(i + 3, j +
1).Value = matable(i, j)

Next j
Next i
End Function

.



Avatar
Daniel.M
Bonjour j-p,

Oui, si la fonction retourne un Variant.
D'ailleurs, le problème de Patrice est bien là: soit il utilise une Sub qui
remplit une Plage, soit il sélectionne une ensemble de cellule et une fonction
qui retourne un tableau bi-dimensionnel (Variant).

Salutations,

Daniel M.

"JpPradier" wrote in message
news:%
D'ailleurs, je ne crois pas que tu puisses remplir une plage non plus ??

j-p


Avatar
Patrice
Il n'exécute même pas la macro, il bloque tout de suite,
le quand je lance une "compilation" j'ai un erreur de
syntaxe.. Bon, je crois que je vous ai assez ennuyé, je
vais faire une SUB.. avec des variables déclarées en
public.

MERCI DE VOTRE AIDE A TOUS

Patrice
-----Message d'origine-----
Re,
Peux-tu essayer avec le déboggueur pour voir où ça
coince ? Et nous dire

ensuite

--
Pounet95
on trouve tout ( ou presque ) http://www.excelabo.net/
"Patrice" a écrit
dans le message de

news: 520d01c4c8be$6d183160$
J'ai toujours la même erreur...c'est plus dans l'appel de
la fonction que dans la fonction elle même semble t'il
-----Message d'origine-----
Bonjour Patrice

Dans une fonction perso, tu ne peux pas agir sur le
classeur. Donc tes select produisent une erreur.

Pour t'en passer ecris ta fonction comme ci-dessous.

j-p

Function synth(place, deb, fin)

For i = 1 To 15
For j = deb To fin
Sheets("Récap").Range(place).Cells(i + 3, j +
1).Value = matable(i, j)

Next j
Next i
End Function

.




.




Avatar
Patrice
Ok, j'avais juste donné ça pour exemple, en fait j'ai synth
("A5",1,62)

Je botte en touche pour utiliser une Sub avec des
variables déclarée en public.
j'ai voulu faire le malin avec ma fonction, finalement,
j'irai plus vite avec une sub.

Merci.

Patrice

-----Message d'origine-----
Précision :

synt(1,2,3) ne peut pas fonctionner, car Range(1) est
impossible ....


--

Bien cordialement,

Joël GARBE
www.joelgarbe.fr
"Patrice" a écrit
dans le message de

news: 520301c4c8bc$fceeece0$
message - erreur de compilation attendu : =

pourtant, quand je remplie la fonction dans ma macro, il
me donne bien le cheminement à suivre pour remplir tout..
je comprends pas.

Si je modifie ma fonction pour qu'elle ait une seule
valeur synth(place as string) par exemple : ça fonctionne,
je bloque donc si je mets plusieurs variable.



-----Message d'origine-----
Bonjour Patrice,

en général, le message d'ereur ne dit pas :
"genre il manque quelque chose", mais est plus précis....

Tu peux nous en dire plus ?

--

Bien cordialement,

Joël GARBE
www.joelgarbe.fr
"Patrice" a écrit
dans le message de

news: 037601c4c8b8$3d0d8390$
Bonjour,

J'ai créé une fonction :

Function synth(place, deb, fin)
Sheets("Récap").Select
Range(place).Select
For i = 1 To 15
For j = deb To fin
Cells(i + 3, j + 1).Value = matable(i, j)
Next j
Next i
End Function
--
et quand dans la macro je tape synth(1,2,3).. Excel me
signale une erreur.. genre qu'il manque quelque chose.

J'ai oublié un truc ?

Merci de votre aide


.




.




Avatar
JpPradier
Bonjour Daniel

Et, dans le cas du tableau il devra valider en matriciel ou pas ?

j-p
Avatar
Daniel.M
Absolument, il devra valider en matriciel.

Daniel M.

"JpPradier" wrote in message
news:
Bonjour Daniel

Et, dans le cas du tableau il devra valider en matriciel ou pas ?

j-p


1 2