Helo fonction RECHERCHE V

Résolu/Fermé
aramis74 Messages postés 211 Date d'inscription mercredi 16 novembre 2005 Statut Membre Dernière intervention 20 novembre 2017 - 22 déc. 2014 à 15:23
aramis74 Messages postés 211 Date d'inscription mercredi 16 novembre 2005 Statut Membre Dernière intervention 20 novembre 2017 - 8 janv. 2015 à 13:24
Bonjour quelqu'un peut m'aider sur la fonction RECHERCHEV ?

j'ai 10 onglets sous excel avec 10 salariés ayant des fonctions différentes (CADRE1, CADRE2, AM1, AM2,E1 et E2) et un salaire en fonction de chaque fonction.

Mon souci, je souhaite dans un 11ème onglet , je veux en TAPANT la fonction d'un salarié ( CADRE, Agent de maitrise,....) qu'excel cherche dans tous les onglets la fonction recherché et qu'il me cumule le total de leurs salaires.

voici ma formule qui me renvoie "VALEUR

=RECHERCHEV(A56;'BARBANCON '!B3:VERNET!B3;SOMME('BARBANCON '!D50:VERNET!D50);FAUX)

A56 étant la fonction recherché sur le 11ème onglet, exemple je tape AM1.
BARBANCON étant le 1er onglet et VERNET le dernier, la fonction recherché se situe sur la cellule B3 de chaque onglet et le salaire correspondant dont je veux faire la somme se situe sur la cellule D50 de chaque onglet.

quelqu'un de calé sur EXCEL pourrait t 'il me corriger dans ma formule et me permettre d'avancer.

merci par avance.
A voir également:

6 réponses

via55 Messages postés 14474 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 19 septembre 2024 2 728
22 déc. 2014 à 15:40
Bonjour

Pas évident de faire de recherchev multi-onglets et encore moins de faire la somme en même temps (ou alors par macro VBA)

sinon essaie plutôt une formule en sommant differents SOMME.SI sur chaque onglet

=SOMME.SI(BARBANCON!C:C;A56;BARBANCON!D:D)+SOMME.SI(CHABERT!C:C;A56;CHABERT!D:D) +.....+SOMME.SI(VERNET!C:C;A56;VERNET!D:D)
En supposant les fonctions en colonne C de chaque onglet et les salaires en colonne D

Cdlmnt
0
aramis74 Messages postés 211 Date d'inscription mercredi 16 novembre 2005 Statut Membre Dernière intervention 20 novembre 2017 26
22 déc. 2014 à 16:43
merci pour ton retour via 55 mais je veux faire cette recherche sur un autre onglet.

en choisissant la fonction AM1 (par exemple) qui est dans la cellule B3 de chaque onglet, excel doit me renvoyer tous les salariés ayant AM1 dans la cellule B3 et le salaire qui va avec.

je ne sais pas si je détaille assez mon problème.

ton avis via55 ?
0
via55 Messages postés 14474 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 19 septembre 2024 2 728
22 déc. 2014 à 17:12
Re

C'est bien ce que je te propose dans ma formule, d'aller dans chaque onglet (donc 10 SOMME.SI) récupérer les salaires sue la même ligne que la fonction choisie (ce que semblait suggérer ton idée de départ avec RECHERCHEV) et de les additionner

Par contre si dans tous les onglets il n'y a qu'une cellule avec la fonction (B3) et qu'une cellule avec le salaire (supposons D5) la formule dans le 11eme onglet pourrait être
=SI('BARBANCON'!B3="A56;'BARBANCON'!D5;0)+ SI(...... + SI('VERNET'!B3="A56;'VERNET'!D5;0)

ou bien je n'ai pas compris ce que tu veux; dans ce cas poster un exemple anonymé (avec noms et chiffres bidons) sur cjoint.com et reviens indiquer le lien fourni

Cdlmnt
0
JvDo Messages postés 1978 Date d'inscription mercredi 27 juillet 2005 Statut Membre Dernière intervention 28 septembre 2020 858
Modifié par JvDo le 22/12/2014 à 18:02
Bonjour à tous,

