merci beaucoup.
Je constate que les valeurs dans l’onglet « Statistiques » ont été bien récupéré par les sélecteurs de données (Yahoo Finance data selectors). C’est génial.
Par contre les valeurs dans l’onglet « Elements financiers » n’ont pas été récupéré par les sélecteurs de données. car j’aurai besoin la valeur de l’année dernière et celle de l’année précédente.
Peut-être connaissez-vous d’autres sélecteurs de données pour l’onglet « Elements financiers » ?
Oui ça ne semble pas possible à l’aide d’une formule @ericdou62, il faut le faire avec un Apps Script,
J’ai demandé à ChatGPT et ça a l’air fonctionnel, je l’ai ajouté dans le même Sheets que j’ai partagé précédemment
Pour l’appeler dans une cellule =fetchYahooDataForSheet()
Code du Apps Script
function fetchYahooDataForSheet() {
var url = "https://finance.yahoo.com/quote/AAPL/financials?p=AAPL";
var response = UrlFetchApp.fetch(url);
var content = response.getContentText();
// Utilisez l'expression régulière pour extraire la valeur
var regex = /<div class="Ta\(c\) Py\(6px\) Bxz\(bb\) BdB Bdc\(\$seperatorColor\) Miw\(120px\) Miw\(100px\)--pnclg D\(tbc\)" data-test="fin-col"><span>([\d,]+)<\/span><\/div>/;
var match = content.match(regex);
if (match) {
return match[1]; // Le groupe de capture pour la valeur
} else {
return "Element not found";
}
}
Ce qui tu m’as donné le code Apps Script qui récupére bien la valeur du 29/9/2022
J’ai recopié et adapté au code pour la valeur du 29/09/2021. Malheureusement, il ne prend que la valeur de TTM.
En regardant en profondeur, je constate que le code est le même pour TTM et 29/09/2021 (entouré en bleu). L’autre code est le même pour 29/09/2022 et 29/09/2020 (entouré en rouge).
Il y a maintenant =fetchYahooData(2200)=fetchYahooData(2022)=fetchYahooData(2021)=fetchYahooData(2020)
Le code du Apps Script
function fetchYahooData(year) {
var url = "https://finance.yahoo.com/quote/AAPL/financials?p=AAPL";
var response = UrlFetchApp.fetch(url);
var content = response.getContentText();
// Cette regex tente de localiser la section "Total Revenue" et de capturer les valeurs qui suivent
var regex = /Total Revenue.*?>([\d,]+)<\/span>.*?>([\d,]+)<\/span>.*?>([\d,]+)<\/span>.*?>([\d,]+)<\/span>/s;
var match = regex.exec(content);
if (match) {
// Les valeurs devraient être dans l'ordre: TTM, 2022, 2021, 2020
switch(year) {
case 2020:
return match[4];
case 2021:
return match[3];
case 2022:
return match[2];
case 2200:
return match[1];
default:
return "Year not found";
}
} else {
return "Data not found";
}
}
Je ne pourrais pas passer plus de temps dessus, bonne chance pour la suite si tu as besoin d’autres valeurs
Bonjour Kevin,
J’ai utilisé ton script qui m’a beaucoup aidé.
J’ai encore un autre souci.
J’ai besoin de prendre la valeur dans l’onglet Cash Flow (le plus simple est de montrer la capture ci-dessous) :
je vous joins mon fichier sheet : Fichier sheet
Si vous n’avez pas le temps, ce n’est pas grave.
Personnellement, je n’arrive pas à utiliser avec Chat GPT
merci d’avance