Insertion & enregistrement prix aujourd'hui

Y compris Power BI, Power Query et toute autre question en lien avec Excel
T
TraderAS
Membre habitué
Membre habitué
Messages : 135
Inscrit le : 17 février 2017
Version d'Excel : 2013

Message par TraderAS » 4 juin 2018, 10:46

Bonjour,

je travail sur une tableau composé d'une colonne DATE et d'une colonne Prix
chaque jour, on a un nouveau prix, je souhaite insérer le prix de chaque jour dans mon tableau et ainsi de suite pour les jours à venir, bien sur le lendemain il devrait passer au prix du jour d'après, et le prix d' aujourd’hui devrait être enregistré dans le tableau
ci joint un excel

merci
PJ.xlsx
(280.34 Kio) Téléchargé 5 fois
Avatar du membre
besoin_d_aide
Membre fidèle
Membre fidèle
Messages : 335
Appréciations reçues : 28
Inscrit le : 16 mai 2018
Version d'Excel : 2010 fr, 2013 fr, 2016 fr

Message par besoin_d_aide » 4 juin 2018, 11:08

Bonjour,
Un essai à tester (et à adapter à votre vrai fichier)
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("D20")) Is Nothing Then 'cellule pour le prix à adapter
Dim dat As Date
dat = Range("C" & Target.Row).Value 'a adapter au besoin
Dim cel As Range
Set cel = Range("C4").End(xlDown).Offset(1, 0) 'cellule C4 à adapter
Dim exist As Range
Set exist = Range("C4:C" & cel.Row).Cells.Find(dat) 'cellule C4 à adapter
If exist Is Nothing Then
cel.Value = dat
cel.Offset(0, 1) = Target.Value
msg = MsgBox("nouveau prix enregistré", vbInformation)
Else
If MsgBox("Le prix du " & dat & "existe déjà ! Voulez-vous le remplacer ? ", vbCritical + vbYesNo) = vbYes Then
exist.Offset(0, 1).Value = Target.Value
End If
End If
End If
End Sub
voici le fichier

Cordialement
PJ.xlsm
(286.83 Kio) Téléchargé 9 fois
" Notre sagesse n'est que le total de nos désillusions. " Henri-Frédéric Amiel
Je peux répondre aux messages privés mais c'est mieux si la solution est disponible pour tous ;;)
Mais surtout, le plus important : :btres:
Avatar du membre
Jean-Eric
Fanatique d'Excel
Fanatique d'Excel
Messages : 14'922
Appréciations reçues : 461
Inscrit le : 27 août 2012
Version d'Excel : O365 32 bits

Message par Jean-Eric » 4 juin 2018, 11:14

Bonjour,
j'ai la nette impression que le fichier joint n'est pas représentatif !... 8-)
Et d'où provient le nouveau prix ?
Cdlt
Jean-Eric

Je ne réponds pas aux M.P. non sollicités.
T
TraderAS
Membre habitué
Membre habitué
Messages : 135
Inscrit le : 17 février 2017
Version d'Excel : 2013

Message par TraderAS » 4 juin 2018, 11:18

Bonjour Eric,

le nouveau prix provient d'une table requête power query du site yahoo finance, je travail sur les prix des devises, affichant les prix quotidiens, après avoir affiché le prix d'aujourd'hui je souhaite l'enregistrer dans mon tableau

merci
T
TraderAS
Membre habitué
Membre habitué
Messages : 135
Inscrit le : 17 février 2017
Version d'Excel : 2013

Message par TraderAS » 4 juin 2018, 11:21

besoin_d_aide a écrit :
4 juin 2018, 11:08
Bonjour,
Un essai à tester (et à adapter à votre vrai fichier)
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("D20")) Is Nothing Then 'cellule pour le prix à adapter
Dim dat As Date
dat = Range("C" & Target.Row).Value 'a adapter au besoin
Dim cel As Range
Set cel = Range("C4").End(xlDown).Offset(1, 0) 'cellule C4 à adapter
Dim exist As Range
Set exist = Range("C4:C" & cel.Row).Cells.Find(dat) 'cellule C4 à adapter
If exist Is Nothing Then
cel.Value = dat
cel.Offset(0, 1) = Target.Value
msg = MsgBox("nouveau prix enregistré", vbInformation)
Else
If MsgBox("Le prix du " & dat & "existe déjà ! Voulez-vous le remplacer ? ", vbCritical + vbYesNo) = vbYes Then
exist.Offset(0, 1).Value = Target.Value
End If
End If
End If
End Sub
voici le fichier

