Saisir une valeur via une macro en fonction d'un test de date

Bonjour à tous

J'ai cherché et n'ai pas trouvé de fils correspondants.

Je ne connais que très peu le VBA Excel et travaille beaucoup avec les macros que je créée.

Voici mon problème : Je souhaite copier une valeur dans la cellule d'une colonne en fonction de la date correspondante sur cette ligne.

Pour le moment je sais rechercher la dernière cellule vide et transférer la valeur choisie , mais j'aimerai que si cette cellule est déja remplie la macro la remplace par celle demandée.

Exemple dans le tableau ci joint , je possède une valeur déterminée en B4

Je voudrai rechercher la cellule de la colonne E corespondante à aujourd'ui (B6) c'est à dire D9 et la copier en E9 mais que si cette cellule E9 est déjà remplie la macro la remplace par la cellule B4 (valeur numérique de B4).

J'espère avoir été suffisamment clair.

Merci beaucoup pour votre patience et l'énergie que vous déployez pour aider les novices

Daffy

18test.xlsx (9.95 Ko)

Bonjour Daffy et bienvenue,

Tes explications concernant ce que tu veux faire sont relativement claires ... ce qui l'est moins, par contre, c'est l'intérêt de la manipulation

Si tu trouves la cellule contenant la date du jour en colonne D, tu iras aussi vite pour encoder une valeur dans la cellule voisine qu'avec une macro !? Qu'est-ce qui va, par ailleurs, déclencher l'exécution de cette macro? Le clic sur un bouton, un double clic en B4 ou B6, la modification de la valeur de B4, etc.?

Sans te lancer dans "les douze travaux d'Hercule" (d'accord, j'exagère un peu ), tu pourrais simplement créer un lien hypertexte qui activerait la cellule voisine de celle contenant la date du jour (et si la valeur à transcrire figure dans une partie de la feuille qui reste visible en permanence, le travail à fournir devrait être relativement léger).

Bonjour U Milite

Merci tout d'abord pour ta réponse .

En fait il y une chose que j'arrive à faire c'est de retrouver la cellule qui m'intéresse avec une formule =ADRESSE(EQUIV(B6;D1:D34);6) ce qui me donne $F$18 comme résultat du calcul.

Ce que je voudrais savoir à présent c'est comment utiliser cette info pour que ma macro, que je lance en cliquant sur un bouton, aille dans un premier temps supprimer les données déja présentes, en F18 puis ensuite y copier ma valeur : ce dernier point, j'y arrive avec un peu de mal mais ca marche.

Merci pour ta réponse

"Sans te lancer dans "les douze travaux d'Hercule" (d'accord, j'exagère un peu ), tu pourrais simplement créer un lien hypertexte qui activerait la cellule voisine de celle contenant la date du jour (et si la valeur à transcrire figure dans une partie de la feuille qui reste visible en permanence, le travail à fournir devrait être relativement léger). "

Pour répondre à ta question ci dessus je ne sais pas mettre un lien qui activerait la cellule voisine de façon dynamique c'est à dire qui change avec la date.

Cordialement

Daffy

Re-bonjour,

Ce que j'essayais de te faire comprendre est illustré en pièce jointe: en G1, un lien hypertexte, créé par formule permet d'activer la cellule voisine de la date du jour, en colonne D. Si la date du jour n'existe pas en colonne D, le lien ne pointe sur rien, G1 est colorée en orange et un message apparaît en G2.

Les 2 premières lignes de la feuille sont figées et restent donc visibles en permanence, même quand la cellule cible est en ligne 59, comme dans l'exemple. Une fois la cellule activée grâce au lien hypertexte, il n'y a plus qu'à y encoder la valeur, visible en C2 (que la cellule E59 contienne quelque chose ou non n'y change rien)

Re bonjour

Merci pour ta réponse rapide

c'est exactement ce qu'il me faudrait

Par contre dans ton exemple je ne comprend pas où il va chercher les données car dans "valeur à transcrire" j'ai 33 et après exécution de la macro j'ai 15 en E59 a coté de la date du jour (1 mai 2018) !!

Question où prend t'il cette valeur de 15 ?

Merci

Daffy

après exécution de la macro j'ai 15 en E59

Il n'y a pas de macro dans le fichier (autrement, son extension ne serait plus .xlsx, mais .xlsm)

Le '15' était déjà présent quand tu as ouvert le fichier. Il était juste là pour illustrer ce que je disais:

Une fois la cellule activée grâce au lien hypertexte, il n'y a plus qu'à y encoder la valeur, visible en C2 (que la cellule E59 contienne quelque chose ou non n'y change rien)

je me suis mal exprimé effectivement, c'est un lien hypertexte et non une macro mais je n'ai toujours pas ma valeur à transcrire qui se place en face du 01/ 05/2018 !!!! et si je supprime le 15 et que j'exécute le lien rien n'est copié E59 - je me retrouve à mon point de départ.

Dans ton exemple ce que je souhaite c'est que le 33 aille se copier en E59.

Merci

Dans ton exemple ce que je souhaite c'est que le 33 aille se copier en E59

J'avais bien compris, mais ce que je dis depuis le début, c'est qu'écrire une macro pour retranscrire une valeur quelconque dans une cellule, je ne vois pas bien l'intérêt que cela peut avoir. Ce que je propose donc (toujours depuis le début) c'est un système qui sélectionne la bonne cellule à ta place ... mais c'est vrai qu'il te reste une partie du boulot à faire:
3e édition a écrit :

Une fois la cellule activée grâce au lien hypertexte, il n'y a plus qu'à y encoder la valeur

Je ne saurais expliquer plus clairement

Il n'en reste pas moins que c'est ton fichier; si ma proposition ne te convient pas, tu n'es pas "condamné" à l'utiliser

Ce n'est pas qu'elle ne me convient pas mais ce que je cherchais et que j'ai exprimé dans mon explication de départ :

""Je voudrai rechercher la cellule de la colonne E correspondante à aujourd'hui (B6) c'est à dire D9 et la copier en E9 mais que si cette cellule E9 est déjà remplie la macro la remplace par la cellule B4 (valeur numérique de B4)""

J'ai cru que tu y avais répondu avec ton lien hypertexte, mais comme la valeur saisie n'est pas recopiée dans le champ correspondant cela ne marche pas.

Merci pour ton aide - je clôture ce sujet

Cdt Daffy

Rechercher des sujets similaires à "saisir valeur via macro fonction test date"