Comptage d occurence selon un ou plusieurs criteres

riccardovegas

XLDnaute Junior
Bonjour, j'aimerai modifier mon fichier xls:
Je m'explique:
onglet EIA-EIF j'ai un tableau avec des DPX (chef d 'equipe)
j'ai besoin d'aller chercher des info qui sont dans un onglet BDDAGENT afin de compter des occurence
comment puis je faire
 
Dernière édition:

Modeste

XLDnaute Barbatruc
Re : Comptage d occurence selon un ou plusieurs criteres

Bonjour riccardovegas, le forum, mes amis du Service aux Personnes Atteintes d'un Trouble de l'Attention :eek: (depuis le temps que je me demande pourquoi on m'appelle PATAtte!)

Quand je disais que j'avais fait le ménage ... ben j'ai oublié de remettre le code dans le nouveau classeur (quand je pense que j'avais fait un effort pour le commenter!).
Donc, ne cherche plus, je redépose le fichier ... dès que j'ai le temps de refaire cette petite macro :rolleyes:
 

Modeste

XLDnaute Barbatruc
Re : Comptage d occurence selon un ou plusieurs criteres

Re,

Que vais-je arriver à faire, cette fois? Oublier le fichier, en joindre un qui n'a rien à voir, ...?
Ce fichier-ci devrait être plus fonctionnel (... normalement!)

PS: supprimé le fichier du message #14
 

Pièces jointes

  • Pilotage DU MED V2.8ed (2).xlsm
    83.9 KB · Affichages: 36

riccardovegas

XLDnaute Junior
Re : Comptage d occurence selon un ou plusieurs criteres

J'ai voulu adapter la macro car j'ai voulu faire des modification
mais du coup j'ai deux message d'erreur debogage.
j'ai mis la macro dans la feuille EIA EIF et dans la feuille ANNEXE

POUR LA FEUILLE EIA EIF
1er probleme le lui dis d'aller chercher les info dans l'onglet BASEIDAP? Vérifier la colonne I (DPX) et prendre que les X et recuperer les nom des agent de la colonne G NOM AGENT_PRENOM AGENT puis de coller dans la feuille EIA EIF le resultat trier par ordre alphabétique mais blocage :-(
je ne sais pas ce qui plante

j'ai voulu ensuite faire le même systeme en feuille ANNEXE en colonne B, pour pouvoir utiliser cette liste plus tard



help !!!!! j'ai tout cassé
 

Pièces jointes

  • Pilotage DU MED V2.9ED.xlsm
    98.8 KB · Affichages: 28

Modeste

XLDnaute Barbatruc
Re : Comptage d occurence selon un ou plusieurs criteres

Bonsoir,

Les "X" ne sont plus en colonne D, mais en colonne I de la feuille BASEIDAP ... donc corriger l'instruction suivante:
If UCase(.Cells(lig, 9)) = "X" Then


En ne cherchant pas dans la bonne colonne, on ne stocke aucun nom dans le tableau et le compteur est toujours à 0 en fin de procédure. Ajouter, devant l'instruction permettant la recopie du tableau, un test:
If x > 0 Then

Je ne sais pas, pour autant, pourquoi tu veux dresser la même liste dans 2 feuilles ... mais bon!?
Le lecteur attentif notera, au passage, qu'une solution simple et sans macro ni formule matricielle avait été évoquée ... Laquelle proposition n'a pas même recueilli un haussement de sourcil interrogateur :rolleyes:
 

riccardovegas

XLDnaute Junior
Re : Comptage d occurence selon un ou plusieurs criteres

Bonjour Modeste,
Je n'avais pas eu de mail de ta réponse en fait c'est pourquoi je repond si tardivement.
j'ai modifié la macro tout est ok
par contre je ne sais pas ou ecrire

If x > 0 Then

Aussi comme tu l'as si bien souligné pourquoi compliquer les choses, alors j'ai retiré la liste en annexe mais il me reste un mini choix (sedentaire ) peut etre que je je remplacerai par un systeme de "x" ensuite pour enlever la feuille ANNEXE.

En feuille EIA EIF, comment puis je faire pour que mes calculs se fassent sans avoir besoin
d'etandre mon tableau comme en ligne 8 de la feuille EIA EIF, car 1/ ma mise en forme n'ai plus respectée, 2/ les Div/0 N/A etc... c'est moyen

:-(





Bonsoir,

Les "X" ne sont plus en colonne D, mais en colonne I de la feuille BASEIDAP ... donc corriger l'instruction suivante:
If UCase(.Cells(lig, 9)) = "X" Then


En ne cherchant pas dans la bonne colonne, on ne stocke aucun nom dans le tableau et le compteur est toujours à 0 en fin de procédure. Ajouter, devant l'instruction permettant la recopie du tableau, un test:
If x > 0 Then

Je ne sais pas, pour autant, pourquoi tu veux dresser la même liste dans 2 feuilles ... mais bon!?
Le lecteur attentif notera, au passage, qu'une solution simple et sans macro ni formule matricielle avait été évoquée ... Laquelle proposition n'a pas même recueilli un haussement de sourcil interrogateur :rolleyes:
 

Pièces jointes

  • Pilotage DU MED V3.0ED.xlsm
    97.4 KB · Affichages: 37

Modeste

XLDnaute Barbatruc
Re : Comptage d occurence selon un ou plusieurs criteres

Bonjour,

par contre je ne sais pas ou ecrire
If x > 0 Then
Ben comme je l'ai indiqué: devant l'instruction permettant la recopie du tableau
Ça donnerait donc:
VB:
If x > 0 Then[C5].Resize(x, 1) = Application.Transpose(tablo)
puisque le commentaire sur cette même ligne indiquait:" 'on colle, au départ de C5, le contenu du tableau"

Pour la validation avec oui/non, pas besoin de mettre la source dans une plage de cellules, tu peux faire:
Sélectionner les cellules > Données > Validation > Liste > Source: oui;non sans espaces, ni guillemets.
Du coup, la feuille ANNEXE peut disparaître.


Pour les messages d'erreurs dans tes formules, il suffit d'ajouter un SI au début des formules, pour vérifier si un nom est présent ou si l'effectif est à 0. J'ai illustré le tout dans la pièce jointe. J'ai utilisé un tableau (et donc ai transformé en vraie "liste de données" le contenu de la feuille "EIF-EIA") comme évoqué au message #14
- les données sont "isolées" des calculs "périphériques" (Attention, modification de code en conséquence!)
- suppression des cellules fusionnées
- un titre à chaque colonne

De cette manière, les formules, MFC et validations éventuelles se recopient automatiquement. Ajouté les SI en colonnes E et I ... à charge pour toi d'étendre le principe aux autres colonnes.


Pas besoin de créer une 2e colonne IMMATR en H de "BASEIDAP": tu peux obtenir le même résultat en B2 de la feuille BDDAGENT avec
Code:
=INDEX(BASEIDAP!$A$2:$A$1000;EQUIV(BDDAGENT!$A2;BASEIDAP!$G$2:$G$1000;0))
Re-Attention: adaptation du code aussi, puisque les "X" sont en colonne H

La question subsidiaire étant: "qu'ai-je oublié cette fois??"
 

Pièces jointes

  • Pilotage DU MED V3.0ED (2).xlsm
    100.6 KB · Affichages: 48

riccardovegas

XLDnaute Junior
Re : Comptage d occurence selon un ou plusieurs criteres

Bonjour Modeste,

J'ai apporté quelques modifs visuels et corrigé mes formules avec les conditions SI comme tu me la dit sur la feuille EIA EIF.
Pourrais tu me dire comment tu as fait pour faire apparaitre ce tableau qui recopie les formule automatiquement ?
Comment puis-je supprimer mes colonnes avant le tableau sans que cela perturbe les calcul de la macro? est ce que mon essai te parrait bon
merci



Bonjour,

Ben comme je l'ai indiqué: devant l'instruction permettant la recopie du tableau
Ça donnerait donc:
VB:
If x > 0 Then[C5].Resize(x, 1) = Application.Transpose(tablo)
puisque le commentaire sur cette même ligne indiquait:" 'on colle, au départ de C5, le contenu du tableau"

Pour la validation avec oui/non, pas besoin de mettre la source dans une plage de cellules, tu peux faire:
Sélectionner les cellules > Données > Validation > Liste > Source: oui;non sans espaces, ni guillemets.
Du coup, la feuille ANNEXE peut disparaître.


Pour les messages d'erreurs dans tes formules, il suffit d'ajouter un SI au début des formules, pour vérifier si un nom est présent ou si l'effectif est à 0. J'ai illustré le tout dans la pièce jointe. J'ai utilisé un tableau (et donc ai transformé en vraie "liste de données" le contenu de la feuille "EIF-EIA") comme évoqué au message #14
- les données sont "isolées" des calculs "périphériques" (Attention, modification de code en conséquence!)
- suppression des cellules fusionnées
- un titre à chaque colonne

De cette manière, les formules, MFC et validations éventuelles se recopient automatiquement. Ajouté les SI en colonnes E et I ... à charge pour toi d'étendre le principe aux autres colonnes.


Pas besoin de créer une 2e colonne IMMATR en H de "BASEIDAP": tu peux obtenir le même résultat en B2 de la feuille BDDAGENT avec
Code:
=INDEX(BASEIDAP!$A$2:$A$1000;EQUIV(BDDAGENT!$A2;BASEIDAP!$G$2:$G$1000;0))
Re-Attention: adaptation du code aussi, puisque les "X" sont en colonne H

La question subsidiaire étant: "qu'ai-je oublié cette fois??"
 

Pièces jointes

  • Pilotage DU MED V3.0MODESTE.xlsm
    110.8 KB · Affichages: 22
Dernière édition:

Modeste

XLDnaute Barbatruc
Re : Comptage d occurence selon un ou plusieurs criteres

Bonjour,

Pour les conditions SI, lorsque tu compares avec le contenu de la colonne A (qui contiendra des noms) il me semble que j'écrirais:
=SI(A2="";valeur_si_vrai;valeur_si_faux).
Par contre, pour les calculs de pourcentages et pour éviter les #DIV/0, je testerais plutôt:
=SI(C2=0;valeur_si_vrai;valeur_si_faux)


L'adaptation du code semble correcte, puisque les noms "cochés" apparaissent bien en colonne A

Pour les tableaux, rien de plus simple (à condition de respecter les quelques règles énoncées précédemment): tu te positionnes n'importe où dans ta liste de données > Insertion > Tableau (si la liste est bien construite, Excel sélectionne automatiquement la plage correspondante et détecte la présence d'en-têtes aux colonnes)
 

riccardovegas

XLDnaute Junior
Re : Comptage d occurence selon un ou plusieurs criteres

Salut modeste,

Sais tu comment je peux obliger ma cellule C3 à avoir 2 chiffres apres la virgules.



Bonjour,

Pour les conditions SI, lorsque tu compares avec le contenu de la colonne A (qui contiendra des noms) il me semble que j'écrirais:
=SI(A2="";valeur_si_vrai;valeur_si_faux).
Par contre, pour les calculs de pourcentages et pour éviter les #DIV/0, je testerais plutôt:
=SI(C2=0;valeur_si_vrai;valeur_si_faux)


L'adaptation du code semble correcte, puisque les noms "cochés" apparaissent bien en colonne A

Pour les tableaux, rien de plus simple (à condition de respecter les quelques règles énoncées précédemment): tu te positionnes n'importe où dans ta liste de données > Insertion > Tableau (si la liste est bien construite, Excel sélectionne automatiquement la plage correspondante et détecte la présence d'en-têtes aux colonnes)
 

Pièces jointes

  • Pilotage DU MED V3.1ed.xlsm
    112.7 KB · Affichages: 21

Modeste

XLDnaute Barbatruc
Re : Comptage d occurence selon un ou plusieurs criteres

Re,

Sans doute avec =+TEXTE(MOYENNE(C6:C10);"0,00")&" agents
(en moyenne)"


Ceci dit, fais attention à ton "bricolage" sur le format de tes titres de colonnes ainsi qu'au fait que tu as supprimé la ligne vide au dessus de la liste!? Ce qui semble fonctionner aujourd'hui ne fonctionnera peut-être plus demain!

J'imagine que tu mettras en avant ton souci de l'esthétique ... les goûts et les couleurs ;)
 

riccardovegas

XLDnaute Junior
Re : Comptage d occurence selon un ou plusieurs criteres

Bonjour Modeste,

après qlq jours de repos me revoici à m'accoler à la tâche.
J'ai apporté qlq modifications et notamment en rajoutant des colonnes sur l'onglet EIA EIF et depuis la macro plante
j'ai essayé de décortiquer la macro en vain.
Pourrais tu me dire d'où cela provient
merci à toi.
 

Pièces jointes

  • Pilotage DU MED V3.4ED.xlsm
    206.7 KB · Affichages: 16
Dernière édition:

Modeste

XLDnaute Barbatruc
Re : Comptage d occurence selon un ou plusieurs criteres

Bonjour,

[...] depuis la macro plante
Eh bé, voilà une indication précise et qui nous aide ;)
Les résultats sont incohérents? il n'y a pas de résultat? la machine fume? un message est affiché? ...

