OVH Cloud OVH Cloud

Fonctions standards Excel

6 réponses
Avatar
Remi
Bonjour =E0 tous,

Je souhaiterais approfondir mes connaissances sur les
fonctions. Je voudrais savoir si je peux trouver le d=E9tail
(en Visual Basic pour Aplication) de toutes les fonctions
standard Excel (somme, nb, droite,...)

Par exemple, je voulais faire un "somme.si" perso, mais je
n'ai pas r=E9ussi a parametrer les r=E9ponses type ">", "<".

Donc, si les codes existent sur un site, ou ailleurs,
pouvez-vous me donner des indications.

Merci d'avance. R=E9mi.

6 réponses

Avatar
Modeste
Bonsour ® Rémi,
une seule adresse :
http://www.excelabo.net
notament un classeur de vincent Isoz
http://www.excelabo.net/moteurs/compteclic.php?nom=vi-
fonctionsxl

@+
-----Message d'origine-----
Bonjour à tous,

Je souhaiterais approfondir mes connaissances sur les
fonctions. Je voudrais savoir si je peux trouver le
détail

(en Visual Basic pour Aplication) de toutes les fonctions
standard Excel (somme, nb, droite,...)

Par exemple, je voulais faire un "somme.si" perso, mais
je

n'ai pas réussi a parametrer les réponses type ">", "<".

Donc, si les codes existent sur un site, ou ailleurs,
pouvez-vous me donner des indications.

Merci d'avance. Rémi.

.



Avatar
Rémi
Salut Modeste, merci pour la réponse.
Seulement, peut être ais-je mal formulé ma question ;-)
Je ne souhaite pas savoir comment utiliser une fonction, mais savoir comment
est-elle écrite en VBA !

Toutefois, le lien que tu m'as donné est excellent, et je le regarderais
avec un peu plus d'attention.
Je connaissais le site (qui ne connait pas le site de Disciplus.simplex
???) qui est le meilleur !!! mais je n'avais pas vu ce fichier sur les
fonctions.

Pour en revenir à mon problème, je met le code de ma fonction, comme ça,
s'il y a quelqu'un qui sait gérer les ">" et les "<" peut me donner un
tuyau.
Cette fonction sert a faire la somme sur une feuille synthese, de toutes les
feuilles de la cellule voulu si la cellule est = a un critère.

Esemple sommetout_si(A1,100,A2)
Immaginons que nous avons 3 feuilles et que nous mettons la fonction dans la
feuille 3, la fonction fait la somme des cellules A2 si dans la cellule A1
la valeur est = 100.

Vous avez compris ?
Feuil1 : A1 : 100 A2 : 300
Feuil2 : A1 : 200 A2 : 400
Feuil3 : A1 : =sommetout_si(A1,100,A2) = 300

Ok cela marche, mais comment faire A1 : =sommetout_si(A1,>100,A2) = 700 ?

Totutefois si quelqu'un sait ou trouver les fonctions en code, il serait mon
heros du jour :-)


Public Function sommetout_si(ByVal rng1 As Excel.range, condizione, ByVal
rng As Excel.range)
On Error GoTo ErrorHandler
Dim objXlRng As Excel.range
Dim strWshName As String
Dim objXlWbk As Excel.Workbook
Dim objXlWsh As Excel.Worksheet
Dim vntRet As Variant
strRngAddress = rng.Address
strRngadress2 = rng1.Address
With Application
.Volatile True
Set objXlRng = .Caller
End With
With objXlRng
With .Worksheet
strWshName = .Name
Set objXlWbk = .Parent
End With
End With
For Each objXlWsh In objXlWbk.Worksheets
If (objXlWsh.Name <> strWshName) Then
prova = objXlWsh.range(strRngadress2).Value
If prova = condizione Then
vntRet = vntRet + CDbl(objXlWsh.range(strRngAddress).Value)
End If
End If
Next
ExitProcedure:
sommetout_si = vntRet
Set objXlRng = Nothing
Set objXlWsh = Nothing
Set objXlWbk = Nothing
Exit Function

ErrorHandler:
vntRet = CVErr(Err.Number)
Resume ExitProcedure
'End If
End Function



"Modeste" a écrit dans le message de
news:67bc01c4cbd4$fad8e440$
Bonsour ® Rémi,
une seule adresse :
http://www.excelabo.net
notament un classeur de vincent Isoz
http://www.excelabo.net/moteurs/compteclic.php?nom=vi-
fonctionsxl

@+
Avatar
AV
Une solution pour utiliser les fonctions de feuille dans vba : la méthode
"Evaluate"
Qques exemples ici :

http://www.excelabo.net/moteurs/compteclic.php?nom=av-evaluate

AV
Avatar
Rémi
Merci AV, la fonction Evaluate est interessante, même si elle ne s'applique
pas à mon pb :-(

Car, même si j'utilisais evaluate(sum.if("") dans ma fonction, cela ne
marcherais pas. Car, si je ne me trompe pas, le premier critere doit être
unique, il ne peut s'appliquer a plusieurs feuilles (au contraire della
fonction somme, et de la fonction que j'ai crée !).

=SOMME(Feuil1:Feuil2!A1) fonctionne !
=somme.si('Feuil1:Feuil2'A1!,100,'Feuil1:Feuil2'!B1) ne fonctionne pas !

Je continue a chercher....

Merci quand même.


"AV" a écrit dans le message de
news:
Une solution pour utiliser les fonctions de feuille dans vba : la méthode
"Evaluate"
Qques exemples ici :

http://www.excelabo.net/moteurs/compteclic.php?nom=av-evaluate

AV




Avatar
AV
C'était une réponse à cette partie :

Je souhaiterais approfondir mes connaissances sur les
fonctions. Je voudrais savoir si je peux trouver le détail
(en Visual Basic pour Aplication) de toutes les fonctions
standard Excel (somme, nb, droite,...)


Pour ton problème particulier, hors une fonction perso, point de salut me
semble-t-il !

AV

Avatar
Bob
Bonsoir !

Je ne suis pas sûr que c'est ce qui t'interresse mais voici mon idée :
- En VBA, on peut, par une boucle, acceder à toutes les valeurs des
cellules.
- Donc si tu veux faire une fonction "somme.si" perso, il suffit de
parcourrir ces cellules,
d'additionner ce que tu veux, et de mettre le résultat dans ce que tu
veux.

Sinon, je ne suis pas sûr que les-dites fonctions soient créées en VBA, mais
plutôt en C++ et intégrées à Excel (??)

Cordialement...

"Remi" a écrit dans le message de
news: 700501c4cbcd$0186eb50$
Bonjour à tous,

Je souhaiterais approfondir mes connaissances sur les
fonctions. Je voudrais savoir si je peux trouver le détail
(en Visual Basic pour Aplication) de toutes les fonctions
standard Excel (somme, nb, droite,...)

Par exemple, je voulais faire un "somme.si" perso, mais je
n'ai pas réussi a parametrer les réponses type ">", "<".

Donc, si les codes existent sur un site, ou ailleurs,
pouvez-vous me donner des indications.

Merci d'avance. Rémi.