VBA = Copier plusieurs fichiers Excel dans un nouvel onglet à chaque fois

CactusCactus

XLDnaute Nouveau
Bonjour,

Nous sommes nulles en VBA, et nous avons un projet à rendre bientôt.

Nous voulons copier le contenu d'une feuille telechargée (depuis le site Yahoo finances) sur une adresse predefinie, et par rapport à un code specifique.

Mais quand on tente d'executer la macro cela affiche l'erreur "Erreur '9' : l'indice n'appartient pas à la selection", quand il arrive à la ligne "Sheets("table").Name = CODE"

(CODE est une variable)

Voici le code en entier :


Code:
Public TYPE_V As String, CODE As String, i As Integer


Sub test()

Dim codes_yahoo As Variant, types_valeur As Variant


codes_yahoo = Worksheets("Titres").Range(Cells(2, 3), Cells(2, 3).End(xlDown)).Value

types_valeur = Worksheets("Titres").Range(Cells(2, 1), Cells(2, 1).End(xlDown)).Value


For i = 1 To UBound(codes_yahoo)

'chargement des deux paramètres dont a besoin la fonction:
        CODE = codes_yahoo(i, 1)
        TYPE_V = types_valeur(i, 1)


'on appelle la fonction fnYahooHistQueery
Call fnYahooHistQueery
            
          

            Sheets("table").Copy after:=Workbooks("data.xlsx").Sheets(Sheets.Count)
            
            
            Sheets("table").Name = CODE
       
Next i


End Sub
 
 Function fnYahooHistQueery()
' c'est la fonction qui permet de telecharger les doonnés



If TYPE_V = "Mutuals Funds" Then
           Workbooks.Open Filename:= _
              "http://ichart.finance.yahoo.com/table.csv?s=" & CODE & "&a=01&b=5&c=2004&d=05&e=7&f=2012&g=m&ignore=.csv"
    Columns("A:A").Select
          Selection.TextToColumns Destination:=Range("A1"), DataType:=xlDelimited, _
               TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=False, _
               Semicolon:=False, Comma:=True, Space:=False, Other:=False, FieldInfo _
                :=Array(Array(1, 1), Array(2, 1), Array(3, 1), Array(4, 1), Array(5, 1), Array(6, 1), _
              Array(7, 1)), TrailingMinusNumbers:=True
                     
             



        



ElseIf TYPE_V = "ETF" Then

           Workbooks.Open Filename:= _
            "http://ichart.finance.yahoo.com/table.csv?s=" & CODE & "&a=01&b=2&c=2004&d=05&e=7&f=2012&g=m&ignore=.csv"
Columns("A:A").Select
          Selection.TextToColumns Destination:=Range("A1"), DataType:=xlDelimited, _
               TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=False, _
               Semicolon:=False, Comma:=True, Space:=False, Other:=False, FieldInfo _
                :=Array(Array(1, 1), Array(2, 1), Array(3, 1), Array(4, 1), Array(5, 1), Array(6, 1), _
              Array(7, 1)), TrailingMinusNumbers:=True
              
              
                  

     
     End If
     
     

     
     End Function


Merci beaucoup à celui ou celle qui pourra nous aider ^^
 

phlaurent55

Nous a quittés en 2020
Repose en paix
Re : VBA = Copier plusieurs fichiers Excel dans un nouvel onglet à chaque fois

Bonjour Cactus X 2

(CODE est une variable)
est-ce une variable alphanumérique ? (si c'est numérique, je pense que ça devrait produire l'erreur )

fais un test en ajoutant cette ligne juste devant celle qui produit l'erreur:
MsgBox(CODE)
et vérifie si il n'y a pas de caractères spéciaux qui pourraient eux aussi produire une erreur


à+
Philippe
 

CactusCactus

XLDnaute Nouveau
Re : VBA = Copier plusieurs fichiers Excel dans un nouvel onglet à chaque fois

Bonjour Phillipe, merci de ta réponse!

Oui CODE est une valeur alphanumerique (c'est sous la forme H2M4, ou ABMX)

J'ai essayé d'ajouter "MsgBox (CODE)" devant mais j'ai toujours la même erreur et aucune message box ne s'affiche...

Merci quand même!
 

Discussions similaires

Statistiques des forums

Discussions
314 655
Messages
2 111 604
Membres
111 217
dernier inscrit
aladinkabeya2