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 DATE PAR SEMAINE / MOIS ET ANNEE EN COURS


Sujet :

Macros et VBA Excel

  1. #1
    Candidat au Club
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Septembre 2024
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Septembre 2024
    Messages : 5
    Points : 3
    Points
    3
    Par défaut COMPTER DATE PAR SEMAINE / MOIS ET ANNEE EN COURS
    Bonjour le forum,

    J'ai dans une colonne A un ensemble de référence
    En colonne B, j'ai la date de réception

    Je désire compte dans une cellule le nombre de référence pour cette semaine. Dans une autre cellule compte le nombre pour ce mois et enfin dans une troisième cellule, compter pour l'année en cours.

    J'ai beau chercher, je n'y arrive pas...

    Merci pour votre coup de pousse et encore bravo pour toutes les infos que l'on peut glaner ici.

    Lieb

  2. #2
    Membre éclairé Avatar de Nain porte koi
    Homme Profil pro
    peu importe
    Inscrit en
    Novembre 2023
    Messages
    486
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : peu importe

    Informations forums :
    Inscription : Novembre 2023
    Messages : 486
    Points : 775
    Points
    775
    Par défaut
    Hello,

    en l'absence de vos propre données voici un exemple
    Fichiers attachés Fichiers attachés
    JièL
    Membre des AMIS
    Anti Macro Inutilement Superfétatoire

  3. #3
    Candidat au Club
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Septembre 2024
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Septembre 2024
    Messages : 5
    Points : 3
    Points
    3
    Par défaut
    Citation Envoyé par Nain porte koi Voir le message
    Hello,

    en l'absence de vos propre données voici un exemple
    Bonjour,

    Merci pour votre aide,

    Par contre, effectivement, j'ai oublié d'importer mon fichier d'exemple. Le votre est parfait !
    Un deuxième oubli, c'est que je voulais tout cela en VBA_Script. Je garde précieusement dans tous les cas les formules fournit qui pourrait me servir pour un autre projet Excel.

    Merci à vous

  4. #4
    Membre habitué
    Homme Profil pro
    CIP
    Inscrit en
    Avril 2024
    Messages
    110
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : CIP
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2024
    Messages : 110
    Points : 195
    Points
    195
    Par défaut re
    Bonjour
    en me basant sur l'exemplaire de Nain porte quoi
    comme ça vite fait
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    Option Explicit
    Function NBRefByWeeK(ref As String)
        Dim X&, C&, Cel As Range
        X = WorksheetFunction.IsoWeekNum(Date)
        With Range("tableau1")
            For Each Cel In .Columns(1).Cells
                If Cel = ref Then
                    If WorksheetFunction.IsoWeekNum(CDate(Cel.Offset(, 1))) = X Then C = C + 1
                End If
            Next
        End With
        NBRefByWeeK = C
    End Function
    '---------------------------------------------------------------------------------------------------
    Function NBRefByMonth(ref As String)
        Dim X&, C&, Cel As Range
        X = Month(Date)
        With Range("tableau1")
            For Each Cel In .Columns(1).Cells
                If Cel = ref Then
                    If Month(CDate(Cel.Offset(, 1))) = X Then C = C + 1
                End If
            Next
        End With
        NBRefByMonth = C
    End Function
    '---------------------------------------------------------------------------------------------------
    Function NBRefByYear(ref As String)
        Dim X&, C&, Cel As Range
        X = Year(Date)
        With Range("tableau1")
            For Each Cel In .Columns(1).Cells
                If Cel = ref Then
                    If Year(CDate(Cel.Offset(, 1))) = X Then C = C + 1
                End If
            Next
        End With
        NBRefByYear = C
    End Function
    '---------------------------------------------------------------------------------------------------
     
    'pour tester
    Sub testsemaine()
        MsgBox NBRefByWeeK("slmqdf")
    End Sub
     
    Sub testmois()
        MsgBox NBRefByMonth("slmqdf")
    End Sub
     
    Sub testannée()
        MsgBox NBRefByYear("slmqdf")
    End Sub
    patrick

  5. #5
    Candidat au Club
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Septembre 2024
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Septembre 2024
    Messages : 5
    Points : 3
    Points
    3
    Par défaut
    Bonjour et merci pour ton aide,

    Je vais regarder pour essayer de comprendre dans tous les cas.

    Toutefois, j'ai un début de code qui me compte toutes les cellules. Je me demandais si en changeant la le
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If Range("B" & I) < Date Then
    je pouvais effectuer le calcul.


    Voici déja le code que j'ai :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    'Dans Excel, j'ai renommé ma feuille en FEUILLE_TEST
    'Donc :
    'On déclare la feuille source dans le fichier ARCHIVES LIEBHERR1
    Set WcArchive = ThisWorkbook.Worksheets.Worksheets("FEUILLE_TEST")
     
     
    'En B j'ai mes dates de réception
     
    ' --- CALCUL DES OF RECUS SEMAINE / MOIS / ANNEE ---
    'Colonne date de réception : B
    Dim I As Long, J As Long, nbLignes As Long, nbCol As Long
        Dim Cnt As Long
        nbLignes = WcArchive.Cells(Rows.Count, "B").End(xlUp).Row
        'nbCol = WcArchive.Range("B").Column
        For I = 4 To nbLignes
            If IsDate(Range("B" & I)) Then
                    If Range("B" & I) < Date Then
                        Cnt = Cnt + 1
                    End If
                End If
            Next
     
    'On ecrit les résultats dans le DASHBOARD
    'OF reçu depuis le début de l'annnée
    ThisWorkbook.Worksheets("DASHBORD").Range("E10") = Cnt
     
     
    End Sub

    A dispo pour et merci encore

    Lieb

  6. #6
    Candidat au Club
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Septembre 2024
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Septembre 2024
    Messages : 5
    Points : 3
    Points
    3
    Par défaut
    Alors, je continue mes investigations :

    J'ai réussi a isoler dans des variables, la date du jour, la semaine en cours, le mois en cours et l'année en cours.

    Voici le travail que je partage qui pourrait servir :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    Sub BILAN_DATE()
     
        Dim iDay As String
        Dim iSemaine As String
        Dim iMois As String
        Dim iAnnee As String
        Dim noSemaine As String
        'On place la date dans la variable iDay
    	iDay = Date
     
        'On place le numero de semaine dans la variable iSemaine
    	iSemaine = DatePart("ww", iDay, vbMonday, vbFirstFourDays)
     
    	'On place le numero de mois dans la variable iMois
        iMois = Month(Date)
     
    	'On place l'année en cours dans la variable iAnnee
        iAnnee = Year(Date)
     
    	'Et enfin, pour valider, je vérifie via MsgBox qui mes variables sont bonnes :
        MsgBox ("La date d'aujourd'hui est : " & iDay)
        MsgBox ("La semaine en cours est : " & iSemaine)
        MsgBox ("Le mois en cours est : " & iMois)
        MsgBox ("L'année en cours est : " & iAnnee)
     
    End Sub
    Bon maintenant faut trouver pour boucler le tout afin de m'afficher mes valeurs...

  7. #7
    Membre éclairé Avatar de Nain porte koi
    Homme Profil pro
    peu importe
    Inscrit en
    Novembre 2023
    Messages
    486
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : peu importe

    Informations forums :
    Inscription : Novembre 2023
    Messages : 486
    Points : 775
    Points
    775
    Par défaut
    Re,

    une question : pourquoi vouloir du VBA alors que les fonctions d'Excel existent et que c'est pour mettre le résultat dans une cellule d'une autre feuille ?
    En plus dans le VBA on est obligé d'utiliser des fonctions d'excel (WorksheetFunction.IsoWeekNum).

    une autre : dans votre exemple vous ne comptez que les cellules dont la date est inférieure à la date actuelle alors que vous demandiez par semaine/mois/années, pourquoi ?
    Et comme c'est avec un Sub au lieu d'une Function il faut relancer la macro à chaque fois

    Chez moi la roue existe depuis pas mal de temps, j'évite de la réinventer
    JièL
    Membre des AMIS
    Anti Macro Inutilement Superfétatoire

Discussions similaires

  1. Réponses: 7
    Dernier message: 15/03/2022, 18h15
  2. [12c] Loop sur dates (jour/semaine/mois/année)
    Par elmojo dans le forum PL/SQL
    Réponses: 2
    Dernier message: 05/09/2018, 14h40
  3. Réponses: 2
    Dernier message: 21/03/2015, 16h17
  4. Réponses: 0
    Dernier message: 20/03/2015, 12h42
  5. [CR]grouper des dates par semaines, mais semaines FR !
    Par neo.51 dans le forum SAP Crystal Reports
    Réponses: 11
    Dernier message: 18/05/2004, 20h43

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