Chez moi, j'ai un message "Bibliothèque introuvable". Il faut donc stopper l'exécution de la macro, aller (dans l'éditeur vba) dans Outils > Références, vérifier si une référence est cochée qui est déclarée "Manquante" ... et la décocher!

De toute manière, les colonnes ajoutées en feuille EIA-EIF n'ont pas d'incidence, puisque les noms apparaissent toujours en colonne A!
 

riccardovegas

XLDnaute Junior
Re : Comptage d occurence selon un ou plusieurs criteres

Disons que bizarrement ça fonctionne bien sur mon PC office 2013 et lorsque je teste sous office 2007 j'ai le message
Errer de compilation: projet ou bibliothèque introuvable.

Mes ancienne version du projet fonctionne bien sur les 2 versions excel !!


Bonjour,


Eh bé, voilà une indication précise et qui nous aide ;)
Les résultats sont incohérents? il n'y a pas de résultat? la machine fume? un message est affiché? ...

Chez moi, j'ai un message "Bibliothèque introuvable". Il faut donc stopper l'exécution de la macro, aller (dans l'éditeur vba) dans Outils > Références, vérifier si une référence est cochée qui est déclarée "Manquante" ... et la décocher!

De toute manière, les colonnes ajoutées en feuille EIA-EIF n'ont pas d'incidence, puisque les noms apparaissent toujours en colonne A!
 

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

Discussions
312 329
Messages
2 087 334
Membres
103 520
dernier inscrit
Azise