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 :

Problème EXCEL : Récupérer la ligne d'une cellule active


Sujet :

C++Builder

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 7
    Par défaut Problème EXCEL : Récupérer la ligne d'une cellule active
    Bonjour à tous,

    Voici mon problème,

    Je suis en train de créer un ptit logiciel qui répond à une requête (un bouton active la requête qui va chercher dans un tableau Excel).

    La première partie se passe bien, à savoir, la requête est lancée, la ligne correspondante (fonction FIND utilisée) est trouvée mais moi je voudrait récupérer toutes les informations contenues sur la ligne de la cellule trouvée par la requête... Et là, ça coince.

    Voici le bout de code pour expliquer :

    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
    
    vRecherche = StringToOleStr(requete->Text);             //lit la recherche dans le mémo qui va bien
    vResultat = vCells.OleFunction("Find", vRecherche);     //cherche et assigne la case résultat à vResultat
    vLigne_utile = vMSExcel.OlePropertyGet("ActiveCell").OlePropertyGet("Row");
    
    //==> C'est la que ça coince, j'aimerais récupérer la ligne complète de la cellule vResultat
    
    
    vcell = vWorksheet.OlePropertyGet("Cells",vLigne_utile, "3" );
    // ==> à cette ligne je souhaite récupérer la 3eme colonne de la ligne désirée
    
    
    
    vCode_cell = vcell.OlePropertyGet("Value");
    code_0->Text = OleStrToString(vCode_cell);
    
    //==> Ces 2 dernières lignes renvoie la valeur de la cellule de coordonnées "vLigne_utile" , "3eme colonne" 

    Voila, j'espère avoir été clair car cela fait depuis ce matin que je suis dessus donc mon esprit ne l'ai plus trop lui ....

    J'ai longuement farfouinner dans la FAQ BCB et sur le net et je n'ai rien trouvé alors merci à toute aide.

    Kok1k1du

  2. #2
    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
    Par défaut
    Salut Kok1k1du
    C'est pas trop clair ta demande, ce que je pense avoir compris tu a une valeur dans un TMemo et tu veut retrouver la cellule qui contient cette valeur, si cette valeur est trouvee tu veut selectionner toute la ligne contenant cette valeur, si jusque c'est bien ce que j'ai compris c'est apres que je ne vois pas

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 7
    Par défaut précision
    Bonjour Blondelle,

    Merci pour avoir répondu, tu as tout à fait compris mon problème.

    Après, une fois avoir récupérer la ligne je veux aller à la colonne X de la ligne que l'on a trouvé.

    Mais comment faire ? (petit renvoi au code du premier post).

    Pour être plus précis la valeur à cherché vient d'un TEdit et je souhaite stocker l'information de ligne (quelle est la ligne où se trouve la cellule qui contient ma recherche ?) dans une variable de type Variant


    Kok1k1du

  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
    Par défaut
    Après, une fois avoir récupérer la ligne je veux aller à la colonne X de la ligne que l'on a trouvé
    la colonne X c'est l'endroi ou se trouve la valeur que tu recherche avec " Find "

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 7
    Par défaut
    Ce que je veux c est récupérer dans un variant la valeur de la ligne où se trouve la réponse de la fonction FIND. Afin aprés d utiliser cette valeur pour aller où je veux dans la ligne ainsi trouvée (dans la cellule au croisement entre ma ligne et la colonne B par exemple).

  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
    Par défaut
    Pour recuperer l'adresse de la cellule contenant la valeur recherchee
    le code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    vRecherche = Memo1->Text; //lit la recherche dans le mémo qui va bien
    vRecherche = Trim(WideString(vRecherche)); // on supprime les caracteres de control et les espaces
    vCells = vWorksheet.OlePropertyGet("Range", "A1:D7").OleFunction("Find", vRecherche); // dans une plage "Range", "A1:D7", soit une colonne "Range", "C:C"
    String vResultat = vCells.OlePropertyGet("Address", false, false); // OlePropertyGet("Address", false, false, -4150);

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

Discussions similaires

  1. [XL-2003] Problème de saut de ligne dans une cellule à l'aide de vba
    Par juju05 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 27/05/2013, 11h31
  2. [VBA-E] Problème pour insérer des lignes dans une feuille Excel
    Par skystef dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 16/04/2007, 14h13
  3. Réponses: 9
    Dernier message: 09/03/2007, 20h44
  4. Réponses: 1
    Dernier message: 07/06/2006, 18h56
  5. Récupérer la couleur d'une cellule excel par Delphi
    Par teamsebracing dans le forum API, COM et SDKs
    Réponses: 3
    Dernier message: 05/06/2003, 14h50

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