SI seulement mois/année

Encore une formule SI tordu que je cherche à faire mais comme j'ai souvent eu des réponses qui répondaient à mes espérances sur Excel je me lance dans une petite explication.

J'aimerai que SI dans une cellule A1 il n'y a renseigné en date que le mois et l'année ou seulement l'année alors en A2 on affiche "A venir (non précisé)".

En revanche SI dans la cellule A1 la date jour/mois/année est renseignée alors afficher "A venir".

Est-ce possible? J'aurai une autre formule SI à faire par rapport à une date mais un peu plus compliquée à expliquer donc si déjà je peux avoir une réponse à celle-ci ça serait le top! Dites moi si vous voulez plus d'explications sur un point et dites moi également si une fois cette question résolue, je peux exposer mon problème sur l'autre formule SI ou alors si je devrais plutôt ouvrir un autre sujet.

Je n'ai pas de fichier à partager pour cette résolution de problème étant donné que j'attends d'avoir une réponse pour le créer d'ou le fait que je vous explique au conditionnel

Amicalement, merci d'avance!

bonjour

en A1, il faudrait que tu nous dises ce que les utilisateurs vont saisir

si c'est 12/10/2014, c'est facile à gérer par un SI

si c'est F ou fév ou févriet (avec une faute) ou 2014 ou 14 ou autre chose, c'est moins simple. Il faudrait teste si A1 est une date ou pas une date)

et ça, je ne sais pas faire

En fait SI dans cette cellule A1 on a (par exemple) 05/2014 (ce qui veut dire mai 2014) et bien qu'en A2 on affiche "A venir (non précisé)" mais si en revanche on a 01/05/2014 (ce qui veut dire le 1er mai 2014) et bien qu'on note "A venir".

Je veux faire cela car des fois j'ai des dates de sorties peu précise sur certaines séries au départ puis qui se confirme quelques temps après et j'aimerai voir lesquels ne sont pas précises dans ma liste (étant donné que j'ai une liste assez grosse de titres à venir).

re

je pense avoir bien compris la question

mais Excel enregistre 02/2014 comme un nombre = nombre de jours écoulés entre le 01/01/1900 (ou un truc de ce genre) et le 01/02/2014

ensuite il te l'affiche selon ton paramétrage de cellule

puisque par défaut Excel met tout seul le 01 (premier jour du mois) j'ai peur de ne pas savoir tester si l'utilisateur a saisi un n° de jour ou pas

Bonjour,

Une proposition à méditer

Soit A1 formatée en texte, et les dates saisies sous la forme jj/mm/aaaa (ou m/aa, ou encore aaaa, etc...)

Il suffit de compter le nombre de '/' pour déterminer le résultat 0,1 ou 2)

Cdlt.

J'y avais pensé à cette solution également mais si je le met au format texte ma deuxième manip risque de ne plus être réalisable.

Ma deuxième manip consistait à changer le "A venir" en "En cours" une fois que la date inscrite était atteinte et/ou dépassée.

Après je vais quand même prendre cette solution en attendant!

Comment fait-on donc pour compter le nombre de "/" dans une cellule dans une fonction SI?

Bonjour,

un essai par fonction personnalisée.

Dépend fortement du format d'affichage bien entendu.

eric

23classeur4.zip (6.90 Ko)

Re,

Avec un truc du genre...

=SI(NBCAR(A1)-NBCAR(SUBSTITUE(A1;"/";""))<2;"A venir (non précisé)";"A venir")

bonjour

petite contribution

pour savoir (au moins) si il y a / ; la date en A1

'=SOMMEPROD(CHERCHE({"/"};TEXTE(A1;"jj/mm/aaaa")))

à integer dans une condition

cordialement

Re,

Jean-eric et tulipe, vous semblez oublier que le contenu de la cellule n'est pas celui qu'on voit à l'écran. C'est une date

Tulipe par exemple, tu forces le format "jj/mm/aaaa". Tu auras donc toujours 2 "/" même si la date affichée est 'mai 15'. Non ?

eric

re

tres juste ; une de plus

Bonjour

Bonjour Tulipe_4, eriiic,

eriiic,

Pas vu ton intervention

Avec une fonction personnalisée, c'était évidemment plus aisé et permet d'appréhender les prochaines questions de Zayx.

Pas pensé sur le coup à proposer cette solution

Cdlt.

Je n'ai pas compris le principe de la "fonction personnalisé".

Pourrais-je avoir un légère explication sur comment elle fonctionne et surtout comment la reproduire

J'aime comprendre ce qu'on m'explique et pas copier bêtement et la en l’occurrence j'ai pas forcément compris.

Je suis chiant je sais

Merci de vos réponses déjà quand même!

Bonjour,

Une fonction personnalisée est une fonction écrite en vba.

Si mise dans un module Standard elle devient utilisable sur une feuille comme une fonction native d'excel avec sa syntaxe et ses paramètres d'entrée selon comment elle a été programmée, et retourne donc une valeur.

Voir le fichier que j'avais joint.

Alt+F11 pour aller dans VBE.

Le code est dans le Module1 (dans le projet de ton classeur faire clic-droit et 'insérer un module' pour y coller le code)

eric

Bonjour mes chers saveurs!!!

Code assimilé! Je l'ai mis sur mon fichier. J'ai réussi à m'approprier le code pour en faire un peu ce que je veux.

Cependant j'ai encore moult questions sur les dates...

