Fonction qui ne retourne rien. Possible ? [VBA] - VB/VBA/VBS - Programmation
Marsh Posté le 12-04-2006 à 10:18:39
Il suffit de remplacer le mot "Function" par "Sub" après "Private", et "End Sub" à la place "End Function" (sauf si VBA le fait tout seul).
Pour de vieilles rasions qui remontent au début de l'informatique, une "function" retourne toujurs une valeur, et une subroutine n'en retourne pas.
Marsh Posté le 12-04-2006 à 10:28:04
haaan ...
ok
merci
edit : et du coup, comment je lance ce sub dans mon main ?
Marsh Posté le 12-04-2006 à 10:33:17
Si tu as
Private Sub Toto(par1 as string) |
alors tu le lances juste par
Toto "truc" |
Marsh Posté le 12-04-2006 à 10:36:22
Oui, pour appeler une sub ou function, on peut indiquer uniquement son nom sur une ligne.
On peut aussi mettre optionnellement le mot "call" devant ce nom de sub ou de function.
On peut aussi mettre les paramètres entre parenthèses ou utiliser la technique des paramètres nommés.
Marsh Posté le 12-04-2006 à 10:37:52
donc voila ce que j'ai :
Code :
|
que je tente de lancer avec :
Code :
|
Et j'ai le droit un magnifique : "Erreur de compilation. Attendu : ="
Marsh Posté le 12-04-2006 à 10:39:56
Enlève les parenthèses
Affichage Mat2005(), 8 |
ou utilise le mot clé Call
Call Affichage(Mat2005(), 8) |
La syntaxe diffère entre les functions et les procédures (sub)
Marsh Posté le 12-04-2006 à 10:40:17
je m'auto reponds :
Code :
|
marche tres bien, mais pas sans le call
en tout cas merci a vous du coup de main
Marsh Posté le 12-04-2006 à 09:34:31
Bonjour, je souhaite dans un programme ajouter une fonction d'affichage d'un tableau (n lignes, 2 colonnes)
Probleme, cette fonction ne doit rien revoyer, elle ne fait que copier les valeurs du tableau dans la feuille excel, or, VB n'accepte pas que je lance la fonction seule.
voici le code en question :
la fonction passe, mais si dans mon main je lui demande : "Affichage(Mat2004(), 8)" il me dit qu'il n'y a pas de =
par contre la suite passe tres bien :
en appelant : c = Affichage(Mat2004(), 8)