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

passage de paramétres /erreur de compilation et de syntaxe

3 réponses
Avatar
Le Nordiste
Bonjour,

J'ai le message ci-dessous lorsque j'essaie de lancer la Sub tst()

"Erreur de compilation"
"Erreur de syntaxe"

=3D=3D=3D=3D=3D=3D mon code ci-dessous =3D=3D=3D=3D=3D=3D=3D=
=3D

Sub tst()
FormatColonne ("W:W","#,##0.00 $")
FormatColonne ("W:W","[$-40C]d-mmm-yy;@")
End Sub

Mon ent=EAte de proc=E9dure :

Sub FormatColonne(ByVal Colonnes As String, ByVal Format As String)
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D

Merci pour vos explications et solutions

Le Nordiste

3 réponses

Avatar
Corto
Bonjour Le Nordiste,
En enlevant les parenthéses, ça devrait marcher.
Sub tst()
FormatColonne "W:W", "#,##0.00 $"
FormatColonne "W:W", "[$-40C]d-mmm-yy;@"
End Sub

Corto

Le Nordiste a écrit :
Bonjour,

J'ai le message ci-dessous lorsque j'essaie de lancer la Sub tst()

"Erreur de compilation"
"Erreur de syntaxe"

====== mon code ci-dessous ======= =

Sub tst()
FormatColonne ("W:W","#,##0.00 $")
FormatColonne ("W:W","[$-40C]d-mmm-yy;@")
End Sub

Mon entête de procédure :

Sub FormatColonne(ByVal Colonnes As String, ByVal Format As String)
======================== ========================= =====

Merci pour vos explications et solutions

Le Nordiste



Avatar
Le Nordiste
Merci, ça marche bien,



Mais il faudra m'expliquer pourquoi pour cet appel de routine pas de
parenthéses ?

ERt si j'vais un ou des parametres autres que des chaines , je fais
comment ?
Avatar
Corto
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta content="text/html;charset=ISO-8859-1" http-equiv="Content-Type">
</head>
<body bgcolor="#ffffff" text="#000000">
Bonjour Le Nordiste,<br>
Version courte :<br>
Quand l'appel de fonction est isol&eacute; sur la ligne, il ne faut pas mettre
les parenth&eacute;ses, s'il est en partie droite ou gauche d'une affectation
(=) ou d'une comparaison (=,&gt;,&lt;,......) il faut les mettre.<br>
Version longue :<br>
Ainsi parlait l'aide VBA et Corto dans sa grande sagesse mit en rouge
la partie la plus importante.&lt;;o)<br>
<blockquote type="cite">
<h1>Appel de proc&eacute;dures Sub et Function</h1>
<p class="ALNSR">
<object id="hhobj_1"
style="left: 10px; width: 45px; top: 39px; height: 13px;"
type="application/x-oleobject"
classid="clsid:adb880a6-d8ff-11cf-9377-00aa003b7a11" height="13"
width="45"><param name="Width" value="1191"><param name="Height"
value="344"><param name="Command" value="ALink"><param name="Item1"
value=""><param name="Item2"
value="vaconCallingSubandFunctionProceduresC"><param name="Button"
value="Voir aussi"></object>&nbsp;&nbsp;&nbsp;
<object id="hhobj_2"
style="left: 69px; width: 60px; top: 39px; height: 13px;"
type="application/x-oleobject"
classid="clsid:adb880a6-d8ff-11cf-9377-00aa003b7a11" height="13"
width="60"><param name="Width" value="1588"><param name="Height"
value="344"><param name="Command" value="ALink"><param name="Item1"
value=""><param name="Item2"
value="vaconCallingSubandFunctionproceduresS"><param name="Button"
value="Particularit&eacute;s"></object></p>
<p class="T">Pour appeler une proc&eacute;dure <b>Sub</b> depuis une autre <a
href="JavaScript:hhobj_3.Click()">proc&eacute;dure</a>, tapez le nom de la
proc&eacute;dure sans oublier les valeurs des <a
href="JavaScript:hhobj_4.Click()">arguments</a> obligatoires.
L'instruction <b>Call</b> n'est pas obligatoire, mais si vous
l'utilisez, vous devez mettre les &eacute;ventuels arguments entre parenth&egrave;ses.</p>
<p class="T">Vous pouvez utiliser une proc&eacute;dure <b>Sub</b> pour
organiser d'autres proc&eacute;dures de mani&egrave;re &agrave; simplifier leur
interpr&eacute;tation et leur d&eacute;bogage. Dans l'exemple suivant, la proc&eacute;dure <b>Sub</b>
<code>Main</code> appelle la proc&eacute;dure <b>Sub</b> <code>MultiBeep</code>,
passant la valeur 56 comme argument. Apr&egrave;s l'ex&eacute;cution de <code>MultiBeep</code>,
le syst&egrave;me redonne la main &agrave; <code>Main</code> qui appelle la
proc&eacute;dure <b>Sub</b> <code>Message</code>. <code>Message</code>
affiche un message&nbsp;; lorsque l'utilisateur clique sur <b>OK</b>, la
main revient &agrave; <code>Main</code> qui se termine.</p>
<pre class="CT"><code>Sub Main()
MultiBeep 56
Message
End Sub

