Somme d'onglets en fonction de leur noms

Résolu
Suivitdelocation Messages postés 10 Date d'inscription   Statut Membre Dernière intervention   -  
Suivitdelocation Messages postés 10 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

Je cherche un moyen pour additionner des valeurs présentes dans différents onglets en fonction de leurs noms mais avec une condition particulière :
Je souhaiterai écrire la fonction suivante : SOMME('A1:B1'!K2)

où A1 et B1 seraient le nom des onglets et K2 la somme à calculer sur ces onglets.
Pour info, les onglets se suivront toujours.

Par exemple, sur 5 onglets, je souhaite faire la synthèse dans le premier et calculer le CA des onglets 3,4 et 5.

Ma problématique est que j'ai 120 onglets et je ne voudrait pas avoir à modifier manuellement le nom des onglets dans toutes les fonctions.

Merci d'avance pour votre aide,
Bien cordialement
A voir également:

2 réponses

thev Messages postés 1986 Date d'inscription   Statut Membre Dernière intervention   713
 
Bonjour,

ci-dessous proposition de fonction

Function somme_onglets(index_onglet1 As Integer, index_onglet2 As Integer, cellule As Range) As Long

'initialisation
somme_onglets = 0

'contrôles
If Not index_onglet1 > 0 Or Not index_onglet1 <= Sheets.Count Then
MsgBox "index onglet 1 invalide"
Exit Function
End If
If Not index_onglet2 > 0 Or Not index_onglet2 <= Sheets.Count Then
MsgBox "index onglet 2 invalide"
Exit Function
End If
If Not index_onglet2 >= index_onglet1 Then
MsgBox "index onglet 2 non supérieur ou égal à index onglet 1"
Exit Function
End If

'calcul somme
For i = index_onglet1 To index_onglet2
somme_onglets = somme_onglets + Sheets(i).Range(cellule.Address).Value
Next

End Function
 
0
Suivitdelocation Messages postés 10 Date d'inscription   Statut Membre Dernière intervention  
 
Bonjour,
Merci pour votre réponse. Je pense qu'il s'agit d'un macros ?
Du coup, quelle sera la fonction que je devrait taper dans la case pour afficher le résultat ?
Merci!
0
thev Messages postés 1986 Date d'inscription   Statut Membre Dernière intervention   713 > Suivitdelocation Messages postés 10 Date d'inscription   Statut Membre Dernière intervention  
 
Bonjour,

Cette fonction est effectivement à enregistrer en tant que module dans l'éditeur Visual Basic. Elle sera ensuite disponible comme n'importe quelle fonction standard. Il suffira de taper par rapport à votre exemple :
=somme_onglets(3;5;K2)
0
Suivitdelocation Messages postés 10 Date d'inscription   Statut Membre Dernière intervention  
 
Bonjour,
C'est parfait, c'est exactement ce que je recherchais.

Merci beaucoup, ça va m'éviter de longues heures de recopies manuelles !!
0
Suivitdelocation Messages postés 10 Date d'inscription   Statut Membre Dernière intervention  
 
Dernière question cependant, cela fonctionne-t-il avec la formule suivante : =somme_onglets(3;5;K2:K3) si les données sont sur des cellules fusionnées ?
Merci
0
thev Messages postés 1986 Date d'inscription   Statut Membre Dernière intervention   713 > Suivitdelocation Messages postés 10 Date d'inscription   Statut Membre Dernière intervention  
 
Cela ne marchera pas avec la fonction actuelle. Si K2 et K3 sont fusionnées, il faut juste prendre K2.
0
eriiic Messages postés 24603 Date d'inscription   Statut Contributeur Dernière intervention   7 276
 
Bonjour,

Nomme un onglet Debut et l'autre Fin.
=SOMME(Debut:Fin!A1)
prendra en compte tous les onglets compris entre les 2.
eric
0