tu peux utiliser les fonctions 3D de Morefunc (Laurent Longre) :
=SOMMEPROD((TAB3D(Feuil1:Feuil11!B3)=A2)*TAB3D(Feuil1:Feuil11!D3))
en supposant que la fonction cherchée ("AM1") est dans la cellule A2.

Sinon, méthode Jboisgontier :
=SOMMEPROD(SOMME.SI(INDIRECT("'"&nf&"'!b3");$A$2;INDIRECT("'"&nf&"'!d3")))
avec nf, nom défini par
=STXT(LIRE.CLASSEUR(1);TROUVE("]";LIRE.CLASSEUR(1))+1;99)&INDIRECT("iv65000")


cordialement
0
aramis74 Messages postés 211 Date d'inscription mercredi 16 novembre 2005 Statut Membre Dernière intervention 20 novembre 2017 26
23 déc. 2014 à 11:48
merci a toi via 55, ta solution marche, un peu longue mais ça marche, par contre si je dois rajouter des onglets je dois modifier la formule.

avec RECHERCHE V et INDIRECT cela ne marcherai pas.

voici le lien https://www.cjoint.com/?3Lxl20hmoXr
merci
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
via55 Messages postés 14474 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 19 septembre 2024 2 728
23 déc. 2014 à 14:16
Bonjour

As tu essayé les solutions proposées par JvDo (que je salue au passage) ?

Voici une autre solution avec un fonction personnalisée :

https://www.cjoint.com/?0LxoxzPEbql

Tu peux rajouter autant de feuilles que tu veux, la fonction personnalisée fait la somme conditionnelle de toutes les feuilles du classeur sauf la dernière (feuille synthese en dernier)

Tu peux mettre une formule utilisant cette fonction dans n'importe quelle cellule de la feuille synthèse, en indiquant dans la parenthèse l'adresse de la cellule de synthèse où trouver le nom de la fonction professionnelle

Par contre à l'ouverture de ton fichier j'ai le message d'alerte de références circulaires qui s'affiche, je ne sais pas quelles cellules sont concernées, question à régler ..

Cdlmnt
0
aramis74 Messages postés 211 Date d'inscription mercredi 16 novembre 2005 Statut Membre Dernière intervention 20 novembre 2017 26
23 déc. 2014 à 14:59
merci via 55 pour ton aide et le fichier personnalisé , par contre quand je fais ALT+F11 pour voir le code comment je le transpose sur un autre fichier excel peut tu m'expliquer en gros comment tu as fait car j'aime bien apprendre ce que je ne connais pas et le transposer plus tard a d'autres éventuels fichiers.
0
via55 Messages postés 14474 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 19 septembre 2024 2 728
23 déc. 2014 à 15:58
Re

Pour transposer :

Dans le 2nd fichier : ALT F11 pour ouvrir l'éditeur, Onglet Insertion et Module
Copier la macro du 1er fichier et la coller dans la page blanche et fermer éditeur

La nouvelle fonction est désormais accessible dans n'importe quelle feuille du classeur comme toute fonction excel, elle s'affiche dans la liste des fonctions quand tu tapes = SO..dans une cellule
Syntaxe : =somme_fonction(nom de la fonction à sommer ou adresse de la cellule de la fonction à sommer) ex: =somme_fonction("IDE") ou =somme_fonction(B55)

Explication de la macro :

Function somme_fonction(fonct As String)
Total = 0
' boucle sur toutes les feuilles du classeur sauf la dernière
For n = 1 To Sheets.Count - 1
'si la valeur en B3 de la feuille n correspond à celle choisie par la fonction (fonct) on ajoute à variable Total celle en D49 feuille n
If Sheets(n).Range("B3") = fonct Then Total = Total + Sheets(n).Range("D49")
Next
'la variable Total est renvoyée dans la Fonction (qui affiche ce résultat dans la cellule contenant la formule)
somme_fonction = Total
End Function