Cordialement
merci pour votre réponse, mais pourriez vous m'indiquer où est ce que vous avez inséré le code ?
Avatar du membre
besoin_d_aide
Membre fidèle
Membre fidèle
Messages : 335
Appréciations reçues : 28
Inscrit le : 16 mai 2018
Version d'Excel : 2010 fr, 2013 fr, 2016 fr

Message par besoin_d_aide » 4 juin 2018, 16:04

Re,
dsl, je n'avait pas vu que vous aviez répondu
Je l'ai mis dans le code de la feuille 1 --> elle se lance automatiquement lorsque l'on modifie la cellule D20

Cordialement
" Notre sagesse n'est que le total de nos désillusions. " Henri-Frédéric Amiel
Je peux répondre aux messages privés mais c'est mieux si la solution est disponible pour tous ;;)
Mais surtout, le plus important : :btres:
T
TraderAS
Membre habitué
Membre habitué
Messages : 135
Inscrit le : 17 février 2017
Version d'Excel : 2013

Message par TraderAS » 4 juin 2018, 16:23

besoin_d_aide a écrit :
4 juin 2018, 16:04
Re,
dsl, je n'avait pas vu que vous aviez répondu
Je l'ai mis dans le code de la feuille 1 --> elle se lance automatiquement lorsque l'on modifie la cellule D20

Cordialement
merci encore
mais je n'arrive pas à trouver le code, je suis sur le fichier,
est ce qu'on peut ajouter une fonction recherche de telle sorte à faire une recherche sur la colonne C, si je ne trouve pas la date d'aujourd'hui je fais un copier/coller de la date d'aujourd'hui et du prix qui lui est affecté
en ce qui concerne la marcro j'ai pas pu trouver la macro, ci joint une capture d'écran
Capture.PNG
Modifié en dernier par TraderAS le 4 juin 2018, 16:32, modifié 1 fois.
Avatar du membre
besoin_d_aide
Membre fidèle
Membre fidèle
Messages : 335
Appréciations reçues : 28
Inscrit le : 16 mai 2018
Version d'Excel : 2010 fr, 2013 fr, 2016 fr

Message par besoin_d_aide » 4 juin 2018, 16:32

Re,
C'est normal, elle n'apparait pas dans les macro traditionnelles
pour la trouver:
Dans le VBE (Alt+F11), il y a une fenêtre à gauche intitulée "Projet - VBAProject"
Ouvrir le code de la feuille 1
Si jamais le fait que la macro se lance automatiquement te gène (moi je trouve cela plus pratique mais bon c'est mon avais),
place ce code dans un module standart
Dim Target as range
set Target = Range("D20")
Dim dat As Date
dat = Range("C" & Target.Row).Value 'a adapter au besoin
Dim cel As Range
Set cel = Range("C4").End(xlDown).Offset(1, 0) 'cellule C4 à adapter
Dim exist As Range
Set exist = Range("C4:C" & cel.Row).Cells.Find(dat) 'cellule C4 à adapter
If exist Is Nothing Then
cel.Value = dat
cel.Offset(0, 1) = Target.Value
msg = MsgBox("nouveau prix enregistré", vbInformation)
Else
If MsgBox("Le prix du " & dat & "existe déjà ! Voulez-vous le remplacer ? ", vbCritical + vbYesNo) = vbYes Then
exist.Offset(0, 1).Value = Target.Value
End If
End If
Ps : pour avoir un module standart
Dans le VBE (Alt+F11), il y a une fenêtre à gauche intitulée "Projet - VBAProject"
Faire un clic droit dedans, insertion>module :wink:

Cordialement
" Notre sagesse n'est que le total de nos désillusions. " Henri-Frédéric Amiel
Je peux répondre aux messages privés mais c'est mieux si la solution est disponible pour tous ;;)
Mais surtout, le plus important : :btres:
T
TraderAS
Membre habitué
Membre habitué
Messages : 135
Inscrit le : 17 février 2017
Version d'Excel : 2013

Message par TraderAS » 4 juin 2018, 16:41

RE

oui je l'ai cette fois, sauf que quand je modifie la cellule du prix ou la date rien ne se produit dans mon fichier, c'est comme si le code est en mode OFF

merci
Avatar du membre
besoin_d_aide
Membre fidèle
Membre fidèle
Messages : 335
Appréciations reçues : 28
Inscrit le : 16 mai 2018
Version d'Excel : 2010 fr, 2013 fr, 2016 fr

Message par besoin_d_aide » 4 juin 2018, 17:00

Sur la ligne 20 ?
" Notre sagesse n'est que le total de nos désillusions. " Henri-Frédéric Amiel
Je peux répondre aux messages privés mais c'est mieux si la solution est disponible pour tous ;;)
Mais surtout, le plus important : :btres:
Répondre Sujet précédentSujet suivant
  • Sujets similaires
    Réponses
    Vues
    Dernier message