Call fonction avec arguments en vba ?
Résolu/Fermé
printfx000
-
8 août 2011 à 10:09
moiced59 Messages postés 1145 Date d'inscription samedi 15 novembre 2008 Statut Membre Dernière intervention 18 août 2014 - 8 août 2011 à 16:08
moiced59 Messages postés 1145 Date d'inscription samedi 15 novembre 2008 Statut Membre Dernière intervention 18 août 2014 - 8 août 2011 à 16:08
A voir également:
- Type d'argument byref incompatible
- Clear type - Guide
- Faiblesse type psy ✓ - Forum Jeux vidéo
- SOS !! Problème ByRef ✓ - Forum VB / VBA
- Changer le type de fichier - Guide
- Indiquez l'unité pour la taille de ces fichiers. type document texte brut taille 8,1 ?? première réponse à trouver longueur 8085 caractères type image jpeg taille 3,0 ?? deuxième réponse à trouver dimension 3776 × 2124 px type vidéo mpeg-4 taille 1,1 ?? troisième réponse à trouver durée 02:01:15 - Forum Google Chrome
11 réponses
moiced59
Messages postés
1145
Date d'inscription
samedi 15 novembre 2008
Statut
Membre
Dernière intervention
18 août 2014
60
8 août 2011 à 10:16
8 août 2011 à 10:16
Bonjour
Dans ta fonction tu reappel ta fonction c pas terrible comme facon de faire tu devrai plutot faire une boucle.
ton but est de trouver la derniere colonne ecrite de la 1 ere ligne ?
Dans ta fonction tu reappel ta fonction c pas terrible comme facon de faire tu devrai plutot faire une boucle.
ton but est de trouver la derniere colonne ecrite de la 1 ere ligne ?
en fait, je compte faire une fonction recursive. pour le moment, le but de la fonction n'a pas trop d'importance, c'est juste pour l'exemple.
Mon problème, c'est que j'arrive pas à rentrer dans ma fonction lors de l'instruction Call.
Comment faire ?
Mon problème, c'est que j'arrive pas à rentrer dans ma fonction lors de l'instruction Call.
Comment faire ?
moiced59
Messages postés
1145
Date d'inscription
samedi 15 novembre 2008
Statut
Membre
Dernière intervention
18 août 2014
60
8 août 2011 à 10:30
8 août 2011 à 10:30
Bah t deja dedans tu n'a cas bouclé au lieu de faire un appel de celle ci !!!
Private Function Gauche(x As Integer, y As Integer)
Do While Cells(x, y - 1) = ""
y = y - 1
Loop
End Function
Sub test()
Dim test As Variant
test = Gauche(1, 10)
End Sub
Private Function Gauche(x As Integer, y As Integer)
Do While Cells(x, y - 1) = ""
y = y - 1
Loop
End Function
Sub test()
Dim test As Variant
test = Gauche(1, 10)
End Sub
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 752
8 août 2011 à 11:05
8 août 2011 à 11:05
Bonjour,
Très bien de te lancer dans la récursivité, mais au préalable, pose ton problème.
Exemple de récursivité avec la une simple addition des nombres de 10 à 1 :
Et la macro d'appel correspondante :
Très bien de te lancer dans la récursivité, mais au préalable, pose ton problème.
Exemple de récursivité avec la une simple addition des nombres de 10 à 1 :
Private Function Addition(x As Integer) As Integer If x = 0 Then Addition = 0 Else Addition = Addition(x - 1) + x 'la récursivité se trouve ici!!! End If End Function
Et la macro d'appel correspondante :
Sub AppelMaFonction() Debug.Print Addition(10) End Sub
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
bonjour
pour le message d'erreur Type d'argument ByRef incompatible, dans ta macro modifie la déclaration des variables comme ceci:
bonne suite
pour le message d'erreur Type d'argument ByRef incompatible, dans ta macro modifie la déclaration des variables comme ceci:
Dim x As Integer Dim y As Integer
bonne suite
J'ai réussi à résoudre mon problème.
Il fallait que je déclare une variable de type variant et que je l'initialise avec ma fonction pour que ça marche.
(ex: Move=Fonction(x,y)).
Sinon, un dernier truc sans rapport particulier avec ce qui est été dit précédemment: savez vous s'il existe une fonction en vba permettant de stopper ou d'arrêter l'execution de la macro en cours ?
Il fallait que je déclare une variable de type variant et que je l'initialise avec ma fonction pour que ça marche.
(ex: Move=Fonction(x,y)).
Sinon, un dernier truc sans rapport particulier avec ce qui est été dit précédemment: savez vous s'il existe une fonction en vba permettant de stopper ou d'arrêter l'execution de la macro en cours ?
moiced59
Messages postés
1145
Date d'inscription
samedi 15 novembre 2008
Statut
Membre
Dernière intervention
18 août 2014
60
8 août 2011 à 15:53
8 août 2011 à 15:53
un exit sub arrete la macro
Merci de ta réponse.
J'ai essayé, mais on m'affiche un message du type 'Exit Sub' inutilisable dans une fonction ou une procédure.
Or, il faudrait que j'arrête le macro si ma condition dans ma fonction est vérifié ... Y'a t'il un autre moyen ?
J'ai essayé, mais on m'affiche un message du type 'Exit Sub' inutilisable dans une fonction ou une procédure.
Or, il faudrait que j'arrête le macro si ma condition dans ma fonction est vérifié ... Y'a t'il un autre moyen ?
moiced59
Messages postés
1145
Date d'inscription
samedi 15 novembre 2008
Statut
Membre
Dernière intervention
18 août 2014
60
8 août 2011 à 16:00
8 août 2011 à 16:00
Tu parle dans ta fonction ou macro ?
si c dans ta fonction c'est exit function
si c dans ta fonction c'est exit function
moiced59
Messages postés
1145
Date d'inscription
samedi 15 novembre 2008
Statut
Membre
Dernière intervention
18 août 2014
60
8 août 2011 à 16:08
8 août 2011 à 16:08
;) @ + sur CCM