• Initiateur de la discussion Initiateur de la discussion m92n
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

M

m92n

Guest
bonjour..
je commence en vb et j'essais de faire une fonction personnalisé.

Voici ce que je n'arrive pas a faire..

metton je pose une case égal à :
=perso(variable;var1;var2;var3....)

puis dans le code

function perso(variable as integer, var1 as single, var2 as single...) as integer
for i = 1 to (nombre de variable var"x")
if var"i" ...

je ne sais pas si je m'explique clairement.. je veux que je puisse rentrer autant de case que je veux et qu'il soit nommé var avec un nombre incrémenté de 1 chaque fois. puis jaimerai faire appelle à cette variable avec une autre variable.. par exemple losque i = 1, var"i" = var1...

Comment pourrais-je faire pour avoir quelque chose de semblable qui fonctionnerai??

merci
m92n
 
Re : chaine de variable

Bonjour,

pas tout compris du résultat attendu, mais si l'on doit comprendre que case = cellule ... peut être qu'une déclaration de type "range" devrait suffire :

Code:
Function perso(variable As Integer, var As Range) As Integer
Dim c As Range
For Each c In var

Next c
End Function

après tout dépend de ce que tu veux faire...

bonne journée.
@+
 
Re : chaine de variable

Bonjour m92n, salut Pierrot,

Tout à fait d'accord avec Pierrot : il faut dans la fonction utiliser une seule variable Range "var".

Quand on entre cette fonction dans une cellule, si l'on veut déterminer une plage constituée de cellules non adjacentes, écrire :

=perso(variable;(A1;B3;C5))

A+
 
Re : chaine de variable

Bonsoir,
encore moi..
cela marche bien mais est-il possible de faire une range avec différentes cellules de différentes feuilles?
j'ai esseyer simplement avec :
=perso(H10;('feuille1'!H10;'feuille2'!H10))
mais cela ne fonctionne pas 🙁

merci de m'aider
m92n
 
Re : chaine de variable

Bonjour
Un exemple à bricoler dans le classeur joint.
Code:
[COLOR="DarkSlateGray"][B]Function perso(ParamArray dat())
Dim i, s
   Application.Volatile
   For i = LBound(dat) To UBound(dat)
      s = s + dat(i)
   Next i
   perso = s
End Function[/B][/COLOR]
Commentaire :
Cette fonction prend comme argument une liste de cellules et renvoie la somme de leur contenu. (Ce n'est pas très utile, mais c'est un exemple...)

en A1, feuille "Feuil1"
=perso(B1;Feuil2!B1;Feuil3!B1)
renvoie la somme des valeurs des cellules B1 des feuilles "Feuil1", "Feuil2" et "Feuil3".

en A2, feuille "Feuil1"
=perso(B1:B2;Feuil2!B2;Feuil3!B2)
renvoie un erreur (#VALEUR!) parceque B1:B2 n'est pas une cellule, mais une plage de cellules.
en A3
=perso(B2;B3;Feuil2!B3;Feuil3!B3)
fonctionne.
Vous pouvez donner une liste de 4,5 cellules ou plus si besoin est.
=perso()
renvoie la valeur 0 (zéro).

en A4, feuille "Feuil1"
=perso(B4;Feuil2!B4;Feuil3!B4)
renvoie un erreur (#VALEUR!) parceque B4 est une cellule qui ne contient pas une valeur numérique.​
Bon courage.​
ROGER2327
#2090
 

Pièces jointes

- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
4
Affichages
652
Retour