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-E]copie entre classeurs (encore)


Sujet :

Macros et VBA Excel

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Février 2006
    Messages
    932
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 932
    Points : 448
    Points
    448
    Par défaut [VBA-E]copie entre classeurs (encore)
    coucou,
    je viens de remarquer par hasard un petit probleme

    voici mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
           'ajout d'une feuille de calcul portant le nom de la semaine suivante
            Sheets.Add after:=Sheets(Sheets.Count)
            Sheets(Sheets.Count).Name = "sem" & Sheets.Count - 1 & ""
            'ouverture du fichier contenant les données
            Set source = Application.Workbooks.Open(nom)
            Workbooks(1).Activate
            source.Sheets(1).Range("A1:H51").Copy ThisWorkbook.Sheets (Sheets.Count).Range("A1:H51")
     
            source.Close
            ThisWorkbook.Worksheets(1).Activate
    Ce code fonctionne bien mais si il y a un autre fichier excel ouvert avant celui où s'execute cette macro, ma feuille créée où sont censées etre copiées les valeurs reste blanche (je n'ai pas ce probleme si un autre fichier excel est ouvert apres, seulement si il est ouvert avant)

    Si quelqu'un sait pourquoi, je suis preneur

  2. #2
    Inactif  
    Avatar de jmfmarques
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    3 784
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 3 784
    Points : 4 674
    Points
    4 674
    Par défaut
    Je ne connais pas grand chose en VBA mais ...
    Workbooks(1)
    Cet indice 1 : ce ne serait pas celui du 1er classeur, par hasard ?... et donc celui que tu actives .... pui en actives la feuille 1 ?

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Février 2006
    Messages
    932
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 932
    Points : 448
    Points
    448
    Par défaut
    hehe,
    bah c'est bien possible mais ne le mettant pas là j'ai une page blanche meme si aucun autre classeur n'est ouvert

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Février 2006
    Messages
    932
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 932
    Points : 448
    Points
    448
    Par défaut
    ahhh ca y'est
    donc je te confirme t'avais bien raison, j'ai remplacé le "1" par "workbooks.count -1" (le dernier etant celui dont je veux copier les données qui est ouvert) et hop ca marcheee


  5. #5
    Membre expérimenté Avatar de Megaxel
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    1 187
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 1 187
    Points : 1 405
    Points
    1 405
    Par défaut
    Mais pourquoi ne mets-tu pas directement le nom de ton classeur, au lieu d'un indice dont tu n'es pas forcément sûr?
    Avec le nom, aucun risque d'erreur sur le classeur, quel que soit l'ordre et le nombre de classeurs ouverts.

  6. #6
    Inactif  
    Avatar de jmfmarques
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    3 784
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 3 784
    Points : 4 674
    Points
    4 674
    Par défaut
    Merci Mega !
    Je revenais précisément pour lui dire que son Résolu ainsi ne me plaisait pas et pour lui parler de la collection WorkBooks.
    Je voulais également lui rappeler qu'existait ActiveWorkBook
    Ces 2 méthodes étant plus orthodoxes que ce -1 pour ce qu'il veut faire
    Tu m'épargnes donc celà.

  7. #7
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 038
    Points
    20 038
    Par défaut
    Citation Envoyé par Elstak
    ahhh ca y'est
    donc je te confirme t'avais bien raison, j'ai remplacé le "1" par "workbooks.count -1" (le dernier etant celui dont je veux copier les données qui est ouvert) et hop ca marcheee

    et tu as déjà une référence sur le dernier ... "Source"

    ... sinon tu peu carrément supprimer la ligne qui sert à rien ., car lorsque tu ouvre un classeur, par défaut c'est lui qui est actif !

  8. #8
    Inactif  
    Avatar de jmfmarques
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    3 784
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 3 784
    Points : 4 674
    Points
    4 674
    Par défaut
    Oui, Bbil (bonjour),

    Je pense cependant que Elstak devrait profiter de l'occasion qui lui est donnée de sintéresser à la collection WorkBooks, aux noms que l'on peut donner aux classeurs, etc...
    Cette petite étude lui permettra, par la suite, de résoudre bien d'autres problèmes, ne serait-ce que pour passer plus agilement d'un classeur à l'autre (en résumé : généraliser...)
    Je vous laisse faire...

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

Discussions similaires

  1. [VBA][EXCEL] Copie de graphes entre 2 classeurs
    Par billynirvana dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 09/03/2007, 16h03
  2. [VBA-E]:copier entre deux tableaux sur deux classeurs
    Par VBBBA dans le forum Macros et VBA Excel
    Réponses: 39
    Dernier message: 28/06/2006, 15h39
  3. [VBA-E] Copie par valeur d'une feuille dans un nouveau classeur
    Par MatMeuh dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 17/05/2006, 22h38
  4. [VBA-E]Relier 2 classeur entre eux
    Par DonKnacki dans le forum Macros et VBA Excel
    Réponses: 17
    Dernier message: 04/04/2006, 09h45
  5. [VBA-E] Comparer les valeurs entre classeur
    Par Mut dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 26/03/2006, 12h32

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