IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Fréquence d'apparition d'une valeur sur période donnée [XL-2013]


Sujet :

Macros et VBA Excel

  1. #1
    Candidat au Club
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2016
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Mai 2016
    Messages : 2
    Par défaut Fréquence d'apparition d'une valeur sur période donnée
    Bonjour,

    Afin de pouvoir mettre en évidence la criticité de certaines données, j'aimerai pouvoir mettre en évidence le nombre de fois où revient une valeur sur une période donnée (disons sur les 2 derniers mois)

    Pour faire simple disons que j'ai deux colonnes

    "Donnée"     "Date"
    aaaa           22/05/2016
    aaaa           23/03/2016
    bbbb           15/04/2016
    bbbb           01/04/2016
    bbbb           13/02/2016
    cccc           01/01/2016
    J'aimerai par un moyen simple (plus simple que faire une tableau croisé dynamique et sélectionner les deux derniers mois en filtrant sur la date) et automatisable pouvoir faire apparaitre un tableau de la forme

    aaaa      2
    bbbb      2


    Merci d'avance pour toute aide apportée. S'il n'existe rien pour me satisfaire je peux toujours le faire à la main dans un tableau croisé dynamique mais je trouve ça dommage.

    Je précise d'avance que je suis novice en VBA mais que je serai ravi de pouvoir réaliser cette action par VBA.

  2. #2
    Membre Expert Avatar de jerome.vaussenat
    Homme Profil pro
    Formateur Bureautique
    Inscrit en
    Janvier 2011
    Messages
    1 629
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Formateur Bureautique
    Secteur : Enseignement

    Informations forums :
    Inscription : Janvier 2011
    Messages : 1 629
    Par défaut
    Salut,

    Ce que tu veux faire se fait très bien avec un TCD. Je sais que ce n'est pas ce que tu veux entendre mais.
    En combinant :
    Les regroupement et la fonction de Segment (apparue dans EXcel 2007) on doit pouvoir de faciliter la vie.

    Comment faire ?
    Tu créer ton TDC en mettant, dans un premier temps, tes données et tes dates en lignes (ce n'est que temporaire)
    Place toi dans le TCD sur une des dates et fais un clic avec le bouton droit. Choisis Grouper.
    Dans la boîte de dialogue, sélectionne Mois et valide.
    Tu peux maintenant déplacer les dates en valeur pour avoir le nombre.

    Maintenant, pour filtrer, Vas dans l'onglet Options, clique sur Insérer un segment. Coche Date et valide.

    ET voila, maintenant, tu à un segment qui te permet de filtrer de manière hyper visuelle. Ce segment peux être déplacer, redimensionner, ...

    Au cas où, un petit tuto vidéo pour en savoir plus sur les segments


    Bon visionnage (c'est mieux avec le son)

  3. #3
    Expert éminent

    Profil pro
    Conseil, Formation, Développement - Indépendant
    Inscrit en
    Février 2010
    Messages
    8 564
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Conseil, Formation, Développement - Indépendant

    Informations forums :
    Inscription : Février 2010
    Messages : 8 564
    Par défaut
    Bonjour

    Soit en VBA calculer les bornes avec date et date-60 puis utiliser un COUNTIFS pour inscrire ceux dont le COUNTIFS renvoie plus de 0

    Soit ajouter une colonne à la source avec une formule de type
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =SI(B2>=MOIS.DECALER(AUJOURDHUI();-2);1;0)
    et placer ce champ en zone de filtre du TCD et filtrer sur 1.

    Le TCD suivra automatiquement le glissement de la période sans toucher aux filtres.

    EDit :
    mon orthographe !
    Sur 2013 on peut utiliser une chronologie mais il faut la glisser de mois en mois...

  4. #4
    Candidat au Club
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2016
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Mai 2016
    Messages : 2
    Par défaut
    Bonjour,

    Cela fonctionne très bien avec les segments et cela me permet de moduler la période à étudier très facilement. Merci beaucoup.

    Je testerai avec la formule (voire la macro) lorsque nous aurons déterminé en interne la période la plus indicative.

  5. #5
    Expert éminent

    Profil pro
    Conseil, Formation, Développement - Indépendant
    Inscrit en
    Février 2010
    Messages
    8 564
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Conseil, Formation, Développement - Indépendant

    Informations forums :
    Inscription : Février 2010
    Messages : 8 564
    Par défaut
    Re

    Sur 2013, si tu mets ta source sous forme de tableau, tu peux activer la ligne des totaux et utiliser directement les segments pour filtrer (pas besoin de TCD): tu auras le nombre de valeurs dans la ligne des totaux

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. PDI - répartir une valeur sur plusieurs périodes
    Par orangeksr dans le forum kettle/PDI
    Réponses: 1
    Dernier message: 29/08/2012, 11h55
  2. récupérer nombre itérations vers une valeur sur hashmap
    Par flora806 dans le forum Collection et Stream
    Réponses: 2
    Dernier message: 26/02/2008, 14h43
  3. Recuperer une valeur sur j-1
    Par arnaud.barre dans le forum Deski
    Réponses: 5
    Dernier message: 24/04/2007, 15h18
  4. récupération d'une valeur sur deux octets
    Par sanatou dans le forum C++
    Réponses: 6
    Dernier message: 09/01/2007, 16h35
  5. Compter le nombre d'apparitions d'une valeur
    Par dynexd dans le forum Access
    Réponses: 4
    Dernier message: 07/04/2006, 01h30

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo