somme conditionelle dans plusieurs onglets

StyveA

XLDnaute Nouveau
Bonjour à tous,

Voilà mon problème :

Je dispose d'une feuille Excel comprenant plusieurs onglets. chaque feuille ne possède pas forcément le même format.
Voici un fichier exemple reprenant le format de mon fichier :


J'ai joint le fichier au message.

Donc ce que j'aimerai, ce serait de pouvoir dans la feuil3, afficher tous les noms présents dans tout le classeur, avec pour chaque personne le nombre total de C, de D etc...


En gros ce que j'aimerais c'est faire :

SI("personne1", somme de tous les C dans toutes les feuilles du classeur) SINON
SI ("personne2",somme de tous les C dans toutes les feuilles du classeur) ..

Mais sans donner personne1 ou personne2, il doit pouvoir les trouver lui même dans le classeur :s

Je suppose que ça doit être faisable en VBA, mais mes connaissances restent assez limitées dans le domaine ^^'


Merci à ceux qui pourront m'aider !
 

Pièces jointes

  • exemple.xls
    36 KB · Affichages: 65
  • exemple.xls
    36 KB · Affichages: 75
  • exemple.xls
    36 KB · Affichages: 83
Dernière édition:

smotty

XLDnaute Occasionnel
Re : somme conditionelle dans plusieurs onglets

bonjour,


avec cette fonction personnalisée:

Code:
Function NbToutesFeuilles(ByVal Nom As String, ByVal ValeurCherchee As Variant)
    Application.Volatile
    
    Dim N As Long
    Dim sh As Worksheet
    Dim C As Range
    
    For Each sh In ThisWorkbook.Sheets
        l = sh.[A65535].End(xlUp).Row
        If l > 3 Then
            Set C = sh.Range("A3:A" & l).Find(Nom, , xlValues, xlWhole)
            If Not C Is Nothing Then
                N = N + WorksheetFunction.CountIf(sh.Rows(C.Row), ValeurCherchee)
            End If
        End If
    Next sh
    
    NbToutesFeuilles = N
End Function

Voir le fichier joint, exemple en feuil3.

cdt

smotty
 

Pièces jointes

  • cijo7B5UYm.xlsm
    21.7 KB · Affichages: 75
  • cijo7B5UYm.xlsm
    21.7 KB · Affichages: 83
  • cijo7B5UYm.xlsm
    21.7 KB · Affichages: 82

StyveA

XLDnaute Nouveau
Re : somme conditionelle dans plusieurs onglets

Je viens d'essayer votre macro, et celle-ci fonctionne à merveille à priori !

Je vous remercie de votre aide, je vais l'essayer sur mon fichier en question voir si ça marche aussi mais ça devrait être bon!

Merci encore

Cordialement

StyveA
 

smotty

XLDnaute Occasionnel
Re : somme conditionelle dans plusieurs onglets

voir également en pièce jointe, la macro ChercheNoms à lancer.

Va chercher tous les noms et en fonction des colonne donne le nombre

cdt

smotty
 

Pièces jointes

  • cijo7B5UYm.xlsm
    25.2 KB · Affichages: 94
  • cijo7B5UYm.xlsm
    25.2 KB · Affichages: 97
  • cijo7B5UYm.xlsm
    25.2 KB · Affichages: 91

StyveA

XLDnaute Nouveau
Re : somme conditionelle dans plusieurs onglets

Rebonjour Smotty,

hélas je n'ai pas réussi à utiliser votre 2ème fichier dans mon fichier original. Elle ne se lance pas du tout :s dois-je changer quelque chose sachant que les lettres à chercher dans le vrai fichier ne sont pas C ou D ou E?

