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

C++Builder Discussion :

probleme lors d'un copier/coller entre deux classeurs OleExcel


Sujet :

C++Builder

  1. #1
    Rédacteur
    Avatar de blondelle
    Homme Profil pro
    Inscrit en
    Mars 2006
    Messages
    2 738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 738
    Points : 3 766
    Points
    3 766
    Par défaut probleme lors d'un copier/coller entre deux classeurs OleExcel
    J'ai un probleme de deselection lors d'un copier colle d'une feuille du classeur1, vers une feuille du classeur2, la copie se fait parfaitement, je vide le presse papier, je deselectionne le classeur2, mais je ne parvient pas a mettre au premier plan le classeur1 (sur lequel j'ai fait la copie) afin de le deselectionner, si je le fait manuellement en mode debug ca marche, je n'arrive pas a le programmer.
    Voici le code je n'ai pas d'erreur mais rien ne se passe.
    le code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    vXLWorkbook = vMSExcel.OlePropertyGet("Workbooks", "télégraphe");
    vWorksheet = vXLWorkbook.OlePropertyGet("Worksheets");
    vWorksheet = vMSExcel.OlePropertyGet("ActiveSheet");
    vWorksheet.OleProcedure("Select");
    vWorksheet.OlePropertyGet("Range", "A1").OleProcedure("Select");
    --
    Plutot que d'essayer de réinventer la roue, apprenons à nous en servir

  2. #2
    Membre éprouvé
    Avatar de bandit boy
    Profil pro
    Inscrit en
    Février 2006
    Messages
    916
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 916
    Points : 1 007
    Points
    1 007
    Par défaut
    Salut blondelle,
    Juste par curiosité, si tu rend la main à l'OS avec des Application->ProcessMessage, est ce que cela peut résoudre ton problème?

  3. #3
    Rédacteur
    Avatar de blondelle
    Homme Profil pro
    Inscrit en
    Mars 2006
    Messages
    2 738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 738
    Points : 3 766
    Points
    3 766
    Par défaut
    Merci pour ta reponse bandit boy.
    Je ne vois pas comment l'utiliser par contre en visual basic une commande existe.
    le code VBE:
    Windows("Classeur1").Activate
    Je n'ai pas reussi a trouver la correspondance de "Windows" avec une commande OleExcel.
    Je prefererais rester sous OleExcel car melanger les commandes BCB et Ole ca risque de poser d'autres problemes.
    --
    Plutot que d'essayer de réinventer la roue, apprenons à nous en servir

  4. #4
    Rédacteur
    Avatar de blondelle
    Homme Profil pro
    Inscrit en
    Mars 2006
    Messages
    2 738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 738
    Points : 3 766
    Points
    3 766
    Par défaut
    A tu remarque que cela fait une exposition de moto il en manque une troisieme pour faire plus jolie.
    --
    Plutot que d'essayer de réinventer la roue, apprenons à nous en servir

  5. #5
    Rédacteur
    Avatar de blondelle
    Homme Profil pro
    Inscrit en
    Mars 2006
    Messages
    2 738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 738
    Points : 3 766
    Points
    3 766
    Par défaut
    Finalement je viens de resoudre mon probleme apres plusieures jours de recherche a se remuer le pois chiche je peut appeler un classeur ouvert parmis d'autres par son nom je poste le code.
    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
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
     
    //
    ///////////
    // copier/coller d'une feuille d'un classeur vers un autre classeur
    // on selectionne toute la feuille 1 du classeur 1 et on la copie
    //
    vWorksheet = vXLWorkbook.OlePropertyGet("Worksheets", "télégraphe");
    vWorksheet.OleProcedure("Select");
    vWorksheet.OlePropertyGet("Cells").OleProcedure("Select");
    vMSExcel.OlePropertyGet("Selection").OlePropertyGet("Copy");
    //
    // on cree un nouveau classeur
    //
    vXLWorkbook = vMSExcel.OlePropertyGet("Workbooks");
    vXLWorkbook.OleProcedure("Add");
    vWorksheet = vMSExcel.OlePropertyGet("ActiveSheet");
    ///////////
    // on renomme la feuille du nouveau classeur
    vWorksheet.OlePropertySet("Name", "SAUVEGARDE_2");
    //
    // on recopie le contenu de télégraphe dans SAUVEGARDE_2
    vWorksheet.OleProcedure("Select");
    vWorksheet.OlePropertyGet("Cells").OleProcedure("Select");
    vMSExcel.OlePropertyGet("ActiveSheet").OleProcedure("Paste");
    //
    // on deselectionne la feuille SAUVEGARDE_2 et la Feuille télégraphe du classeur 1
    vMSExcel.OlePropertySet("CutCopyMode", false);
    vWorksheet.OlePropertyGet("Range", "A1").OleProcedure("Select");
    //
    // on selectionne le classeur télégraphe
    vXLWorkbooks = vMSExcel.OlePropertyGet("Workbooks");
    vXLWorkbook = vMSExcel.OlePropertyGet("Workbooks", "télégraphe");
    vXLWorkbook.OleProcedure("Activate");
    // on selectionne la feuille télégraphe du classeur télégraphe
    vWorksheet = vXLWorkbook.OlePropertyGet("Worksheets", "télégraphe");
    vWorksheet = vMSExcel.OlePropertyGet("ActiveSheet");
    vWorksheet.OleProcedure("Select");
    vWorksheet.OlePropertyGet("Range", "A1").OleProcedure("Select");
    //
    ///////////
    //
    le programme copie une feuille du classeur télégraphe dans un classeur que l'on cree, on deselectionne la feuille sauvegarde_2 on appel le classeur télégraphe on le selectionne on deselectionne la feuille télégraphe et le tour est joue
    --
    Plutot que d'essayer de réinventer la roue, apprenons à nous en servir

  6. #6
    Rédacteur
    Avatar de blondelle
    Homme Profil pro
    Inscrit en
    Mars 2006
    Messages
    2 738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 738
    Points : 3 766
    Points
    3 766
    Par défaut
    Je peut mettre un tres gros resolu sur ce post qui m'a donne beaucoup de mal.
    --
    Plutot que d'essayer de réinventer la roue, apprenons à nous en servir

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

Discussions similaires

  1. [XL-2010] Boucle d'identification + copier-coller entre deux feuilles
    Par scratos dans le forum Excel
    Réponses: 4
    Dernier message: 25/02/2015, 11h29
  2. [XL-2010] Copier/coller Entre deux classeurs excel VBA
    Par Benjen dans le forum Excel
    Réponses: 11
    Dernier message: 19/09/2014, 15h58
  3. Copier coller entre deux feuilles
    Par charlesveillet dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 04/08/2012, 10h59
  4. [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
  5. Copier coller entre deux fichiers excel par macro
    Par miss-o-21 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 26/11/2009, 14h45

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