Sub MultiBeep(numbeeps)
For counter = 1 To numbeeps
Beep
Next counter
End Sub

Sub Message()
MsgBox "Il est temps de faire une pause!"
End Sub
</code></pre>
<h4>Appel de proc&eacute;dures Sub avec plusieurs arguments</h4>
<p class="T">L'exemple suivant illustre deux mani&egrave;res d'appeler une
proc&eacute;dure <b>Sub</b> avec plusieurs arguments. Lors du second appel de
<code>HouseCalc</code>, les arguments doivent &ecirc;tre mis entre
parenth&egrave;ses parce que l'instruction <b>Call</b> est employ&eacute;e.</p>
<pre class="CT"><code>Sub Main()
HouseCalc 99800, 43100
Call HouseCalc(380950, 49500)
End Sub

Sub HouseCalc(price As Single, wage As Single)
If 2.5 * wage &lt;= 0.8 * price Then
MsgBox "Cette maison est trop ch&egrave;re."
Else
MsgBox "Cette maison est abordable."
End If
End Sub
</code></pre>
<h4><font color="#ff0000">Utilisation de parenth&egrave;ses lors d'appel de
proc&eacute;dures Function</font></h4>
<p class="T"><font color="#ff0000">Pour utiliser la valeur renvoy&eacute;e
d'une fonction, affectez la fonction &agrave; une <a
href="JavaScript:hhobj_5.Click()">variable</a> et mettez les arguments
entre parenth&egrave;ses, comme le montre l'exemple suivant.</font></p>
<pre class="CT"><font color="#ff0000"><code>Answer3 = MsgBox("Votre salaire vous convient-il?", 4, "Question 3")
</code></font></pre>
<p class="T"><font color="#ff0000">Si la valeur renvoy&eacute;e d'une
fonction ne vous int&eacute;resse pas, vous pouvez appeler une fonction de la
m&ecirc;me mani&egrave;re qu'une proc&eacute;dure <b>Sub</b>. Omettez les parenth&egrave;ses,
indiquez les arguments et n'affectez pas la fonction &agrave; une variable,
comme le montre l'exemple suivant.</font></p>
<pre class="CT"><font color="#ff0000"><code>MsgBox "T&acirc;che termin&eacute;e!", 0, "Bo&icirc;te de t&acirc;che"
</code></font></pre>
<p class="NT"><font color="#ff0000"><b><font size="+3"><strong>=&gt;</strong></font>
Attention</b>&nbsp;&nbsp;&nbsp;Si vous incluez des parenth&egrave;ses dans l'exemple
pr&eacute;c&eacute;dent, l'instruction cause une erreur de syntaxe. <strong><font
size="+3">&lt;=</font></strong><br>
</font></p>
<h4>Passage d'arguments nomm&eacute;s</h4>
<p class="T">Une instruction dans une proc&eacute;dure <b>Sub</b> ou <b>Function</b>
peut passer des valeurs &agrave; des proc&eacute;dures appel&eacute;es en utilisant des <a
href="JavaScript:hhobj_6.Click()">arguments nomm&eacute;s</a>. Vous pouvez
indiquer les arguments nomm&eacute;s dans n'importe quel ordre. Un argument
nomm&eacute; est compos&eacute; du nom de l'argument suivi des signes deux-points et
&eacute;gal (<b>:=</b>), puis de la valeur affect&eacute;e &agrave; l'argument.</p>
<p class="T">L'exemple suivant appelle la fonction <b>MsgBox</b> en
utilisant les arguments nomm&eacute;s sans valeur renvoy&eacute;e.</p>
<pre class="CT"><code>MsgBox Title:="Bo&icirc;te de t&acirc;che", Prompt:="T&acirc;che termin&eacute;e!"
</code></pre>
<p class="T">L'exemple suivant appelle la fonction <b>MsgBox</b> en
utilisant des arguments nomm&eacute;s. La valeur renvoy&eacute;e est affect&eacute;e &agrave; la
variable <code>answer3</code>.</p>
<pre class="CT"><code>answer3 = MsgBox(Title:="Question 3", _
Prompt:="Votre salaire vous convient-il?", Buttons:=4)
</code></pre>
</blockquote>
Corto<br>
<br>
<br>
Le Nordiste a &eacute;crit&nbsp;:
<blockquote
cite="mid:"
type="cite">
<pre wrap="">Merci, &ccedil;a marche bien,



Mais il faudra m'expliquer pourquoi pour cet appel de routine pas de
parenth&eacute;ses ?

ERt si j'vais un ou des parametres autres que des chaines , je fais
comment ?




</pre>
</blockquote>
</body>
</html>