Calcul à partir d'une date

manuSP Messages postés 80 Statut Membre -  
lermite222 Messages postés 9042 Statut Contributeur -
Bonjour,

Je ne trouve pas la formule pour mon problème qui est le suivant :

j'ai 4 feuilles identiques ( ACC - SAP - INC - OPD ) dans ces feuilles j'ai la date qui s'inscrit dans la colonne B et le jours dans la colonne C ( grâce à un formulaire de saisie).

Dans une autre feuille j'aimerais compter le nombre de Lundi par exemple sur les feuilles en fonction de la date (colonne B), et par mois.

Voilà merci de votre aide

27 réponses

  • 1
  • 2
  1. lermite222 Messages postés 9042 Statut Contributeur 1 199
     
    VBA >>
    Dans l'explorateur de projet double clic sur ThisWorkBook.
    Dans la fenêtre qui s'ouvre tu colle...
    Option Explicit
    Private Sub Workbook_Open()
        Sheets("Acceuil").Activate
    End Sub

    Adapter le nom de la feuille.
    A+
    1
  2. lermite222 Messages postés 9042 Statut Contributeur 1 199
     
    Bonjour,
    Il y a moyen de faire cela par formule Excel mais soit la fonction Jour360 est approximative, soit avec la dateserial ça ferait de trop longue formule.
    Une formule en VBA ?
    Tu tape le code ci-dessous dans un module général.
    Option Explicit
    'D1 la cellule de la 1ère dates
    'D2 la cellule de la 2èm date
    'Jour : Le jours à trouver, Lundi = 1, mardi = 2 etc..
    Public Function NombreJ(D1 As Range, D2 As Range, Optional Jour As Integer = 1) As Long
    Dim DT1 As Long, DT2 As Long, DT3 As Long
        Application.Volatile
        DT1 = DateValue(D1): DT2 = DateValue(D2)
        If DT1 > DT2 Then 'Vérifie si pas d'inversion
            DT3 = DT1: DT1 = DT2: DT2 = DT3
        End If
        If Jour > 7 Then Jour = 7
        If Weekday(D1, 2) <> Jour Then DT1 = DT1 + (8 - Weekday(D1, 2))
        If Weekday(D2, 2) <> Jour Then DT2 = DT2 - (Weekday(D2, 2) - Jour)
        NombreJ = ((DT2 - DT1) / 7) + 1
    End Function


    Dans la feuille tu met..
    =NombreJ(B8;C8;2)

    Voir les Rem de la fonction pour les valeurs de D1; D2 et Jour
    A+
    0
  3. manuSP Messages postés 80 Statut Membre
     
    Bonjour,

    Je pensais plus utilisé la fonction NB.SI
    0
  4. lermite222 Messages postés 9042 Statut Contributeur 1 199
     
    C'est aussi une solution mais tu dois ajouter une colonne avec le N° du jour.
    dans cette colonne
    =JOURSEM(C4;2) 'en ajustant l'adresse. Le 2 c'est pour Lundi=1, mardi =2 etc..
    Ensuite ru peu employer NB.Si sur cette colonne
    A+
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. manuSP Messages postés 80 Statut Membre
     
    Bonjour,

    En fait j'ai du mal exprimer ce que j'aimerais.

    Dans ma feuille 5 j'ai un tableau :
    Janvier Février .... Décembre
    lundi Cellule B2
    mardi
    mercredi
    ....
    Dimanche

    dans ma cellule B2, il faudrait calculer le nombre de fois qu'apparait le lundi dans mes feuilles 1,2,3 et 4 dans la colonne C, et il faudrait que je compte en fonction des dates qui sont dans la colonne B de mes 4 feuilles. c'est à dire pour l'exemple prendre en compte que les dates de 01/01 au 31/01

    C'est plus clair comme ça je pense
    0
  7. lermite222 Messages postés 9042 Statut Contributeur 1 199
     
    le plus simple, mettre un exemple de ton classeur sans donnée confidentielle sur CiJoint et mettre le lien dans un poste suivant.
    Sinon ont risque de tourner en rond encore longtemps.

    0
  8. manuSP Messages postés 80 Statut Membre
     
    Bonjour,

    Oui tu as raison c'est plus simple, je viens de reproduire rapidement mon classeur avec juste les données qui nous intéresse.
    Par contre je ne trouve pas CI joint
    0
    1. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773
       
      Bonjour,
      ci-joint ou cjoint sont des sites indépendants de dépose de fichiers...
      Tu les trouveras en cliquant ici :
      cjoint ou alors cijoint
      méthode :
      "parcourir"
      Puis créer un lien vers ton fichier.
      Une fois le lien créé, le copier et venir le coller ici dans ta future réponse...
      Bonne journée
      P'tit coucou à Lermitte222 au passage
      0
  9. lermite222 Messages postés 9042 Statut Contributeur 1 199
     
    Ton classeur en retour
    A+
    0
  10. manuSP Messages postés 80 Statut Membre
     
    Merci bcp

    Trop fort
    0
  11. manuSP Messages postés 80 Statut Membre
     
    Bonjour,

    Je me suis avancé trop vite ça fonctionne pas quand je le remets dans mon classeur d'origine
    0
  12. lermite222 Messages postés 9042 Statut Contributeur 1 199
     
    Oui, change le nom de Feuil5 par Totaux, comme sur le modèle
    ou change dans la macro le nom de la feuille
    Tu dis
    0
  13. manuSP Messages postés 80 Statut Membre
     
    J'avais déja fait ça, mais ça ne fonctionne pas
    0
  14. lermite222 Messages postés 9042 Statut Contributeur 1 199
     
    Ca ne fonctionne pas.
    Pas façile de t'aider avec TOUT ces renseignements !!!!
    Explique quoi et où ?
    Edit: Tu a bien mis la macros dans un module public ?

    L'expérience instruit plus sûrement que le conseil. (André Gide)
    Si tu te cognes à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
    0
  15. manuSP Messages postés 80 Statut Membre
     
    oui c'est vrai c'est pas très explicite...
    Donc, ma feuille 10 (Totaux) dans les cases j'ai =Sommefeuille() qui me donne un défaut "#VALEUR!"
    Dans la macro de cette feuille j'ai inscrit " OPTION EXPLICIT", et j'ai donc crée un module de classe ou j'ai fait un copier coller de ce que tu m'avais envoyé.
    0
  16. manuSP Messages postés 80 Statut Membre
     
    Bonjour,

    As tu trouvé la solution ?
    0
  17. lermite222 Messages postés 9042 Statut Contributeur 1 199
     
    Apparement la réponse que j'ai mis avant hier est pas passée...
    Tu ne dois pas mettre la fonction dans un module de classe mais dans un module public.. par exemple Module1

    L'expérience instruit plus sûrement que le conseil. (André Gide)
    Si tu te cognes à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
    0
  18. manuSP Messages postés 80 Statut Membre
     
    c'est ce que j'ai fais. Insérer un module
    0
  19. lermite222 Messages postés 9042 Statut Contributeur 1 199
     
    Tu dis...
    et j'ai donc crée un module de classe ou j'ai fait un copier coller de ce que tu m'avais envoyé.
    Quel est le nom du module ?

    0
  20. lermite222 Messages postés 9042 Statut Contributeur 1 199
     
    Oups,, pas bien réagit à ton explication.
    Pour que ça fonctionne,
    1°) Le tableau doit être aux mêmes coordonnées que sur ton modèle.
    2°) Les données doivent aussi êtres sur les mêmes colonnes que sur ton modèle.
    Si l'un ou l'autre de ces point est différent dis où se trouve Lundi dans ton tableau (actuellement sur A2)
    Et les dates dans les autres feuilles sur la colonne B ?
    L'expérience instruit plus sûrement que le conseil. (André Gide)
    Si tu te cognes à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
    0
  • 1
  • 2