Récupération cours Bourse, dans un tableau

Bonsoir

Dans mon tableau excel, j'ai une feuille qui va me permettre de suivre des actions et une feuille qui va me permettre de récupérer les cours de bourse.

Pourquoi ne pas tout mettre dans une feuille ? Tout simplement, parce que je vais avoir plusieurs types d'investissements, donc un type par feuille.

Je suis bloqué, à un moment donné, car je n'arrive pas à initialiser le tableau. Pour imager le problème, j'ai joints un fichier excel.

La feuille BourseDirecte-PEA est celle d'où le lance le traitement en cliquant sur le bouton actualiser.

La feuille RecupCoursJour devrait récupérer les informations sur la cotation en cours sur le site Yahoo.

Mon tableau a plus de feuilles et autres informations, mais là, j'ai essayé de le simplifier.

Hello,

Quelle est la question exactement ?

Qu'attends tu de nous ?

Je n'arrive pas à charger mon tableau dans la feuille RecupCoursJour.

Je pensais qu'en mettant le nom de la feuille associé à la cellule, ça le ferait dans tous les cas.

Mais le range(.... dans le paragraphe Formatage de la requête internet, ne fonctionne pas.

Il faut savoir qu'il y a 1 mois je ne savais pas utiliser Visual Basic, mais pendant pas mal d'années, j'ai développer de nombreux programmes en RPG.

Je fais donc, par rapport à tout ce que je trouve sur internet.

Je ne suis même pas certain que mon projet aboutisse.

Cordialement

Jacques Julien

tu parles de ce code ?

   If Range("RecupCoursJour!A2") <> "" Then
        Range(Range("RecupCoursJour!Debut").Offset(1, 0), Range("RecupCoursJours!Debut").End(xlToRight).End(xlDown)).Delete xlUp
      End If

tout à fait.

Je pense qu'il ne faut pas faire un tableau. J'avais mis un tableau car c'était ainsi dans un exemple que j'ai trouvé sur internet.

Ce paragraphe, de ce que j'ai compris réinitialise les données de la requête précédente.

Comme ce qui m'intéresse c'est la valeur du cours de la journée et non les cours depuis plusieurs mois, inutile de vouloir charger un tableau de chaque journée de cours de bourse. ça va alourdir les traitements pour quelque chose que je ne vais pas utiliser.

Supprimer ces lignes peut régler mon problème immédiat, mais ne m'explique pas comment écrire les instructions si je voulais réinitialiser le tableau.

Bonne soirée

JJulien

Bonjour,

Je ne comprends pas tout de tes procédures !?
Ce qui est certain, c'est que la récupération des cours peut être simplifiée avec Power Query (natif Excel 2016).
Maintenant, il faudrait préciser ce que tu veux récupérer comme valeurs ?
Un exemple (pas difficile à mettre en oeuvre, malgré les apparences).
Cdlt.

25jjulien.xlsx (36.33 Ko)

Bonjour

j'ai retiré le tableau. Je travaille directement sur les cellules concernées.

Les autres procédures déjà existantes, me permettent de gérer le cours minimum et maximum pour un investissement donné.

j'ai une feuille par type d'investissement. Dans le fichier joint je n'ai laissé qu'une feuille.

C'est plus un exercice pour apprendre excel et vba que pour gérer finement des investissements.

je vais regarder le fichier joint. Je ne connais pas power query.

Merci

bonne journée

jacques

Hello à tous,

Si j'ai bien compris dans ce code ce que tu cherches à faire c'est de récupérer la plage de du tableau qui va de A3 à la dernière ligne de la dernière colonne et de la supprimer

If Range("RecupCoursJour!A2") <> "" Then
        Range(Range("RecupCoursJour!Debut").Offset(1, 0), Range("RecupCoursJours!Debut").End(xlToRight).End(xlDown)).Delete xlUp
      End If

Sauf qu'en réalité ce n'est pas comme ceci qu'il faut faire mais plutôt comme ceci par exemple :

dim dercol as long
dim derligne as long

If sheets("RecupCoursJour").range("A2") <> "" then 

  dercol  = sheets("RecupCoursJour").Range("IV1").End(xlToLeft).Column
  derligne  = sheets("RecupCoursJour").Cells(Rows.Count, dercol  ).End(xlUp).Row
sheets("RecupCoursJour").Range(sheets("RecupCoursJour").cells(3,1),sheets("RecupCoursJour").cells(derligne, dercol)).delete

end if 

Bonjour,

@Rag02700,

Un autre exemple

Dim ws As Worksheet
Dim lastCol As Long, lastRow As Long
    Set ws = Worksheets("RecupCoursJour")
    With ws
        If Not IsEmpty(.Cells(2, 1)) Then
            lastCol = .Cells(2, .Columns.Count).End(xlToLeft).Column
            lastRow = .Cells(.Rows.Count, lastCol).End(xlUp).Row
            .Cells(3, 1).Resize(lastRow - 2, lastCol).Select 'Delete  'ou ClearContents
        End If
    End With

oui il est même mieux que le mien

Re,

@Rag02700,
Je t'ai gâché ta soirée ?

merci pour vos réponses. je vais tester.

j'ai regardé power query. Actuellement, je n'ai pas encore compris.

mais je vais chercher.

Bonne soirée

jacques

@Jean-Eric,

Parfaitement !

Rechercher des sujets similaires à "recuperation cours bourse tableau"