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 :

compter nbre de lignes selon une date


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 38
    Points : 24
    Points
    24
    Par défaut compter nbre de lignes selon une date
    Bonsoir à tous,

    Après avoir cherché (et trouvé pour compter le nombre de ligne selon la couleur de celle-ci), je cherche désormais à compter le nombre de ligne selon une date qui serait enregistrée sur cette ligne.

    Je m'explique, j'ai des dossiers avec leur date de traitement et mon but et de calculer le nombre de dossier traité par mois (afin par la suite de voir l'évolution ).

    Je me suis donc dis, tu vas faire un code qui met le mois dans une colonne de cette même ligne et calculer selon la date de traitement, le critère étant
    Si la date de traitement est supérieure à 01/08/08 et inférieure à 31/08/08, alors tu mets "Août"--> charge ensuite de calculer le nombre de "Août", de "Septembre"...
    Mais déjà ca, ca marche pas
    Mon code est le suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    'calcul pour savoir les mois
    For d = Feuil6.Cells.SpecialCells(Type:=xlCellTypeLastCell).Row To 1 Step -1
    If Feuil6.Cells(d, 10) >= "01 / 08 / 08" And Feuil6.Cells(d, 10) <= "30 / 08 / 08" Then Feuil6.Cells(d, 44) = "Août"
    If Feuil6.Cells(d, 10) >= "01 / 09 / 08" And Feuil6.Cells(d, 10) <= "30 / 09 / 08" Then Feuil6.Cells(d, 44) = "Septembre"
    Next
    Alors premièrement, si vous voyez qqchose à corriger à mon code, merci de m'aider
    Deuxièmement, si vous voyez une meilleure méthode (moins lourde, plus rapide...) je suis preneur

    Merci par avance et bonne soirée à tous
    Jonathan

  2. #2
    Membre éprouvé
    Avatar de JackOuYA
    Inscrit en
    Juin 2008
    Messages
    1 040
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 1 040
    Points : 1 191
    Points
    1 191
    Par défaut
    bonsoir,

    pour le 1 , tu peu utiliser month pour extraire le mois d'une date.

  3. #3
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 124
    Points : 55 925
    Points
    55 925
    Billets dans le blog
    131
    Par défaut
    Bonsoir

    Peut-être y-a-t-il une bonne raison à le faire en VBA, mais on peut rester dans Excel en saisissant la date dans une colonne, puis utiliser les Tableaux Croisés Dynamiques (voir données/Rapport de tableau croisé dynamique (2003 ou Insertion/Tableau croisé dynamique (ruban 2007). Les TCD permettent le regroupement sur les mois, les trimestres, les années, ...

    Vois-tu comment procéder?

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 38
    Points : 24
    Points
    24
    Par défaut
    Tout d'abord merci pour vos réponse.
    Effectivement j'avais mis dans mon code, 30 jours pour le mois d'Août, mais c'était juste pour un test, je sais tout ca lol.
    Pour le reste, je n'ai pas encore regardé la fonction monthname, mais je m'oriente désormais vers le TCD ...
    En effet, j'avais écarté cette possibilité (dernier recours) car elle m'alourdit considérablement le fichier ensuite...m'enfin

    Je réussi bien à regrouper mes données par mois comme recherché initialement, MAIS, seulement quand je défini très exactement la source (à savoir les données non vide).
    Or, des lignes se rajoutent continuellement et je ne sais pas paramétrer une source variable.

    Pouvez-vous m'aider à faire cela ?

    Merci par avance

    Jonathan

  5. #5
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 124
    Points : 55 925
    Points
    55 925
    Billets dans le blog
    131
    Par défaut
    Tu peux nommer une plage dynamique.

    Pour cela, je vais imaginer que tes données se trouvent en Feuil1, que la ligne 1 sert pour les entêtes de colonnes, et qu'en colonne A, tu n'as pas de cellules vides entre l'entête et la dernière cellule utilisée en A

    Active la feuille qui contient les données. Va dans Insertion/Noms.../Definir (versions antérieures à 2007 ou dans Formules/Gestionnaire de noms (2007)
    Crée un nouveau nom, et dans la zone Fait référence à, colle ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =decaler($a$1;0;0;nbval($a:$a);nbval($1:$1))
    et valide.

    En faisant cela, tu crées une plage dynamique qui évoluera en fonction de tes lignes et de tes colonnes.
    Il te suffit, lors de la création de ton TCD, de renseigner la plage nommée avec =MaPlage (en changeant bien entendu maplage par le nom que tu as attribué à la plage dynamique).

    Reviens si tu souhaites un complément d'infos sur cette technique.

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 38
    Points : 24
    Points
    24
    Par défaut
    Merci beaucoup Pierre Fauconnier !

    J'ai enfin réussi à faire ce que je voulais, et ce, grâce à toi
    Cela va alourdir quelque peu mon fichier, mais je vais me débrouiller pour retirer d'autres TCD déjà existants en réalisant des macros qui seront, elles, moins lourdes.

    Merci encore pour vos aides.

    Jonathan

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

Discussions similaires

  1. Compter dans deux dimensions selon une Date Commune
    Par drixon dans le forum QlikView
    Réponses: 9
    Dernier message: 20/02/2013, 13h46
  2. [XL-2003] VBA supprimer des ligne selon la date d'une cellule
    Par Scrabblouille dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 06/08/2009, 22h37
  3. Réponses: 6
    Dernier message: 21/04/2006, 11h22
  4. Boucle en Dos pour lister des fichiers selon une date
    Par Corben dans le forum Autres Logiciels
    Réponses: 1
    Dernier message: 17/12/2005, 12h17
  5. Ne pas afficher une ligne selon une valeur
    Par uloaccess dans le forum Access
    Réponses: 3
    Dernier message: 18/11/2005, 14h04

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