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]Problème Copier-Coller entre 2 classeurs


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Avril 2007
    Messages
    38
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2007
    Messages : 38
    Points : 39
    Points
    39
    Par défaut [VBA-E]Problème Copier-Coller entre 2 classeurs
    J’ai un problème lors d’un copier-coller entre 2 classeurs en VBA.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    'on copie la zone qui nous intéresse sur la fiche sauvegardée
                Windows("Nom.xlsm").Activate
                Sheets("SaveDFT").Select
                Sheets("SaveDFT").Range("A1", "F254").Copy
     
                'et on la colle sur le logiciel de calcul
                Windows("Test.xlsm").Activate
                Sheets("DFT").Select
                'Sheets("DFT").Range("A1:F254").Activate
                ActiveSheet.Unprotect
                ActiveSheet.Paste
                ActiveSheet.Protect
    Lorsque j’exécute ma macro, j’ai une erreur sur la ligne ActiveSheetPaste (l’avant dernière ligne). Il me met : « La méthode Paste de la classe WorkSheet a échoué ». J’ai testé plusieurs changements mais aucun ne marche.
    Aidez-moi svp à comprendre mon erreur.
    Merci d’avance

  2. #2
    Expert confirmé Avatar de illight
    Homme Profil pro
    Analyste décisionnel
    Inscrit en
    Septembre 2005
    Messages
    2 338
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Analyste décisionnel
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2005
    Messages : 2 338
    Points : 4 295
    Points
    4 295
    Par défaut
    Essaye ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    'on copie la zone qui nous intéresse sur la fiche sauvegardée  Windows("Nom.xlsm").Activate  Sheets("SaveDFT").Select  Sheets("SaveDFT").Range("A1:F254").Copy  
     'et on la colle sur le logiciel de calcul  
    Windows("Test.xlsm").Activate  
    Sheets("DFT").Select  
    'Sheets("DFT").Range("A1:F254").Activate  
    ActiveSheet.Unprotect  
    range("A1").select
    ActiveSheet.Paste  
    ActiveSheet.Protect
    1. Avant de poster, et http://www.developpez.com/sources/
    2. Lors du post, n'oubliez pas, si besoin les balises CODE => voir ici pour l'utilisation
    3. N'oubliez pas le
    4. N'oubliez pas le si la réponse vous a été utile !

  3. #3
    Nouveau membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Avril 2007
    Messages
    38
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2007
    Messages : 38
    Points : 39
    Points
    39
    Par défaut
    Ton code me donne la même erreur. J'avais déjà testé en donnant une cellule active pour le collage mais c'est pareille.

    Par contre j'ai modifié mon code depuis et là je trouve une erreur. A la place de coller la sélection dans Test.xlsm, Excel m'ouvre un classeur vide et colle la sélection dans ce classeur.

    Voici le code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
                'on copie la zone qui nous intéresse sur la fiche sauvegardée
                Windows("Nom.xlsm").Activate
                Sheets("SaveDFT").Select
                'Sheets("SaveDFT").Range("A1", "F254").Copy
                Sheets("SaveDFT").Copy
     
                'et on la colle sur le logiciel de calcul
                Windows("TestTB1.xlsm").Activate
                Sheets("DonneesFicheTechnique").Select
                ActiveSheet.Unprotect
                ActiveSheet.Range("A1").Select
                ActiveSheet.Paste
                ActiveSheet.Protect

  4. #4
    Expert confirmé Avatar de illight
    Homme Profil pro
    Analyste décisionnel
    Inscrit en
    Septembre 2005
    Messages
    2 338
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Analyste décisionnel
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2005
    Messages : 2 338
    Points : 4 295
    Points
    4 295
    Par défaut
    C'est bizarre que ça marche pas, chez moi je l'ai utilisé plein de foiset ça marchais bien


    Pour le deuxième truc, je pense que le souci vient du fait que tu copie pas une cellule mais une feuille, c'est onrmal que ça te fasse une erreur
    1. Avant de poster, et http://www.developpez.com/sources/
    2. Lors du post, n'oubliez pas, si besoin les balises CODE => voir ici pour l'utilisation
    3. N'oubliez pas le
    4. N'oubliez pas le si la réponse vous a été utile !

  5. #5
    Nouveau membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Avril 2007
    Messages
    38
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2007
    Messages : 38
    Points : 39
    Points
    39
    Par défaut
    J'ai toujours le même problème. Lorsque je lance ma macro, il va me dire que que l'activesheet lorsque je fais mon paste est protégé. Et si je rajoute activesheet.unprotect et activesheet.protect, il me dit que "La méthode Paste de la classe WorkSheet a échoué "


    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
                Windows(nom).Activate
                Sheets("SaveDFT").Select
                Range("C2:C11").Select
                Selection.Copy
     
                Windows("Test.xlsm").Activate
                Sheets("DonneesFicheTechnique").Select
                Range("C2:C11").Select
                ActiveSheet.Paste
     
     
                Windows(nom).Activate
                Sheets("SaveDFT").Select
                Range("C14:F15").Select
                Application.CutCopyMode = False
                Selection.Copy
     
                Windows("Test.xlsm").Activate
                Sheets("DonneesFicheTechnique").Select
                Range("C14:F15").Select
                ActiveSheet.Paste
     
                Windows(nom).Activate
                Sheets("SaveDFT").Select
                Range("C17:C256").Select
                Application.CutCopyMode = False
                Selection.Copy
     
                Windows("Test.xlsm").Activate
                Sheets("DonneesFicheTechnique").Select
                Range("C17:C256").Select
                ActiveSheet.Paste
    Est ce que celà pourrait venir des différences entre les classeurs? En effet, j'ai ai un qui s'appelle nom (initialisé plus haut dans code à X.xlsx et l'autre c'est Test.xlsm)

  6. #6
    Nouveau membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Avril 2007
    Messages
    38
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2007
    Messages : 38
    Points : 39
    Points
    39
    Par défaut
    J'ai trouvé mon erreur.
    En fait il faut faire le .Unprotected en haut du code et non pas au milieu. De même pour le .protect.
    Merci tout de même illight pour ton aide.

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

Discussions similaires

  1. [XL-2010] Copier/coller Entre deux classeurs excel VBA
    Par Benjen dans le forum Excel
    Réponses: 11
    Dernier message: 19/09/2014, 15h58
  2. [XL-2000] Copier coller entre deux classeurs
    Par Juan Jacko dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 15/03/2011, 11h35
  3. [VBA-E]échec copier-coller entre 2classeurs
    Par touche_a_tout dans le forum Macros et VBA Excel
    Réponses: 14
    Dernier message: 06/12/2006, 23h22
  4. Réponses: 5
    Dernier message: 16/08/2006, 20h09
  5. VBA-E: Pb copier-coller entre Excel et .csv
    Par tiger118 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 14/06/2006, 11h08

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