Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

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

  • Initiateur de la discussion Initiateur de la discussion Etoto
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Etoto

XLDnaute Barbatruc
Supporter XLD
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

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...
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 maintenant lancer la macro directement depuis l'onglet Historique Bourse
Pour cela, j'ai posté une demande sur le forum que tu peux retrouver ici. Merci à Patrick Toulon pour la solution
https://www.excel-downloads.com/threads/fonction-equiv-en-vba-bizare.20057647/

Bonne journée
@+ Lolote83
 
C'est parfait mais tu avais pas besoin de te donner tant de peine pour supprimer le contenu de 2 cellules, merci beaucoup d'avoir fait tout cela pour moi.
 
Re bonjour.
Le problème est que si tu venais a créer des lignes ou colonnes avant la cellule J6 (donc la date du jour) dans l'onglet Données Boursières, la macro n'aurait plus fonctionné. Maintenant, plus de problème. La date est directe en VBA et la correspondance aussi.
Cela m'a permit aussi de voir ou était mon erreur car dès le début, j'étais parti sur ce principe, mais ne fonctionnant pas, je ma suis rabattus sur une formule dans la cellule J6.
Et du coup, j'ai encore appris quelque chose. Donc que du positif.
Voili voilà.
@+ Lolote83
 
Merci beaucoup top, maintenant j'aurai l'historique de la bourse sur Excel. 👍
 
Hello, ton code est super c'est parfait,. Désormais j'essaie de le comprendre, à quoi sert le 2 et le 26 pour les

.Cells(xLig, 2 + F) = xPlage1(F, 1)
.Cells(xLig, 26 + F) = xPlage2(F, 1)

??

Merci d'avance.
 
Dernière édition:
Bonjour ETOTO,
Dans la ligne .Cells(xLig, 2 + F) = xPlage1(F, 1)
La fonction Cells(Rows,Column) ou en français Cells(Ligne,Colonne)
Exemple :
- Si on a : Cells(1,1) = 1ère ligne, 1ère colonne soit la cellule A1
- Si on a : Cells(4,2) = 4ème ligne, 2ème colonne soit la cellule B4
- Si on a : Cells(18,7) = 18ème ligne, 7ème colonne soit la cellule G18 etc etc etc etc

Donc sur ce principe, ton premier tableau dans l'onglet Historique (B à Z), commençant en colonne B mais les données devant être copiées à partie de la colonne C on a :
.Cells(xLig, 2 + F) avec une variable xLig qui détermine donc la ligne et 2 + F avec la variable F qui varie de 1 à 24 pour les colonnes.
F=1 donc 2+F=3 donc colonne 3 donc colonne C
F=2 donc 2+F=4 donc colonne 4 donc colonne D
F=3 donc 2+F=5 donc colonne 5 donc colonne E etc etc etc

Puis, tu as rajouté dans ce tableau les colonnes de AA à AT, les premières données à copiées seront donc à partir de la colonne Z (26) + 1
Donc
F=1 donc 26+F=27 donc colonne 27 donc colonne AA
F=2 donc 26+F=28 donc colonne 28 donc colonne AB
F=3 donc 26+F=29 donc colonne 29 donc colonne AC etc etc etc

Voili voilà, en espérant que cela aura eclairé ta lanterne.
@+ Lolote83
 
Ok merci, j'aime comprendre les codes et tu me l'as bien expliqué.
 
De rien !!! C'est normal de vouloir comprendre
Bonne journée et à bientôt sur le forum
@+ Lolote83
Mais pour être sur, si je mettais 2 à la place de 26 en fait les données du tableau 2 écraseraient les données du tableau 1. En gros ce paramètre est la colonne de départ pour coller. C'est ça ?
 
Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…