Je vais les poser sur ce sujet je pense que cela sera plus productif que d'en créer un nouveau...

Si jamais je dois en créer un nouveau dites le moi et je le ferai immédiatement.

Je dois intégrer la "dateOK" dans une formule SI sur ma feuille sommaire. En gros "SI la cellule 'Prévisions séries'!E20 (en gros la cellule E20 de la feuille Prévisions séries) contiens une date, alors dateOK('Prévisions séries'!E20) dans ma cellule H20 de ma page sommaire.

Très fastidieux à expliquer, j'espère que cela ne sera pas la même chose pour la comprendre.

Une deuxième chose que j'aimerai faire en fonction d'une date.

Et encore une formule SI...

"SI la date en 'Prévisions séries'!E20 et égale ou supérieur à la date du jour alors afficher "En cours" en H20.

En gros comme ça mes séries qui sont à venir passeront toutes seules en "En cours" quand le jour sera venu.

J'aimerai faire pareille mais avec une date de fin...

En gros:

"SI la date en 'Prévisions séries'!F20 est égale ou inférieur à la date du jour alors afficher "Terminée" en H20"

Ces trois formules s'emboiteront pour n'en faire qu'une seule évidemment mais ça je sais faire (faut bien que je sache faire un minimum :p ). Je réfléchi aux questions qui pourraient encore subsister concernant les dates dans mon classeur car il doit y en avoir encore mais comme je suis en ce moment même en train de modifier mon fichier et bien je ne sais pas encore sur quoi je vais buter En tout cas merci déjà pour ce module eriic et merci aux autres pour leurs réponses! A très vite!

Bonjour,

Pourquoi tu n'intègres pas tout ça dans la fonction personnalisée ?

Autant profiter de ses avantages.

Tu testes la date dedans et tu retournes ce que tu veux en fonction des différents test.

eric

J'aurai pas du dire que j'ai réussi à assimiler quoi que se soit, je voulais plutôt dire que j'ai réussi à l'intégrer a mon fichier et c'est tout

Je suis totalement pommé pour ce qui est du VBA d’où le fait que je demande de l'aide car sinon dieu sait que je me serai débrouillé seul. Donc du coup pourrai tu me dire comment faire pour intégrer cela à ma fonction personnalisé?


Quoi que je préfèrerai une fonction SI car sinon je devrais demander de l'aide à chaque fois pour modifier la fonction personnalisé...

Pas de fonction estdate() dans excel. On se contente de tester si c'est une valeur numérique >"01/01/1900"*1.

Ex: =SI(A2<"01/01/1900"*1;"";ta_formule)

Mais la fonction personnalisée le teste. Remplace simplement dans le code "Date non valide" par "" si tu préfères une cellule vide.

Et pour comparer au jour ça serait :

=SI(A2<=AUJOURDHUI();"Passé";"Futur")

eric

Question: Le "AUJOURD'HUI" dans ta formule correspond bien au jour le jour? Par exemple si je le note comme ça cela veux dire que si une série commence demain alors ce soir elle sera toujours "A venir" et demain si je ré ouvre mon fichier excel elle aura changé en "En cours"?

Si c'est le cas cela règle mes deux dernières question mais pas la première qui était d'intégrer le "dateOK".

Je vais ré expliquer le problème car je dois t'avouer que j'ai oublié des choses et tu comprendra peut être pourquoi je penche plus sur une formule SI (mais si c'est pas faisable une autre solution me va).

Dans la colonne H de mon Sommaire (ma première feuille) je voudrais l'état de ma série. Pour cela il y a 5 variantes:

  • En cours
  • En pause
  • Terminée (ou "Terminé" pour un film)
  • Abandonné
  • A venir (et la donc "A venir" ou "A venir (non précisé)")

Ma colonne H va changer en fonction des données de ma feuille "Prévisions séries".

Dans la colonne E de cette dernière j'y entrerai l'état de la série ou la date de sortie si elle est "A venir".

En gros sa donnerai un début de fonction ainsi:

=SI('Prévisions séries'!E18="Terminée";"Terminée";SI('Prévisions séries'!E18="Terminé";"Terminé";SI('Prévisions séries'!E18="En pause";"En pause";SI('Prévisions séries'!E18="Abandonné";"Abandonné";SI('Prévisions séries'!E18>=AUJOURDHUI;"En cours";SI(ET(ESTVIDE(C18);ESTVIDE(E18);'Prévisions séries'!E18<=AUJOURDHUI);"Terminé";SI(ET('Prévisions séries'!E18>=AUJOURDHUI;C18>0);"Terminée" ...

Voila donc avec une formule comme ça j'ai testé si ma série est Terminée, si elle est En cours, si elle est En pause ou si elle est Abandonnée. A la fin j'aimerai rajouter le DateOK pour tester si elle est A venir ou A venir (non précisé).

J'ai fais la formule à l'arrache c'est juste pour te montrer l'idée, donc est-il possible d'y intégrer le dateOK ou alors peut on faire autrement tout en gardant la formule?

Aujourd'hui c'est le hier de demain.

Mais j'explique mal, regarde donc l'aide d'excel qui est très bien faite.

Dans les résultats de test tu peux très bien mettre une fonction, voire même une formule.

Comme je t'avais montré dans l'exemple 1 :

=SI(A2<"01/01/1900"*1;"";ta_formule)

donc :

=SI(A2<"01/01/1900"*1;"";dateOk(A2))

eric

Rechercher des sujets similaires à "seulement mois annee"