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

lermite222 Messages postés 9042 Statut Contributeur 1 191
 
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
lermite222 Messages postés 9042 Statut Contributeur 1 191
 
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
manuSP Messages postés 80 Statut Membre
 
Bonjour,

Je pensais plus utilisé la fonction NB.SI
0
lermite222 Messages postés 9042 Statut Contributeur 1 191
 
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

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
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
lermite222 Messages postés 9042 Statut Contributeur 1 191
 
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
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
pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 770
 
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
manuSP Messages postés 80 Statut Membre
 
Re,

Voici donc le lien

https://www.cjoint.com/?hCm7wjPdPX
0
lermite222 Messages postés 9042 Statut Contributeur 1 191
 
Ton classeur en retour
A+
0
manuSP Messages postés 80 Statut Membre
 
Merci bcp

Trop fort
0
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
lermite222 Messages postés 9042 Statut Contributeur 1 191
 
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
manuSP Messages postés 80 Statut Membre
 
J'avais déja fait ça, mais ça ne fonctionne pas
0
lermite222 Messages postés 9042 Statut Contributeur 1 191
 
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
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
manuSP Messages postés 80 Statut Membre
 
Bonjour,

As tu trouvé la solution ?
0
lermite222 Messages postés 9042 Statut Contributeur 1 191
 
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
manuSP Messages postés 80 Statut Membre
 
c'est ce que j'ai fais. Insérer un module
0
lermite222 Messages postés 9042 Statut Contributeur 1 191
 
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
lermite222 Messages postés 9042 Statut Contributeur 1 191
 
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