Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Pourquoi la formule affiche faux

un internaute

XLDnaute Impliqué
Bonjour le forum,
Dans mon VBA ci-dessous je met 362 qui est égal au nombre de jours:

Option Explicit

Public NbComprime As Integer
Public NbJour As Integer

Sub Init()
NbComprime = 1 ' 1 = pour 1 Comprimé/jour
NbJour = 362
End Sub

J'ai la formule ci-dessous Colonne F:

=SI(OU((G3="");(H3=""));"";SI((H3-G3+1)<30;TEXTE(H3-G3+1;"[>1]0"" jours "";[=1]""1 jour "";#");SI(ENT((H3-G3+1)/30)<12;TEXTE(ENT((H3-G3+1)/30);"[>0]0"" mois "";;#")&TEXTE((H3-G3+1)-(ENT((H3-G3+1)/30)*30);"[>1]0"" jours "";[=1]""1 jour "";#");TEXTE(ENT((H3-G3+1)/30/12);"[>1]0"" ans "";[=1]""1 an "";#")&TEXTE(ENT((H3-G3+1)/30)-ENT((H3-G3+1)/30/12)*12;"[>0]0"" mois "";;#")&TEXTE((H3-G3+1)-(ENT((H3-G3+1)/30)*30);"[>1]0"" jours "";[=1]""1 jour "";#"))))

Dans cette même colonne F ça me donne le résultat suivant:
1 an 2 jours

Si quelqu'un à la solution je suis preneur.
Merci pour vos éventuels retours
Bonne journée à vous tous
 

Dugenou

XLDnaute Barbatruc
Bonjour,
Difficile de te répondre sur une formule aussi complexe sans savoir ce qu'il y a en H3 et G3 et de comprendre le lien entre nbjour et la formule. Difficile aussi de comprendre ce qui ne va pas puisque tu nous dit dans le titre que la formule affiche faux (ce qui porte à croire que un des SI ne comporte pas de "valeur si faux") et dans le texte qu'elle affiche 1 an 2 jours.
Donc une pj avec un exemple permettrait de mieux te comprendre.
Cordialement
 

un internaute

XLDnaute Impliqué

Bonjour Dugenou,
Excuses moi du retard pour la réponse.
J'ai "gtatter" un peu et j'ai trouvé ça qui fonctionne mais...il y a un mais!!!

=SI(OU((G3="");(H3=""));"";TEXTE(DATEDIF(G3;H3+1;"y");"[>1]0"" ans "";[=1]""1 an "";#")&TEXTE(CNUM(DATEDIF(G3;H3+1;"ym"));"[>0]0"" mois "";[=0]#")&TEXTE(DATEDIF(G3;H3+1;"md");"[>1]0"" jours "";[=1]""1 jour "";#"))

Lorsque le mois et de 30 jours ça affiche 30 jours.
Lorsque le mois et de 31 jours ça affiche 1 mois
Peut-on résoudre ça dans la formule?
Bien cordialement
 

un internaute

XLDnaute Impliqué
à defaut de fichier exemple : quelles sont les valeurs en G3 et H3 ??

F3 = 30 jours => G3 - H3 => mardi 01 mars 2016 mercredi 30 mars 2016
F4 = 1 mois => G4 - H4 => jeudi 01 septembre 2016 vendredi 30 septembre 2016
F5 =30 jours => G5 - H5 => mercredi 01 mars 2017 jeudi 30 mars 2017
F6 = 1 mois => G6 - H6 => lundi 11 septembre 2017 mardi 10 octobre 2017
Voilà
Merci à toi
Bonne fin de soirée
Cordialement
 
Dernière édition:

Dugenou

XLDnaute Barbatruc
Bonjour,
ça me semble fonctionner correctement : pour 30 jours ça donne 30 jours quand c'est un mois de 31 jours et 1 mois quand c'est un mois de 30 jours.
Quel est le résultat souhaité ?
 

Dugenou

XLDnaute Barbatruc
A tester
=SI(OU((G3="");(H3=""));"";SI(TEXTE(DATEDIF(G3;H3+1;"y");"[>1]0"" ans "";[=1]""1 an "";#")&TEXTE(DATEDIF(G3;H3+1;"ym");"[>0]0"" mois "";[=0]#")&TEXTE(DATEDIF(G3;H3+1;"md");"[>1]0"" jours "";[=1]""1 jour "";#")="30 jours ";"1 mois";TEXTE(DATEDIF(G3;H3+1;"y");"[>1]0"" ans "";[=1]""1 an "";#")&TEXTE(DATEDIF(G3;H3+1;"ym");"[>0]0"" mois "";[=0]#")&TEXTE(DATEDIF(G3;H3+1;"md");"[>1]0"" jours "";[=1]""1 jour "";#")))
 

un internaute

XLDnaute Impliqué

SUPER Dugenou,
C'est TOUT BON
C'est ce que je voulais
Encore un GRAND merci à toi
Bonne fin de journée
Bien cordialement
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…