L'informatique à votre portée
L'informatique prêt-à-porter

Faites appel à moi pour vos formations
sur les dpts 81, 31, 82, 11 et 67 (Strasbourg)
Confiez moi vos développements Office

FacebookTwitterGoogle BookmarksLinkedin

Établir une fonction personnalisée

Imprimer E-mail
5 mars 2014

Nous allons établir une fonction qui établit la somme d'une plage lorsque les valeurs d'une plage (la même ou une autre) correspondent à 3 valeurs indiquées dans une cellule. Pour tester cette fonction, établissez le tableau suivant :

Puis dans l'éditeur VBA, insérez un module pour votre classeur et tapez-y cette fonction :

Function SommeSi3cond(PlageTest As Range, PlageSomme As Range, rVal1 As Range, rVal2 As Range, rVal3 As Range) As Double
Dim vSom As Double 'pour effectuer la somme
Dim iL As Integer, iC As Integer

For iC = 1 To PlageTest.Columns.Count 'on parcourt toutes les colonnes de la plage Test
For iL = 1 To PlageTest.Rows.Count 'on parcourt toutes les lignes de la plage Test
'si la cellule de plagetest de ligne iL et colonne iC est égale à rVal1 ou rVal2 ou rVal3
If PlageTest(iL, iC) = rVal1 Or PlageTest(iL, iC) = rVal2 Or PlageTest(iL, iC) = rVal3 Then
vSom = vSom + PlageSomme(iL, iC) 'on ajoute à vSom le contenu de la plageSomme de la même adresse
End If
Next
Next
'attribution de la valeur sommée à la fonction
'pour que la fonction renvoie la valeur calculée vous devez toujours avoir cette affectation

SommeSi3cond = vSom
End Function

Maintenant, il faut utiliser cette fonction :

  • Fermez l'éditeur VBA, sélectionnez la cellule devant contenir votre fonction.

  • Cliquez sur le bouton Coller une fonction

  • Sélectionnez la catégorie Personnalisée

  • Sélectionnez votre fonction

  • Pour indiquer les données de votre fonction :

    • Sélectionnez la plage de test

    • Sélectionnez la plage à sommer

    • Sélectionnez les plages de valeurs successivement.