Et pour la 1ère macro, j'ai essayé de l'utiliser sur tout mon fichier original (au début je n'avais fait que quelques essais) mais il ne met que des 0 et me sort le message d'erreur :

Microsoft Excel ne parvient pas à calculer cette formule.Un classeur ouvert contient une référence circulaire, mais il est impossible d'afficher les références erronées. Essayez de modifier la dernière formule tapée ou de la supprimer en appuyant sur annuler.

Une fois que je mets ok, toutes les cellules n'affichent plus que des 0 =/
Tout à l'heure ça semblait marcher, je ne comprends pas trop...

Une idée du problème?
Peut être que je ne peux utiliser qu'un nombre limité de fois la formule?

Ps : lorsque je mets uniquement 2 noms et plusieurs fois la formule ça passe, mais à 3 noms ça bug =/

Cdt

StyveA
 
Dernière édition:

smotty

XLDnaute Occasionnel
Re : somme conditionelle dans plusieurs onglets

Re

Pour la 1ère macro, elle est basée sur le fichier test.

Elle va dans chaque feuille ayant "2010" à la fin du nom de l'onglet correspondant.(il fallait éviter la feuille dans laquelle le calcule s'effectue.)
si vous avez donné un nom avec 2010 à la fin de l'onglet où sont entrées les formules, ça peut créer un bug


Normalement le type de valeur cherchée n'a pas d'incidence, sauf éventuellement pour des dates.

C'est une fonction qui se calcule automatiquement.

Pour la 2nde macro, elle utilise exactement la même fonction, sauf qu'elle va d'abord chercher tous les noms de chaque feuille, puis les met en dans l'onglet "feuil3" (de mémoire) met n'y met que les valeurs et non la formule en fonction des valeurs en titre des colonnes (il faut donc relancer la procédure chercher nom si on change les valeurs en haut des colonnes)
bien mettre la macro dans la feuille concernée

1) entrer les valeurs recherchées en haut des colonnes
2) verifier que le nom de la feuille ne contient pas 2010 à la fin
3) dans le 2ème fichier il y a 1 fonction à mettre dans un module et une procédure dans la feuille de destination des chiffres

Peut-être vous faudra-t'il les adapter.

en me donnant la structure précise du fichier (noms des feuilles si modifié) je pourrai revoir les codes.:)

cdt

smotty
 
Dernière édition:

StyveA

XLDnaute Nouveau
Re : somme conditionelle dans plusieurs onglets

Re,

hélas la 1ère macro bug dans le fichier test, je n'arrive pas à entrer plus de 3 noms sinon ça bug. En modifiant votre code et en mettant if l > 8
j'arrive à entrer 7noms, mais au délà ça bug complètement.

En ce qui concerne la structure du fichier exact, la voici :

noms des onglets : de Octobre 2009 à Octobre 2010 (donc 13 onglets)

Les noms sont de la même structure que les noms dans l'exemple (X. Xxxx)
Sur chaque onglet ne se trouve pas forcément les même noms (il se peut que M. Dupont soit sur tous les onglets mais que M. Ki ne soit que sur les 3 derniers onglets par exemple)
Il peut y avoir environ 50noms (possiblement plus mais ce n'est qu'un détail)


Pour les termes à chercher, il y'en a 14, je ne vais pas tous les donner, ça ne sert à rien je crois ^^ mais en gros il y'aurait : RTT E CM

etc..

Je pense avoir donné toutes les infos ^^'

En attendant je vais essayer ce que vous m'avez dit.


Cdt

StyveA
 

smotty

XLDnaute Occasionnel
Re : somme conditionelle dans plusieurs onglets

essayez ça, j'ai fait en sorte que ce soit plus simple, pas de souci de nom d'onglet.
 

Pièces jointes

  • cijo7B5UYm.xlsm
    25.5 KB · Affichages: 62
  • cijo7B5UYm.xlsm
    25.5 KB · Affichages: 59
  • cijo7B5UYm.xlsm
    25.5 KB · Affichages: 64

StyveA

XLDnaute Nouveau
Re : somme conditionelle dans plusieurs onglets

Très bien j'essaye ça de suite et j'edit mon message dans quelques minutes une fois fait.

Merci


Edit : Il a cherché parfaitement tous les noms ! Donc pour ça c'est nickel, par contre pour les formules, dès que j'ai commencé à mettre la 1ère formule (=NbToutesFeuilles(A2;B1)), il me marque #VALEUR! , une erreur de format ou autre chose?
 
Dernière édition:

smotty

XLDnaute Occasionnel
Re : somme conditionelle dans plusieurs onglets

Avant de lancer la macro, il faut entrer les valeurs des colonnes, comme dans le fichier exemple C, D, E etc...

Ensuite seulement il faut lancer la macro car elle cherche les nom et en même temps elle calcule, il n'y a pas de formule à entrer. (mais le concept est peut-être à revoir)

