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 :

Erreur de macro


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2009
    Messages
    85
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Février 2009
    Messages : 85
    Par défaut Erreur de macro
    Bonjour,

    je cherche à récupérer les données de la même feuille de plusieurs classeurs afin de les copier dans une seule.

    Mon probleme est que j'ai un message d'erreur "L'indice n'appartient pas à la sélection"

    j'ai pensé au début que cela venait du fait que je n'avais renseigné le chemin des classeur mais toujours le probleme.

    Je fais donc appel aux experts car là je seche!

    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
    Sub recup()
     
    numligne = 0
     
    'pour 1er classeur
     
    Workbooks("base1.xls").Sheets("info").Activate
    Range("A2").Select
    numligne = Range(Selection, Cells.SpecialCells(xlLastCell)).Rows.Count
    Range(Selection, Cells.SpecialCells(xlLastCell)).Select
    Selection.Copy
    Workbooks("classement.xls").Sheets("total").Activate
    Range("A2").Select
    ActiveSheet.Paste
     
     
    'pour 2eme claseur
     
    Workbooks("base2.xls").Sheets("info").Activate
    Range("A2").Select
    numligne = Range(Selection, Cells.SpecialCells(xlLastCell)).Rows.Count
    Range(Selection, Cells.SpecialCells(xlLastCell)).Select
    Selection.Copy
    Workbooks("classement.xls").Sheets("total").Activate
    Range(Selection, Cells("numligne+1,1")).Select
    ActiveSheet.Paste
    '
    End Sub

  2. #2
    Membre Expert
    Avatar de pijaku
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    1 817
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Août 2010
    Messages : 1 817
    Billets dans le blog
    10
    Par défaut
    Bonjour Jobar38,

    Il n'est pas nécessaire d'activer les WorkBooks pour faire des copier/coller.
    Deuxièmement, éviter au maximum les .Select qui ralentissent l'exécution des macros.
    Ton code devient donc :

    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
    Sub recup()
    Dim DerniereLigne, DerniereColonne As Integer
     
    'pour 1er classeur
    With Workbooks("base1.xls").Sheets("info")
        'mise en mémoire du numéro de la dernière ligne
        DerniereLigne = .Range("A2").SpecialCells(xlCellTypeLastCell).Row
        'mise en mémoire du numéro de la dernière colonne
        DerniereColonne = .Range("A2").SpecialCells(xlCellTypeLastCell).Column
        'Copier/Coller en une ligne du Range(A2:DerniereLigneDerniereColonne) vers la premiere ligne vide de Classement.xls
        .Range(.Cells(2, 1), .Cells(DerniereLigne, DerniereColonne)).Copy Workbooks("classement.xls").Sheets("total").Range("A65536").End(xlUp)
    End With
     
    'pour 2eme claseur Idem...
    With Workbooks("base2.xls").Sheets("info")
        DerniereLigne = .Range("A2").SpecialCells(xlCellTypeLastCell).Row
        DerniereColonne = .Range("A2").SpecialCells(xlCellTypeLastCell).Column
       .Range(.Cells(2, 1), .Cells(DerniereLigne, DerniereColonne)).Copy Workbooks("classement.xls").Sheets("total").Range("A65536").End(xlUp)
    End With
     
    End Sub
    J'ai peut être fait des erreurs dans les noms de classeurs et feuilles, mais tu peux l'adapter facilement.
    Cordialement,

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2009
    Messages
    85
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Février 2009
    Messages : 85
    Par défaut
    Merci mais j'ai toujours le même message d'erreur "l'indice n'appartient pas à la selection"

  4. #4
    Membre Expert
    Avatar de pijaku
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    1 817
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Août 2010
    Messages : 1 817
    Billets dans le blog
    10
    Par défaut
    ?????
    Peut être pourrais tu nous joindre ici une copie de ton classeur, en enlevant au préalable toutes données confidentielles.

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2009
    Messages
    85
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Février 2009
    Messages : 85
    Par défaut
    Ce n'est pas un probleme de donnée mais juste un probleme d'ouverture de classeur.

    la ligne en erreur est
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Workbooks("base1.xls").Sheets("info").Activate

  6. #6
    Membre Expert
    Avatar de pijaku
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    1 817
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Août 2010
    Messages : 1 817
    Billets dans le blog
    10
    Par défaut
    Peut être eut il était judicieux de préciser dès le départ que les classeurs étaient fermés...
    Peu importe. remplace le texte en bleu par le chemin complet de tes classeurs base1 et 2 :
    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
    Sub recup()
    Dim DerniereLigne, DerniereColonne As Integer
    Dim CheminComplet As String
    CheminComplet = "C:\Documents and Settings\Bureau\base1.xls"
    'pour 1er classeur
    Workbooks.Open CheminComplet
    With Sheets("info")
        DerniereLigne = .Range("A2").SpecialCells(xlCellTypeLastCell).Row
        'mise en mémoire du numéro de la dernière colonne
        DerniereColonne = .Range("A2").SpecialCells(xlCellTypeLastCell).Column
        'Copier/Coller en une ligne du Range(A2:DerniereLigneDerniereColonne) vers la premiere ligne vide de Classement.xls
        .Range(.Cells(2, 1), .Cells(DerniereLigne, DerniereColonne)).Copy Workbooks("classement.xls").Sheets("total").Range("A65536").End(xlUp)
    End With
    ActiveWorkbook.Close
    CheminComplet = "C:\Documents and Settings\Bureau\base2.xls"
    'pour 1er classeur
    Workbooks.Open CheminComplet
    With Sheets("info")
        DerniereLigne = .Range("A2").SpecialCells(xlCellTypeLastCell).Row
        DerniereColonne = .Range("A2").SpecialCells(xlCellTypeLastCell).Column
       .Range(.Cells(2, 1), .Cells(DerniereLigne, DerniereColonne)).Copy Workbooks("classement.xls").Sheets("total").Range("A65536").End(xlUp)
    End With
    ActiveWorkbook.Close
    End Sub
    Pour info, WorkBooks().Activate ne fait que rendre actif un classeur déjà ouvert...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XL-2002] Erreur de macro dans un classeur sur le web
    Par zak_mckraken dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 04/08/2009, 17h29
  2. Erreur dans macro programme
    Par 8twilight8 dans le forum Macro
    Réponses: 5
    Dernier message: 04/05/2009, 12h53
  3. erreur 1004 macro excel
    Par lerab51 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 04/05/2007, 22h27
  4. [Macro]Erreur de macro CopierVers
    Par gentoo dans le forum VBA Access
    Réponses: 2
    Dernier message: 27/03/2007, 21h14
  5. Erreure pendant macro Excel
    Par nemesys971 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 05/01/2006, 13h11

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