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 :

[VBA-Excel] Déplacement d'une feuille vers un autre fichier


Sujet :

Macros et VBA Excel

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 8
    Points : 5
    Points
    5
    Par défaut [VBA-Excel] Déplacement d'une feuille vers un autre fichier
    Bonjour,

    Je souhaite créer une feuille dans un classeur, faire des traitements dedans (jusque là ça marche) et enfin la déplacer vers un classeur que je viens de créer :
    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
     
        Dim xlApp As Excel.Application
        Dim xlSheet As Excel.Worksheet
        Dim xlBook As Excel.Workbook
     
        ' Ajout d'une feuille dans le fichier courant
        Set xlSheet = Worksheets.Add
        xlSheet.Name = "FEUILLE TOTO"
     
        ' Création d'un nouveau fichier Excel
        Set xlApp = CreateObject("Excel.Application")
        Set xlBook = xlApp.Workbooks.Add
        NomFichier = "FICHIER TOTO.xls"
        xlBook.SaveAs Filename:=chemExport & NomFichier
     
        ' Déplacement de la feuille vers le nouveau fichier
        Workbooks("TEST.xls").Sheets("FEUILLE TOTO").Move Before:=Workbooks(NomFichier).Sheets(1)
     
        ' Fermeture et libération des objets
        xlApp.Quit
        Set xlSheet = Nothing
        Set xlBook = Nothing
        Set xlApp = Nothing
    Au moment du déplacement j'ai une erreur "L'indice n'appartient pas à la sélection" pourtant mon fichier cible est bien créé.
    Quelqu'un a-t-il une idée ?

    D'avance merci

  2. #2
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 543
    Points
    15 543
    Par défaut
    Essaie cette syntaxe
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
        Workbooks("Fichier1.xls").Worksheets("Feuil1").Move _
        after:=Workbooks("Fichier2.xls").Sheets(1)
    Tu dis

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 8
    Points : 5
    Points
    5
    Par défaut
    J'ai le même message d'erreur.

  4. #4
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 543
    Points
    15 543
    Par défaut
    Citation Envoyé par Olivier95
    pourtant mon fichier cible est bien créé.
    Il est ouvert ?

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 8
    Points : 5
    Points
    5
    Par défaut
    Oui j'ai vérifié en écrivant dans une cellule.

  6. #6
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 543
    Points
    15 543
    Par défaut
    Ajoute un DoEvents entre la sauvegarde et le déplacement de la feuille
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
        xlBook.SaveAs Filename:=chemExport & NomFichier
        DoEvents
        ' Déplacement de la feuille vers le nouveau fichier
        Workbooks("TEST.xls").Sheets("FEUILLE TOTO").Move Before:=Workbooks(NomFichier).Sheets(1)
    Hier, on a vu passer la même question... alors la même réponse : Si ton fichier n'est pas encore totalement enregistré, la procédure se poursuit tout de même alors que la feuille(1) n'est pas encore accessible. Donc -> -> -> DoEvents
    Tu dis

  7. #7
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 8
    Points : 5
    Points
    5
    Par défaut
    J'ai trouvé !!!
    J'ai remplacé la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set xlBook = xlApp.Workbooks.Add
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set xlBook = Workbooks.Add
    et ça marche.

    Le fichier cible était créé dans une autre session Excel que celle du fichier source, et était donc "invisible"

    Merci pour tout

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

Discussions similaires

  1. [XL-2007] Adapter mon code déplacement d'une feuille vers nouveau classeur en valeur
    Par capi81 dans le forum Macros et VBA Excel
    Réponses: 18
    Dernier message: 06/10/2014, 12h52
  2. [VBA-Excel]Aller sur une feuille sans l'activer.
    Par bonilla dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 04/10/2006, 12h50
  3. [VBA Excel] Copie d'une feuille dans un autre fichier
    Par nattyman dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 03/08/2006, 10h35
  4. [VBA Excel] Remettre toute une feuille par défaut
    Par loacast dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 30/12/2005, 16h56
  5. [VBA Excel] Effacer rapidement une feuille
    Par Invité dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 24/10/2002, 13h12

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