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 les feuilles d'un fichier excel vers un autre


Sujet :

Macros et VBA Excel

  1. #1
    Membre du Club
    Inscrit en
    Avril 2008
    Messages
    103
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 103
    Points : 44
    Points
    44
    Par défaut Copier les feuilles d'un fichier excel vers un autre
    bonjour

    j'ai utilisé ce code pour copier les feuille d'un fichier execl vers un autre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    n = Sheets.Count
    For i = 2 To n
    v = Sheets(i).Name
    Sheets(v).Copy
    Next i
    Application.DisplayAlerts = False
    ActiveWorkbook.SaveAs ("c:\ test.xls")
    mais j'arrive à copier que la premier feuille càd quand i=1 et pour la 2 éme j'ai ce message:
    l'indice n'appartient pas à la selection

    est ce qu'il y a une solution pour résoudre ce problème

    merci

  2. #2
    Membre expérimenté
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 563
    Détails du profil
    Informations personnelles :
    Âge : 61
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 563
    Points : 1 691
    Points
    1 691
    Par défaut
    au départ, il est dans ton classeur actif
    ensuite il prend la feuille 2, il la copie dans un nouvaux classeur qu'il crée avec cette unique feuille
    et quand il revient a l'occurence suivante de la boucle, il est toujour dans ce nouveau classeur ou la troisieme feuille n'existe pas. il faut donc que tu revienne dans ton classeur d'origine.
    il y a même des fàçons un peu plus simple de lui désigner les feuilles mais essaie d'abord celle là petit scarabé

  3. #3
    Membre habitué Avatar de Oh!Tofocus
    Profil pro
    Inscrit en
    Août 2007
    Messages
    217
    Détails du profil
    Informations personnelles :
    Âge : 59
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 217
    Points : 158
    Points
    158
    Par défaut
    Comme dit le dicton: un scarabé peut en cacher un autre (surtout si ils sont petits )

    J'ai le même problème que zaki_1982

    Je n'arrive pas à copier une feuille et la deposer dans un classeur déja existant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
        Windows("Classeur2").Activate
        Sheets(1).Copy
     
        Windows("Classeur1").Select
        Workbooks("Classeur1").Paste
    Sheets(1).copy crée un nouveau classeur ( Classeur3) et je ne peux pas rajouter la feuille dans le Classeur1

    de toute manière Workbooks("Classeur1").Paste ça n'existe pas dan VBA

    actuellement je sélectionne toutes les cellules de la feuille1 du Classeur2 et je les colle dans une feuille vierge du Classeur1. Mais peut être y a t il plus élégant

  4. #4
    Membre confirmé
    Inscrit en
    Janvier 2008
    Messages
    467
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 467
    Points : 493
    Points
    493
    Par défaut
    Bonsoir
    ce code archive les Onglets dans un nouveau classeur
    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
    Sub ArchiveFeuilles()
    Dim Arr, sh, Wbk As Workbook, tmp As Workbook
    Set tmp = ThisWorkbook ' classeur active
        Arr = Array("Feuil1", "Feuil2", "Feuil3") ' au besoin ajoute des feuilles
      Set Wbk = Workbooks.Add ' nouveau classeur
            For i = 1 To UBound(Arr)
                Wbk.Sheets(i).Name = Arr(i)
          Next i
     
         For Each sh In Arr
            'copie la plage utilisée de la feuille
               tmp.Sheets(sh).UsedRange.Copy
                'la colle dans la feuille du 2ème classeur
             Wbk.Sheets(sh).Paste
          'vide le presse-papiers
          Application.CutCopyMode = False
      Next
    End Sub
    Bonne soirée

    Abed_H

  5. #5
    Membre expérimenté
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 563
    Détails du profil
    Informations personnelles :
    Âge : 61
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 563
    Points : 1 691
    Points
    1 691
    Par défaut
    je vous le donne émile
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Sub test()
    Set c1 = Workbooks("Classeur1.xls").Sheets(1)
    Set c2 = Workbooks("classeur2.xls").Sheets(1)
    c1.Range("A1").EntireRow.Copy Destination:=c2.Range("a4")
    End Sub

  6. #6
    Membre habitué Avatar de Oh!Tofocus
    Profil pro
    Inscrit en
    Août 2007
    Messages
    217
    Détails du profil
    Informations personnelles :
    Âge : 59
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 217
    Points : 158
    Points
    158
    Par défaut
    Merci vos réponses
    Il semble donc que l'on est obligé de passer par le copier coller le contenu de la feuille.
    On ne peut donc pas copier physiquement une feuille pour la deposer dans un autre classeur.....
    Tant pis, je crois que je m'en remettrai ... il y a des choses plus graves dans la vie.

  7. #7
    Membre expérimenté
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 563
    Détails du profil
    Informations personnelles :
    Âge : 61
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 563
    Points : 1 691
    Points
    1 691
    Par défaut
    si, on peut
    excuse moi, je t'avais mal compris, je croyais que tu parlais de ligne
    voila ce que donne l'enregistreur de macro
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Sheets("mafeuille").Move Before:=Workbooks("Classeur2.xls").Sheets(1)
    ça c'est si tu veux la déplacer : "move"
    si tu veux la copier et quelle reste aussi dans son classeur d'origine tu utilise
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Sheets("mafeuille").copy Before:=Workbooks("Classeur2.xls").Sheets(1)
    excuse moi pour le retard

  8. #8
    Membre habitué Avatar de Oh!Tofocus
    Profil pro
    Inscrit en
    Août 2007
    Messages
    217
    Détails du profil
    Informations personnelles :
    Âge : 59
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 217
    Points : 158
    Points
    158
    Par défaut
    Quelle nouille je suis
    Je n'avais jamais remarqué que l'on pouvais choisir le classeur dans la fenêtre de copie de feuille sous EXEL . Sinon l'enregistreur de macro m'aurait montré la voie.

    Citation Envoyé par alsimbad
    excuse moi pour le retard
    7 minutes pour une réponse je trouve ça rapido

  9. #9
    Membre expérimenté
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 563
    Détails du profil
    Informations personnelles :
    Âge : 61
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 563
    Points : 1 691
    Points
    1 691
    Par défaut
    Citation Envoyé par Oh!Tofocus
    7 minutes pour une réponse je trouve ça rapido
    surement, mais 7minutes et 10 jours ! pour le pauvre zaki_1982 qui a posé la question d'origine. (et qui n'a pas donné signe de vie depuis d'ailleurs)

  10. #10
    Membre du Club
    Inscrit en
    Avril 2008
    Messages
    103
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 103
    Points : 44
    Points
    44
    Par défaut
    merci mes ami pr la collaboration j'etais en congé apparament mon collegue à utiliser d'autre solution je vais le contacter et je vais la mettre sur le forum

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 12/05/2015, 16h25
  2. Réponses: 12
    Dernier message: 15/09/2014, 18h51
  3. Réponses: 1
    Dernier message: 17/03/2009, 16h33
  4. copier le contenu d'un fichier EXCEL vers un autre
    Par john_wili dans le forum Documents
    Réponses: 1
    Dernier message: 26/01/2009, 11h35
  5. Copier des données d'un fichier Excel vers des tableau Word
    Par drthodt dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 23/05/2008, 14h57

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