NB de nuitées sur une période

kev1

XLDnaute Nouveau
Bonjour,

je souhaiterais connaitre la formule qui pourrait me permettre de trouver le nombre de nuits par mois (cf pièce jointe). Je bloque lorsque la période chevauche deux mois (ex: 29 septembre au 02 octobre).

Merci
 

Pièces jointes

  • NB nuitées par mois.xlsx
    8.1 KB · Affichages: 27
  • NB nuitées par mois.xlsx
    8.1 KB · Affichages: 27
  • NB nuitées par mois.xlsx
    8.1 KB · Affichages: 28

vgendron

XLDnaute Barbatruc
Re : NB de nuitées sur une période

Bonjour

pour le nombre de nuits entre deux dates. suffit de compter le nombre de jour -1
maintenant;. pour distinguer les nuits d'un mois à l'autre..
essaie ceci en
F2=SI(MOIS(C2)=MOIS(B2);0;FIN.MOIS(B2;0))-B2
G2=SI(MOIS(C2)=MOIS(B2);0;FIN.MOIS(B2;0)-B2)



et format standard
 

exene

XLDnaute Accro
Re : NB de nuitées sur une période

Bonsoir,

Un essai en pièce jointe.

@+
 

Pièces jointes

  • NB nuitées par mois.xlsx
    11.6 KB · Affichages: 41
  • NB nuitées par mois.xlsx
    11.6 KB · Affichages: 47
  • NB nuitées par mois.xlsx
    11.6 KB · Affichages: 40

vgendron

XLDnaute Barbatruc
Re : NB de nuitées sur une période

et une nouvelle version..
qui prend en compte une période sur plusieurs mois (mais toujours de la meme année...)

1) en E3: calcul du mois mini de la Begin Date
2) de F3 à H3: incrémentation du mois: formule à tirer si il manque un mois de la meme année
3) en colonne D: nombre de nuit total entre les deux dates
4) cacul des nuits par mois
remarque1: la nuit entre fin mois et mois suivant est attribuée au mois suivant: ex: la nuit du 30 sept au 01 Oct apparait en Octobre..
Remarque2: les formules des colonnes E et F sont différentes: ne pas tirer de E vers F
par contre, la formule de F à H; c'est la même, elle peut donc etre tirée


Voila ;-)

il y a surement plus simple.. mais pas par moi ;-)
 

Pièces jointes

  • NB nuitées par mois (2).xlsx
    12.8 KB · Affichages: 36

Paf

XLDnaute Barbatruc
Re : NB de nuitées sur une période

Bonjour à tous

une fonction personnalisée à copier dans un module standard:

Code:
Function Nuité(Deb, Fin, Mois)

TP3 = Mois
TP1 = Month(Deb)
TP2 = Month(Fin)
If TP1 = Mois And TP2 = Mois Then
    Nuité = DateDiff("d", Deb, Fin)
End If
If TP1 = Mois And TP2 = Mois + 1 Then
    derjourmois = DateSerial(Year(Deb), Mois + 1, 1)
    Nuité = derjourmois - Deb
End If
If TP1 = Mois - 1 And TP2 = Mois Then
    premjourmois = DateSerial(Year(Fin), Mois, 1)
    Nuité = Fin - premjourmois
End If

End Function

Puis en E3 faire Insertion puis Fonction puis choisir la catégorie Personnalisées puis cliquer sur Nuité
Dans le champ Deb sélectionner B3, dans le champ Fin sélectionner C3 dans le champ Mois saisir le N° du mois (9 pour septembre)

valider, puis 'tirer' la formule vers le bas

idem pour la colonne F (saisir 10 pour octobre)

Ne fonctionne que pour un chevauchement de date sur deux mois de la même années.

Si l'idée convient je plancherai sur chevauchement entre décembre et janvier l'année suivante et chevauchement sur plus de deux mois.

A+
 

kev1

XLDnaute Nouveau
Re : NB de nuitées sur une période

Merci à tous de votre aide précieuse !
Effectivement, j'aurais besoin également du fichier pour l'année prochaine donc faudrait une formule tenant comptes des dates sur décembre et janvier
 

Paf

XLDnaute Barbatruc
Re : NB de nuitées sur une période

Re

je prends le post #9 pour moi (?)

Code:
Function Nuité(Deb, Fin, Mois)
Dim TP1, TP2, MoisPrec, MoisSuiv, DerJourMois, PremJourMois

'************tests de validité des dates
If Not IsDate(Deb) Or Not IsDate(Fin) Then
    Nuité = "Date incorrecte"
    GoTo LabFin
End If
If Fin < Deb Then
    Nuité = "Dates inversées"
    GoTo LabFin
End If
If Fin - Deb > 365 Then
    Nuité = "Déménagement"
    GoTo LabFin
End If
'*********** fin tests

If Mois = 1 Then
    MoisPrec = 12
Else
    MoisPrec = Mois - 1
End If
If Mois = 12 Then
    MoisSuiv = 1
Else
    MoisSuiv = Mois + 1
End If

TP1 = Month(Deb)
TP2 = Month(Fin)


If TP1 = Mois And TP2 = Mois Then
    Nuité = Fin - Deb
End If

If TP1 = Mois And TP2 = MoisSuiv Then
    DerJourMois = DateSerial(Year(Deb), Mois + 1, 1)
    Nuité = DerJourMois - Deb
End If

If TP1 = MoisPrec And TP2 = Mois Then
    PremJourMois = DateSerial(Year(Fin), Mois, 1)
    Nuité = Fin - PremJourMois
End If

LabFin:
End Function

Toujours pas de prise en compte d'une période à cheval sur plus de 2 mois

A+
 

Discussions similaires

Statistiques des forums

Discussions
312 305
Messages
2 087 084
Membres
103 461
dernier inscrit
dams94