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 :

Problème de copier/coller en VBA [XL-2010]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    -
    Inscrit en
    Juillet 2014
    Messages
    45
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : -

    Informations forums :
    Inscription : Juillet 2014
    Messages : 45
    Par défaut Problème de copier/coller en VBA
    Bonjour à tous,

    J'aimerais comprendre le phénomène suivant :

    J'ai fait une macro ultra-basique pour faire des opérations sur des données de classeurs.
    J'ai moults classeurs concernant des "valeurs" -> Classeur_Valeur, qui ont un onglet "cours" et un onglet "backtest"
    J'ai un classeur concernant le "backtest" -> Classeur_Backtest, qui a un onglet "backtest" qui contient des formules et un onglet "Résultats" qui contient des résultalts.

    Il s'agit, pour chaque Classeur_Valeur, de recopier la formule qui va bien dans Classeur_Backtest\"backtest" dans une colonne de Classeur_Valeur\"cours" puis de recopier une ligne de Classeur_Valeur\"backtest" dans la dernière ligne du tableau présent dans Classeur_Backtest\"Résultats".

    Comme le donneur d'ordre m'a demandé de pouvoir modifier le nombre de colonnes à copier, j'ai mis des Ranges relatifs (je précise que le problème n'est pas là).

    Voilà la macro (le problème est décrit après) :

    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
    Nom_Classeur_Valeur = Dir(Dossier_En_Cours & "*.xlsx")
     
    Do While Nom_Classeur_Valeur <> ""
        'Ouvre le classeur de valeur
        Workbooks.Open Filename:=Dossier_En_Cours & Nom_Classeur_Valeur
        Set Classeur_Valeur = ActiveWorkbook
        'Vérifie que c'est bien un classeur de valeur
        'définition de la dernière ligne de l'onglet des cours
        '/!\ il doit y avoir au moins deux lignes remplies au debut et il ne doit pas y avoir de ligne vide
        Derniere_Ligne_Cours = Classeur_Valeur.Sheets("cours").Range("H3").End(xlDown).Row
        'Copie les formules
        Classeur_Backtest.Sheets("Paramètres").Range("Z4:AA4").Copy
        'Colle les formules
        Classeur_Valeur.Sheets("cours").Range("Z4:AA" & Derniere_Ligne_Cours).PasteSpecial xlPasteFormulas
        'Copie du résultat
        Classeur_Valeur.Sheets("backtest").Range(Cells(3, 1), Classeur_Valeur.Sheets("backtest").Cells(3, Classeur_Valeur.Sheets("backtest").Range("A3").End(xlToRight).Column)).Copy
        'Colle le résultat
        Classeur_Backtest.Sheets("Résultats").Range("A" & Classeur_Backtest.Sheets("Résultats").Range("A1").End(xlDown).Row + 1).PasteSpecial xlValues
        'Sauve les classeurs
        Classeur_Valeur.Save
        Classeur_Backtest.Save
        'Ferme le classeur de valeurs
        Classeur_Valeur.Close
        Nom_Classeur_Valeur = Dir()
    Loop
    Sur mon PC, ça marche, mais sur le sien, ça ne marche pas, dans le sens où le second "paste" colle le contenu de la copie d'avant. En d'autres termes, la seconde copie n'a pas lieu. D'ailleurs, quand je l'exécute en mode pas à pas, au moment ou la copie est sensée avoir eu lieu et que je regarde l'onglet en question, il n'y a pas l'aspect visuel d'une sélection copiée.

    J'ai résolu le problème en ajoutant avant la deuxième copie la ligne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Classeur_Valeur.Sheets("backtest").Activate
    J'aimerais donc comprendre d'où ça peut venir.


    Merci de votre aide, j'espère avoir été clair dans ma description.


    Jodko.

  2. #2
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    3 609
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Alimentation

    Informations forums :
    Inscription : Mai 2013
    Messages : 3 609
    Par défaut
    Bonjour,

    Est-ce que les 2 PC sont sous Excel 2010 ?

  3. #3
    Membre averti
    Homme Profil pro
    -
    Inscrit en
    Juillet 2014
    Messages
    45
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : -

    Informations forums :
    Inscription : Juillet 2014
    Messages : 45
    Par défaut
    Oui, les deux sont sous Windows 7 et avec la même version d'Office. J'ai un Lenovo X230 et lui un Lenovo L512.


    Jodko.

  4. #4
    Membre Expert
    Inscrit en
    Octobre 2010
    Messages
    1 401
    Détails du profil
    Informations forums :
    Inscription : Octobre 2010
    Messages : 1 401
    Par défaut
    Bonjour.

    Tu as une erreur ici :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Classeur_Valeur.Sheets("backtest").Range(Cells(3, 1)
    Tu dois identifier le Parent de Cells(3, 1)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Classeur_Valeur.Sheets("backtest").Range(Classeur_Valeur.Sheets("backtest").Cells(3, 1)

  5. #5
    Membre averti
    Homme Profil pro
    -
    Inscrit en
    Juillet 2014
    Messages
    45
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : -

    Informations forums :
    Inscription : Juillet 2014
    Messages : 45
    Par défaut
    Ca marche !!

    Merci !

    Prendre du recul qu'ils disaient !!


    Jodko.

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

Discussions similaires

  1. [XL-2010] problème de copier coller en vba
    Par retulo dans le forum Excel
    Réponses: 6
    Dernier message: 23/06/2015, 20h39
  2. Problème de copier coller en VBA
    Par canounours dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 15/02/2015, 13h35
  3. Problème de copier coller en vba à partir d'excel
    Par Psycho185 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 09/06/2011, 13h47
  4. Problème de copier/coller de valeur VBA
    Par astridlet dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 27/12/2010, 11h31
  5. Problème de copier coller macro VBA
    Par Piernod dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 16/11/2009, 18h56

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