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 -
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
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:
- Somme d'onglets en fonction de leur noms
- Fonction si et - Guide
- Formule somme excel colonne - Guide
- Somme si couleur - Guide
- Somme en anglais excel - Guide
- Les noms des animaux - Télécharger - Études & Formations
2 réponses
Bonjour,
ci-dessous proposition de fonction
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
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!
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)
C'est parfait, c'est exactement ce que je recherchais.
Merci beaucoup, ça va m'éviter de longues heures de recopies manuelles !!
Merci