Macro 1er vendredi du mois

Nyre

XLDnaute Nouveau
Bonjour,

Voilà plusieurs jours que je suis à la recherche d'une formule qui me permette d'automatiser une manip et je ne trouve rien qui réponde à mon problème :

En cellule D4 j'ai le nom du mois.
En I4 j'ai l'année

AF15 est une cellule qui correspond au 1er vendredi du mois. Je voudrais qu'il apparaisse automatiquement la date de ce 1er vendredi (seulement le 1, 2, 3, etc ;.. selon qu'on soit le 1er , le 2, le 3…).

Est-ce qu'avec ces éléments on peut trouver une solution ?

Merci à tous ceux qui essaieront de plancher.
:)
 

Nyre

XLDnaute Nouveau
Re : Macro 1er vendredi du mois

Bonjour Danreb,
et merci de te pencher sur mon problème.

Tu me dis :
Si D4 contient la date de début de mois
, mais D4 contient le nom du mois. et du coup, quand j'entre le code, j'ai "MOD" qui est surligné en bleu avec un message d'erreur qui me dit : "attendu : Expression".

Dans l'organisation de mon classeur c'est un élément que je ne peux pas changer.

Peut-on modifier la formule en tenant compte de cela et si oui, confirme-moi le format que je dois attribuer à cette cellule D4.
:):)
 

Dranreb

XLDnaute Barbatruc
Re : Macro 1er vendredi du mois

Il est nécessaire d'avoir la date de début de mois dans une autre cellule alors.
Elle peut s'obtenir par
Code:
=DATE(I4;CHERCHE(GAUCHE(D4;4);"JanvFévrMarsAvriMai JuinJuilAoûtSeptOctoNoveDéce")/4+0,75);1)
À+
 

Dranreb

XLDnaute Barbatruc
Re : Macro 1er vendredi du mois

Mais qui vous parle de compilation ? C'est pas du VBA c'est une formule Excel !
DATE
Voir aussi

Renvoie le numéro de série qui représente une date particulière.

Pour plus d'informations sur la manière dont Microsoft Excel utilise des numéros de séries pour les dates, consultez la section Remarques.

Syntaxe

DATE(année,mois,jour)

Année argument pouvant compter entre un et quatre chiffres. Excel interprète l'argument année en fonction de la date système que vous utilisez.

mois . . .
CHERCHE
Voir aussi

S'applique également à :

CHERCHERB

CHERCHE renvoie le numéro du caractère au niveau duquel un caractère spécifique ou une chaîne de texte est initialement reconnu(e) à partir du no_départ. Utilisez la fonction CHERCHE pour déterminer la position d'un caractère ou d'une chaîne de texte dans une autre chaîne de texte de façon à pouvoir utiliser ensuite l'une des fonctions STXT ou REMPLACER pour modifier le texte.
 

Dranreb

XLDnaute Barbatruc
Re : Macro 1er vendredi du mois

Bonjour.
J'étais pourtant sûr de l'avoir essayée mais j'ai eu le même problème en essayant de vous faire un classeur avec plusieurs exemples de cette formule.
Bon. Ecoutez je ne vous donne pas le corrigé qui marche. Débrouillez vous avec ceci:

DATE(Année; Mois; Jour) fabrique une date, c'est à dire un numéro de jour supportant un format de date par rapport à 1/1/1900 (=0)

CHERCHE(Arg, Texte) donne la position de Arg dans Texte. Si arg est les 4 1ers caractères du nom de mois et que Texte est fait de l'ensemble des ces débuts de noms de mois, la fonction rends 1 pour janvier, 5 pour février, 9 pour mars etc. Il faut donc alouter 3 et diviser le tout par 4 pour obtenir le mois.

GAUCHE(Texte; N) donne les N 1ers caractères de texte.

Avec ça vous avez de quoi fabriquer votre date de début de mois sur laquelle marche la formule donnant le quantième du premier vendredi.
 

Nyre

XLDnaute Nouveau
Re : Macro 1er vendredi du mois

Alors je sèche...

DATE(Année; Mois; Jour) fabrique une date, c'est à dire un numéro de jour supportant un format de date par rapport à 1/1/1900 (=0)
Compris

CHERCHE(Arg, Texte) donne la position de Arg dans Texte. Si arg est les 4 1ers caractères du nom de mois et que Texte est fait de l'ensemble des ces débuts de noms de mois, la fonction rends 1 pour janvier, 5 pour février, 9 pour mars etc. Il faut donc alouter 3 et diviser le tout par 4 pour obtenir le mois.
Compris : avril=13,mai 17 ... d'où les élément
dans la formule.

GAUCHE(Texte; N) donne les N 1ers caractères de texte.
OK.

Le problème c'est qu'avec tout ça, je comprends votre formule et je ne comprends pas le message d'erreur sur le nombre d'argument insuffisant.

Je sèche, je sèche:cool:
 

Dranreb

XLDnaute Barbatruc
Re : Macro 1er vendredi du mois

Il y avait unr parenthèse en trop derrière 0,75 de sorte qu'il croyait que ça finissait l'invocation de la fonction DATE, à laquelle il manquait le jour alors.
Optez pour:
Code:
=DATE(I4;CHERCHE(GAUCHE(D4;4);"JanvFévrMarsAvriMai JuinJuilAoûtSeptOctoNoveDéce")/4+0,75;1)
ou pour:
Code:
=DATE(I4;(CHERCHE(GAUCHE(D4;4);"JanvFévrMarsAvriMai JuinJuilAoûtSeptOctoNoveDéce")+3)/4;1)
Bon week-end.

P.S; Topologiquement parlant, une parenthèse ... c'est tordu, hein ? Jusqu'à en crever les yeux !
 
Dernière édition:

Nyre

XLDnaute Nouveau
Re : Macro 1er vendredi du mois

Super !
Dans mes essais, j'avais même rajouté des parenthèses avant "cherche" et après la parenthèse de "0,75" !...

En tout cas je vous remercie beaucoup. Et pour votre coup de main, et pour votre pédagogie.
Bien entendu dans la formule qui est appliquée à la cellule AF15, j'ai remplacé D4 par la cellule dans laquelle j'ai entré cette 2nd formule qui nous a un peu embêtés (je le précise pour le cas où notre discussion pourrait servir à d'autres).

Bon week-end
Cordialement
:):):cool:
 

Discussions similaires

Statistiques des forums

Discussions
312 299
Messages
2 086 990
Membres
103 420
dernier inscrit
eric.wallet46