Cdlmnt
0
aramis74 Messages postés 211 Date d'inscription mercredi 16 novembre 2005 Statut Membre Dernière intervention 20 novembre 2017 26 > via55 Messages postés 14474 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 19 septembre 2024
24 déc. 2014 à 10:15
merci via55 et jVDo cela marche, donc si veux la somme de toutes les sommes qui sont en D50 et autres je recopie la formule ci dessus et a la place de D49, je mets D50 ,....

Si tu me confirmes cela, c'est super et je vous souhaite de passer de bonnes fêtes et longue a ce forum.
0
via55 Messages postés 14474 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 19 septembre 2024 2 728 > aramis74 Messages postés 211 Date d'inscription mercredi 16 novembre 2005 Statut Membre Dernière intervention 20 novembre 2017
24 déc. 2014 à 12:06
Bonjour aramis

Oui tout à fait

Mais si tu veux pouvoir choisir dans ta feuille les cellules où trouver les données on peut modifier la macro ainsi :
Function somme_fonction(fonct As String, cellA As String, cellB As String)
Total = 0
' boucle sur toutes les feuilles du classeur sauf la dernière
For n = 1 To Sheets.Count - 1
'si la valeur en B3 de la feuille n correspond à celle choisie par la fonction (fonct) on ajoute à variable Total celle en D49 feuille n
If Sheets(n).Range(cellA) = fonct Then Total = Total + Sheets(n).Range(cellB)
Next
'la variable Total est renvoyée dans la Fonction (qui affiche ce résultat dans la cellule contenant la formule)
somme_fonction = Total
End Function


La nouvelle syntaxe est alors =somme_fonction(nom fonction ou adresse cellule sans ""; adresse cellule fonction dans feuille entre ""; adresse cellule valeur à sommer dans feuille entre "")

ex : somme_fonction("IDE";"B3";"D59") ou somme_fonction(B55;"B3";"D59")

Bonnes fêtes à toi également

Cdlmnt
0
aramis74 Messages postés 211 Date d'inscription mercredi 16 novembre 2005 Statut Membre Dernière intervention 20 novembre 2017 26 > via55 Messages postés 14474 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 19 septembre 2024
6 janv. 2015 à 14:40
bonjour a tous, tout d'abord tous mes voeux pour 2015 et santé avant tout pour tous vos proches.

via55, je te joins le fichier excel complet ci dessous :

https://www.cjoint.com/c/EAgoGwGnq1L

sur la fiche synthèse en cellule D49, la formule que tu m'as donnée marche très bien, j'ai bien la somme de toutes les cellules D49 de tous les onglets ayant la fonction ASD qui figure en B3 de chaque feuille.

Par contre, j'ai essayé ce que tu m'as dit ci dessus, en me mettant sur la cellule D50( je veux le total de toutes les cellules D50 de chaque onglet sauf la dernière bien sur, toujours avec la fonction toujours choisi en D55) avec cette fonction =SOMME_FONCTION(A55;"B3";"D50")
mais j'ai un retour #VALEUR

En gros ma feuilles SYNTHÈSE devra faire le total de toutes les cellules, ou il y a des montants (D49 à D52, ... I49 a I52,.... même a ZÉRO pour la fonction choisi en A55 ( ici c'est ASD).

je dois mal m'y prendre avec cette fonction
0
via55 Messages postés 14474 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 19 septembre 2024 2 728 > aramis74 Messages postés 211 Date d'inscription mercredi 16 novembre 2005 Statut Membre Dernière intervention 20 novembre 2017
Modifié par via55 le 6/01/2015 à 15:39
Bonjour aramis

Merci pour tes voeux, reçois tous les miens pour cette nouvelle année

Ton fichier ne marche pas car :
- tu as laissé l'ancienne fonction dans les macros, il y en a donc 2 avec le même nom
- tu as mis la nouvelle dans le le worksheet de la Feuille Synthese et pas dans un module

Donc :
1) supprimer l'ancienne fonction dans Module 2 (ou si tu veux la garder lui donner un autre nom)
2) mettre la nouvelle fonction dans le module 2 à la place de l'ancienne (ou en dessous)

après en entrant =somme_fonction(A55;"B3";"D51") en D49 de Synthese ça doit marcher

Cdlmnt
0