Fonction dans une feuille Excel

Bonjour à tous

Je suis très débutant en VBA et ce que je tente de faire, je le trouve normalement sur le net ou dans divers forums. Or, cette fois, pas de chance, du moins, j'ai pas trouvé ce que je cherche ou quelque chose de similaire que je pourrais adapter à mes besoins.

Dans mon fichier Excel, disons onglet 'Dates', cellules A4:A374, se sont des dates qui se suivent les unes après les autres

Dans les 2 colonnes suivantes (donc, B et C), ce sont des données à entrer pour chaque date (qui se fait 1 fois par jour)

J'ai ajouté un module ainsi qu'un code VBA afin d'aller directement à la date du jour lorsque je vais sur cet onglet

jusque-là tout fonctionne

Dans un autre onglet, disons onglet 'Données', toujours dans le même fichier, j'ai des données à mettre à jour aussi

J'entre donc la date que j'ai mis à jour cet onglet, en cellule K1

Je cherche la fonction ou une formule VBA à mettre comme instruction dans la feuille 'Dates' afin que si ma date du jour de cet onglet (notez qu'elle se sélectionne d'elle-même) est la même que la date de l'onglet 'Données', cellule K1, mes données de l'onglet 'Dates', colonne B et C se remplisent automatiquement avec celles de l'onglet Données, cellule K3 (pour colonne B, onglet 'Dates') et cellule K7 (pour colonne C, onglet 'Dates')

Donc au final, si dans l'onglet 'Dates', la cellule du jour ne concorde pas avec la cellule K1 de l'onglet 'Données', aucune donnée ne devrait apparaître

merci de votre aide!

Bonjour Blackarv77 le forum

un fichier en retour avec ce que tu souhaites, fichier que j'ai fait puisque tu n'as pas été capable d'en joindre un à ta demande !!!

tu ouvres tu testes et tu me redis

a+

Papou

8blackarv77-v1.xlsm (23.00 Ko)

Bonjour Papou,

A la fin de la macro ne serait pas :

        Feuil1.Cells(li, 2) = Feuil2.Cells(3, 11)
        Feuil1.Cells(li, 3) = Feuil2.Cells(7, 11)

à la place de

        Feuil2.Cells(3, 11) = Feuil1.Cells(li, 2)
        Feuil2.Cells(7, 11) = Feuil1.Cells(li, 3)

@+

Christian

Bonjour Christian le forum

bah moi je fais ce qui est demandé!! (enfin je pense)

il veut que si la date dans la feuille Donnée est identique à la date en colonne A de la feuille Date afficher la colonne B et C en K3 et K7, c'est ce que ma macro fait.

Si maintenant il veut copier de la feuille donnée vers la feuille Date oui c'est inversé c'est sur, mais sa demande est ambiguë pour moi.

moi j'ai répondu pour copier de Date vers Donnée ( et je suis peut-être à coté de la plaque)

si c'est l'inverse l'auteur de la demande nous le redira, et aussi dans ce cas il nous dira à quel moment il veut que la copie se fasse si c'est de la feuille Donnée vers la feuille Date?

a+

Papou

Re Bonjour Christian Blackarv77 le forum

oui à la relecture multiple de la demande, je pense que tu as raison Christian.

voilà la version dans l'autre sens mais pas sur un change de la feuille Donnée, mais sur l'activation de la feuille Date

comme cela il a les deux versions , si c'est pas l'une ce sera l'autre

a+

Papou

5blackarv77-v2.xlsm (23.41 Ko)

Bonjour à tous

Merci de votre réponse rapide. peu importe comment je tente de réduire la taille de mon fichier, j'aboutis toujours à plus d'1 mégaoctet. Poutant, tout le code inutile a été retiré.

Je tente donc ma chance en laissant mon fichier de travail réduit ici avec les explications et le résultat désiré:

bien à vous!

Bonsoir Blackarv77, bonsoir Papou,

J'ai tenté de faire la synthèse de ton fichier et du programme de Papou.

D'abord sur ton fichier la colonne des dates de la feuille RxEntPubDon est composée de formule =G1 pour la première et ça ne plait à la fonction de recherche du VBA (Find). De plus sur ma version d'Excel 2019, les dates sont paramétrées en region Afrikaan.

J'ai choisi de tout ramené en Français avec le format 21/03/2020.

J'ai remplacé les dates de la colonne A d'une formule à leur valeur par copier collage spécial valeur.

Enfin j'ai changé le nom des feuilles de calcul pour obtenir le code suivant :

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim cel As Range, li&
    If Target.Row = 1 And Target.Column = 11 And Target.Count = 1 And IsDate(Target) Then
        Set cel = Feuil12.Columns(1).Find(Target, , , xlWhole)
        If Not cel Is Nothing Then
            li = cel.Row
        Else
            Exit Sub
        End If
        Feuil12.Cells(li, 2) = Feuil37.Cells(3, 11)
        Feuil12.Cells(li, 3) = Feuil37.Cells(7, 11)
    End If
End Sub

Si les dates doivent absolument être conservées dans leur codage d'origine, il faut surement modifier la méthode de recherche Find avec le paramètre

LookIn:=xlFormulas

Cela correspond t-il à ce que tu veux ?

@+

Christian

Re Bonjour Blackarv77 le forum

bon alors ton fichier en retour avec ce que tu veux.

a+

Papou

Bonjour Papou, Xuard

Tout fonctionne nickel maintenant (si je puis utiliser cette expression )

merci pour vos efforts, le dossier est clos!

Rechercher des sujets similaires à "fonction feuille"