Equivalence fonctions excel dans macros en VBA

  • Initiateur de la discussion Initiateur de la discussion Phillip
  • 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 !

Phillip

XLDnaute Occasionnel
Bonjour,

Il s'agit d'une question très générale, car je me suis débrouillé, mais comment faire simplement une somme, une moyenne, un arrondi (on peut trouver d'autres exemples) dans une macro, à part comme dessous



som = Application.WorksheetFunction.Sum(tableau)
maximum = Application.WorksheetFunction.Max(tableau)
arrondi = Application.WorksheetFunction.Round((moy), 0)

Ca marche, mais c'est pas joli !!

Merci !!
 
Re : Equivalence fonctions excel dans macros en VBA

bonjour le forum,

Peut-être, Phillip, ne sont-elles pas, à ton goût, Jolies, mais elles sont véloces et efficaces parcequ' écrites en (C 'si mes souvenir sont bons) et complilées.

Jamais tu n'égalera leur vélocité en vba pour t'en convaincre, sélectionne la colonne A à I avec A1 en cellule active puis mets cette formule dans la barre de formule: =Ligne()*Colonne() puis valide par CTRL+ENTREE pour remplir toutes les cellules.

Ensuite utilise les fonctions ci-dessous 1 à 1 pour les tester:

Code:
'La plus longue à l'écécution
 Function TheMax(plage As Range)
    Dim c As Range
    Dim t As Double
    t = plage(1, 1)
    For Each c In plage.Cells
        If c.Value > t Then t = c.Value
    Next c
    TheMax = t
 End Function
 
'Vitesse moyenne
 Function TheMaxTableau(plage As Range)
    Dim tbl, t
    Dim i As Long, j As Long, uI As Long, uJ As Long
    tbl = plage.Value
    uI = UBound(tbl, 1): uJ = UBound(tbl, 2)
    t = tbl(1, 1)
    For i = 1 To uI
        For j = 1 To uJ
            If tbl(i, j) > t Then t = tbl(i, j)
        Next j
    Next i
    TheMaxTableau = t
End Function
 
'La plus rapide
Function TheExcelMax(plage As Range)
    TheExcelMax = Application.WorksheetFunction.Max(plage)
End Function


A+
 
Re : Equivalence fonctions excel dans macros en VBA

Bon d'accord, j'ai rien dit ! ;-)

Je ne pensais simplement pas qu'en VBA le plus simple était d'utiliser les fonctions de feuilles...

Mais j'ai appris quelque chose !!

Merci !
 
- 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

Discussions similaires

E
Réponses
6
Affichages
863
ExcelNewbie96
E
A
Réponses
2
Affichages
1 K
AntoineLTO
A
M
  • Question Question
Réponses
2
Affichages
1 K
MiaouLeLion
M
N
Réponses
5
Affichages
3 K
Nicocotte125
N
M
Réponses
2
Affichages
1 K
Magicdog36
M
Retour