IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Copier plusieurs fichiers Excel dans un nouvel onglet à chaque fois


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau Candidat au Club
    Femme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Juin 2012
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2012
    Messages : 2
    Points : 1
    Points
    1
    Par défaut Copier plusieurs fichiers Excel dans un nouvel onglet à chaque fois
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    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 ^^

  2. #2
    Expert éminent
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    3 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 3 453
    Points : 6 871
    Points
    6 871
    Par défaut
    Bonjour,

    Ta feuille "table" n'existe probablement pas dans le classeur actif puisque tu ne précise pas sur quelle feuille de quel classeur tu veux travailler.

    Hervé.

  3. #3
    Nouveau Candidat au Club
    Femme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Juin 2012
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2012
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    Bonjour,

    Merci de votre réponse!

    Comment pourrais-je le preciser? J'ai essayé d'inserer un "Sheets("Feuil1" ).select" ou encore un "Worksheets("Feuil1").Activate", mais rien n'y fait...

  4. #4
    Expert éminent
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    3 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 3 453
    Points : 6 871
    Points
    6 871
    Par défaut
    Re,

    Si c'est le classeur dans lequel se déroule la macro :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ThisWorkbook.Sheets("table").Name = CODE
    Si c'est un autre classeur ouvert :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Workbooks("Mon classeur").Sheets("table").Name = CODE
    Hervé.

Discussions similaires

  1. Copier plusieurs Fichiers Excel dans un seul
    Par willoweiss dans le forum Excel
    Réponses: 1
    Dernier message: 10/12/2013, 09h52
  2. Réponses: 1
    Dernier message: 11/02/2011, 11h44
  3. copier plusieurs fichiers texte dans un seul fichier texte
    Par ERICKO dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 17/08/2008, 20h21
  4. Copier plusieurs fichier txt dans un seul fichier
    Par vieri31 dans le forum C++Builder
    Réponses: 3
    Dernier message: 31/05/2008, 13h57
  5. Copier un fichier excel dans un power point
    Par jhpotter dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 21/05/2008, 10h11

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo