Passage de parametre

6 réponses
Avatar
Brat'ac
Bonjour,

Soit une fonction perso

Function titi(champ as range)
..... calcul
End funtion

Dans une cellule pas de problème =titi("A10:A30") me donne bien le
résultat

Par contre en VBA je n'arrive pas à passer la plage de cellule

c'est sûrement simple mais .......

Merci du retour.

6 réponses

Avatar
Michd
Bonjour,
Pour appeler la fonction dans une cellule de la feuille de calcul :
=titi(A1:A2) 'sans guillemet
La fonction doit être dans un module STANDARD.
'------------------------
Function titi(champ As Range)
titi = Application.Sum(champ)
End Function
'------------------------
Suppose que tu veuilles passer 2 plages de cellules discontinues
=TITI1(A1:A2;A5)
'------------------------
Function titi1(Champ As Range, Champ1 As Range)
titi1 = Application.Sum(Champ, Champ1)
End Function
'------------------------
MichD
Avatar
Brat'ac
Michd a émis l'idée suivante :
Bonjour,
Pour appeler la fonction dans une cellule de la feuille de calcul :
=titi(A1:A2) 'sans guillemet

Effectivement erreur de frappe
La fonction doit être dans un module STANDARD.
'------------------------
Function titi(champ As Range)
titi = Application.Sum(champ)
End Function
'------------------------
Suppose que tu veuilles passer 2 plages de cellules discontinues
=TITI1(A1:A2;A5)
'------------------------
Function titi1(Champ As Range, Champ1 As Range)
titi1 = Application.Sum(Champ, Champ1)
End Function
'------------------------
MichD

Pas de problème à partir des cellules, c'est à partir du VBA que je
galère
Avatar
Michd
| Pas de problème à partir des cellules, c'est à partir du VBA que je galère
Et C'EST QUOI TON PROBLÈME EN VBA? La formulation de ta question s'adresse à un devin et non à moi!
MichD
Avatar
Brat'ac
Michd avait écrit le 04/07/2018 :
Et C'EST QUOI TON PROBLÈME EN VBA? La formulation de ta question s'adresse à
un devin et non à moi!

Mon Pb c'est comment dans une procédure me servir de cette fonction
je n'arrive pas à trouver la syntaxe pour passer la plage de cellules à
la fonction
Avatar
Michd
Les deux mêmes exemples en VBA
Exemple I
'----------------------------------------------------
Sub test()
With Worksheets("Feuil1")
MsgBox titi(.Range("A1:A5"))
End With
End Sub
Function titi(Champ As Range)
titi = Application.Sum(Champ)
End Function
'----------------------------------------------------
Exemple II
'----------------------------------------------------
Sub test1()
With Worksheets("Feuil1")
MsgBox titi1(.Range("A1:A5"), .Range("A7:A10"))
End With
End Sub
Function titi1(Champ As Range, Champ1 As Range)
titi1 = Application.Sum(Champ, Champ1)
End Function
'----------------------------------------------------
MichD
Avatar
Brat'ac
Dans son message précédent, Michd a écrit :
Les deux mêmes exemples en VBA
Exemple I
'----------------------------------------------------
Sub test()
With Worksheets("Feuil1")
MsgBox titi(.Range("A1:A5"))
End With
End Sub
Function titi(Champ As Range)
titi = Application.Sum(Champ)
End Function
'----------------------------------------------------
Exemple II
'----------------------------------------------------
Sub test1()
With Worksheets("Feuil1")
MsgBox titi1(.Range("A1:A5"), .Range("A7:A10"))
End With
End Sub
Function titi1(Champ As Range, Champ1 As Range)
titi1 = Application.Sum(Champ, Champ1)
End Function
'----------------------------------------------------
MichD

Merci des précisions détaillées encore une fois