d'ailleurs la formule a changé également mais vous n'avez pas besoin de la rentrer.

Dans le dernier fichier joint, regardez bien, il n'y a pas de formule dans les cellules. juste des nombres.



cdt

smotty
 
Dernière édition:

smotty

XLDnaute Occasionnel
Re : somme conditionelle dans plusieurs onglets

ou voici une autre version

elle identifie toute seule la feuille de calcule

et on peut utiliser la formule...

Mais comme pour la précédente pas besoin d'entrer de formules mais cette fois c'est possible quand meme.

On devrait y arriver...;)

Pour lancer la macro aller dans Affichage /Macros/

Puis sélectionner la macro et exécuter.
 

Pièces jointes

  • cijo7B5UYm.xlsm
    26.1 KB · Affichages: 71
  • cijo7B5UYm.xlsm
    26.1 KB · Affichages: 76
  • cijo7B5UYm.xlsm
    26.1 KB · Affichages: 79
Dernière édition:

StyveA

XLDnaute Nouveau
Re : somme conditionelle dans plusieurs onglets

Désolé, je n'étais plus devant mon ordinateur, je regarde ce que vous m'avez envoyé tout de suite, merci à vous !

Edit : Donc je viens d'essayer la nouvelle formule, et ça marche parfaitement par contre je dois rentrer toutes les formules, c'est long, mais ça marche ^^.

Après en ce qui concerne le calcul automatique de la formule, soit j'ai fait un mauvaise manip', soit un mauvais réglage, mais en tout cas elle ne se fait pas chez moi :s

Les étapes que je fais sont :

1) Copier la Sub ChercherNoms dans la feuille qui affichera tous les résultats
2) Copier la Fonction dans le module
3) Activer les Macros
4) Remplir les colonnes avec les C,D,E (enfin dans mon cas : RTT,E,MT etc..)
5) Exécuter la macro Feuil16.ChercherNoms

Et quand j'effectue cela, tous les noms sont parfaitement trouvés, mais aucun nombre.
Mais si je rentre les formules 1 par 1 ça à l'air de marcher.

Donc si j'ai fait une chose qu'il ne faut pas ou que j'ai oublié une chose, je le corrigerais, mais dans tous les cas, je vous remercie de votre aide et de votre patience pour m'aider!

Cdt

StvyeA
 
Dernière édition:

smotty

XLDnaute Occasionnel
Re : somme conditionelle dans plusieurs onglets

Bonjour,

Je sens qu'on approche...

Les valeurs à rechercher (D,E,C ou autre) sont elles sur la 1ère ligne?

Regardez la macro, elle cherche les valeurs à trouver sur la 1ère ligne.
Eventuellement l'adapter, ou joignez une copie exemple de la feuille de destination des calculs afin que je me rende compte...

Sinon, pour entrer les formules, avec des "$" bien placés, il suffit de faire un copier et coller sur toutes la plage concernée et c'est tout.

cdt

smotty
 

StyveA

XLDnaute Nouveau
Re : somme conditionelle dans plusieurs onglets

Bonjour,

Pour les valeurs à chercher, oui je les ai bien mises sur la 1ère ligne, exactement comme dans votre fichier. Je n'ai commencé qu'avec 2 valeurs (RTT et E) mais ça n'affiche que les noms.

Je ne comprends pas d'où vient le bug, sur le fichier test ça marche parfaitement donc le problème doit venir d'une de mes manipulations ou du fichier que j'utilise en lui même non?

Vous ne verrez surement pas le problème sur le fichier test, il à l'air de marcher parfaitement.
Sur mon fichier, après avoir saisi les valeurs à chercher sur la 1ère ligne en commençant par la case B1, je lance la maccro, qui s'éxécute mais ne va que chercher les noms, sans afficher de valeur, les cellules restent vides.


Suis-je obligé de mettre 2010 à la fin de chaque nom de feuille?
Ma feuille de destination doit elle avoir un nom particulier?
Suis-je limité en nombre de feuille ou de noms? (je viens de voir qu'il y'a ~80noms, ce qui peut être conséquent, je ne sais pas).


Cdt

StyveA
 

Discussions similaires

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
312 429
Messages
2 088 350
Membres
103 823
dernier inscrit
ben talha redouane