XL 2016 Sauvegarder Ancienne Version Requête PQ dans Tableau Excel

Etoto

XLDnaute Barbatruc
Bonjour,

Sur mon classeur Excel, j'ai une requête qui permet de récupérer les données des changes actualisée, mais j'aimerais savoir si sur la deuxième feuille, s'il est possible de stocker les anciennes version, par exemple j'aimerais récupérer les données de ma requête une fois par jour pour la stocker sur mon autre tableau.

Si je m'explique mal, dites-moi.

Voici la PJ


Cela risque d'être complexe, je sais même pas si c'est possible, merci d'avance.
 

Pièces jointes

  • Données boursière actualisée.xlsx
    21.2 KB · Affichages: 20
Solution
Re bonjour ETOTO,
Voici le code modifié de façon à ne plus être obligé de faire appel à la cellule J6 (Onglet Données Boursière) pour le calcul de la ligne.
VB:
Sub ReupDonnées()
    xPlage1 = Range("Données_boursières[Dernier Prix]")
    xPlage2 = Range("Tableau3[Dernier Prix]")
    On Error GoTo Erreur
    'xLig = [J6] + 2
    xLig = Application.Match(CLng(Date), Range("Tableau2[Nom]"), 0) + 2
    With Sheets("Historique Bourse")
        For F = 1 To 24
            .Cells(xLig, 2 + F) = xPlage1(F, 1)
        Next F
        For F = 1 To 19
            .Cells(xLig, 26 + F) = xPlage2(F, 1)
        Next F
    End With
    Exit Sub
Erreur:
    MsgBox "Date du jour n'est pas dans le tableau", vbCritical, "ERREUR"
End Sub
Du coup, tu peux...

Etoto

XLDnaute Barbatruc
Re bonjour,
Il me semble que c'est ce que fait la macro jointe dans mon fichier en retour.
Ou alors, je n'ai pas compris la demande
@+ Lolote83
Je crains que ta macro aie un problème, voici une image qui montre où la macro extrait les données. Mais peut-être que je fais une mauvaise manip.
 

Pièces jointes

  • Capture.PNG
    Capture.PNG
    20.2 KB · Affichages: 12
Dernière édition:

Lolote83

XLDnaute Barbatruc
Re bonjour,
Juste un . qui avait disparu.
Modifie le code ci-dessous
VB:
        For F = 1 To 24
            Cells(xLig, 2 + F) = xPlage(F, 1)
        Next F
par celui-ci
Code:
        For F = 1 To 24
            .Cells(xLig, 2 + F) = xPlage(F, 1)
        Next F
Tu peux remarquer qu'il manque le point juste devant le mot Cells(..........)
@+ Lolote83
 

Etoto

XLDnaute Barbatruc
Re bonjour,
Juste un . qui avait disparu.
Modifie le code ci-dessous
VB:
        For F = 1 To 24
            Cells(xLig, 2 + F) = xPlage(F, 1)
        Next F
par celui-ci
Code:
        For F = 1 To 24
            .Cells(xLig, 2 + F) = xPlage(F, 1)
        Next F
Tu peux remarquer qu'il manque le point juste devant le mot Cells(..........)
@+ Lolote83
C'est parfait ! Par hasard, si demain, je reviens sur le fichier pour extraire ces données, elles seront toujours transférée vers la première ligne ou celle du dessous ?

EDIT : Autant pour moi, je viens de faire le test et ça fonctionne, merci !
 

Lolote83

XLDnaute Barbatruc
Re bonjour,
Chaque fois que tu feras une nouvelle extraction, les données copiées seront en regard de la ligne de la date ou tu feras tes extractions.
Aujourd'hui, les données seront sur la ligne du 28/5/21
Si demain, les données seront sur la ligne du 29/5/21 ect etc etc.
EDIT: Oups, pas lu jusqu'au bout.
@+ Lolote83
 

Etoto

XLDnaute Barbatruc
Re,

J'ai amélioré mon fichier pour créer les taux de changes en rapport avec la Suisse, hélas si je les rajoutait au tableau de la requête, dés qu'il s'actualise cela supprime tout, alors j'ai créé un autre tableau pour ça qui a des formules tirées de la requête. Arriverais-tu dans ta macro de transférer les données de ce deuxième tableau vers celui de la feuille 2 que j'ai adapté pour y incorporer les nouvelles données ?

Le voici en PJ
 

Pièces jointes

  • Copie de ETOTO - Données boursière actualisée (1).xlsm
    31.8 KB · Affichages: 6

Lolote83

XLDnaute Barbatruc
Salut ETOTO,
Voici donc le code
VB:
Sub ReupDonnées()
    xPlage1 = Range("Données_boursières[Dernier Prix]")
    xPlage2 = Range("Tableau3[Dernier Prix]")
    On Error GoTo Erreur
    xLig = [J6] + 2
    With Sheets("Historique Bourse")
        For F = 1 To 24
            .Cells(xLig, 2 + F) = xPlage1(F, 1)
        Next F
        For F = 1 To 19
            .Cells(xLig, 26 + F) = xPlage2(F, 1)
        Next F
    End With
    Exit Sub
Erreur:
    MsgBox "Date du jour n'est pas dans le tableau", vbCritical, "ERREUR"
End Sub
Bonne soirée et bon week-end
@+ Lolote83
 

Etoto

XLDnaute Barbatruc
Salut ETOTO,
Voici donc le code
VB:
Sub ReupDonnées()
    xPlage1 = Range("Données_boursières[Dernier Prix]")
    xPlage2 = Range("Tableau3[Dernier Prix]")
    On Error GoTo Erreur
    xLig = [J6] + 2
    With Sheets("Historique Bourse")
        For F = 1 To 24
            .Cells(xLig, 2 + F) = xPlage1(F, 1)
        Next F
        For F = 1 To 19
            .Cells(xLig, 26 + F) = xPlage2(F, 1)
        Next F
    End With
    Exit Sub
Erreur:
    MsgBox "Date du jour n'est pas dans le tableau", vbCritical, "ERREUR"
End Sub
Bonne soirée et bon week-end
@+ Lolote83
Je testerais demain en attendant, merci beaucoup.
 

Etoto

XLDnaute Barbatruc
Salut ETOTO,
Voici donc le code
VB:
Sub ReupDonnées()
    xPlage1 = Range("Données_boursières[Dernier Prix]")
    xPlage2 = Range("Tableau3[Dernier Prix]")
    On Error GoTo Erreur
    xLig = [J6] + 2
    With Sheets("Historique Bourse")
        For F = 1 To 24
            .Cells(xLig, 2 + F) = xPlage1(F, 1)
        Next F
        For F = 1 To 19
            .Cells(xLig, 26 + F) = xPlage2(F, 1)
        Next F
    End With
    Exit Sub
Erreur:
    MsgBox "Date du jour n'est pas dans le tableau", vbCritical, "ERREUR"
End Sub
Bonne soirée et bon week-end
@+ Lolote83
Ton code est parfait, merci beaucoup.
 

Discussions similaires

Statistiques des forums

Discussions
315 134
Messages
2 116 614
Membres
112 812
dernier inscrit
jocelyne86360