none
Chercher l'adresse d'une cellule RRS feed

  • Question

  • Bonjour,

    Je dispose d'un fichier excel, je cherche à récupérer le numéro de la ligne où se trouve le mot "toto"
    pas la peine de chercher dans tout le tableau, il suffit de le faire dans la première colonne .

    Je ne sais pas comment procéder, je suis débutante en vb, merci de m'aider !


    IIenne

    jeudi 26 juin 2014 07:26

Réponses

Toutes les réponses

  • Bonjour,

    Vous pouvez utiliser les méthodes de recherche de l'interop Excel pour effectuer la recherche.

    Plus d'infos sur : http://msdn.microsoft.com/en-us/library/e4x1k99a.aspx

    Cordialement,


    Kevin BEAUGRAND, Modis FRANCE
    Merci de bien vouloir "Marquer comme réponse", les réponses qui ont résolu votre problème.


    jeudi 26 juin 2014 07:47
  • Impossible d'ouvrir ce lien : " Content not found We could not find the page you requested. "

    Merci de répondre, c'est urgent :(

    • Modifié Korben05 jeudi 26 juin 2014 07:52
    jeudi 26 juin 2014 07:50
  • Désolé, une erreur de frappe s'était glissée dans l'url.


    Kevin BEAUGRAND, Modis FRANCE
    Merci de bien vouloir "Marquer comme réponse", les réponses qui ont résolu votre problème.

    jeudi 26 juin 2014 07:55
  • Merci d'avoir rectifié.
    Cependant, en lisant la description, je comprends que cette méthode cherche le mot, mais ne renvoie pas le num de ligne où il se trouve. 

    Dans mon cas, je suis sure de l'existence du mot dans mon tableau, ce qu'il me faut, c'est le num de ligne correspondante.

    Je suis vraiment bloquée :(


    • Modifié Korben05 jeudi 26 juin 2014 08:03
    jeudi 26 juin 2014 08:03
  • Voici un exemple d'utilisation des interops excel pour retrouver la ligne et la colonne d'une cellule en fonction d'un mot recherché :

    private Excel.Range getCellByContent (string findText)
    {
        Excel.Range currentFind = null;
    
        //Instatiation objet d'interop
        Excel.Application oXL = new Excel.Application();
    
        //ouverture fichier excel
        Excel._Workbook oWB = (Excel._Workbook)(oXL.Workbooks.Open("<Chemin vers fichier excel>"));
    
        //On ouvre la feuille
        Excel._Worksheet oSheet = (Excel._Worksheet)oWB.ActiveSheet;
    
        // On ne rend pas visible l'interface excel
        oXL.Visible = false;
    
        //Recherche du mot
        currentFind = oSheet.Cells.Find(findText, Missing.Value, Excel.XlFindLookIn.xlValues,
            Excel.XlLookAt.xlPart, Excel.XlSearchOrder.xlByRows, Excel.XlSearchDirection.xlNext,
            false, Missing.Value, Missing.Value);
    
        //On prend la première cellule du range de résultat
        var c = currentFind.Cells[0, 0];
        //Use c.row and c.column
    
        return currentFind;
    }
    Attention contrairement au document, row et column commencent à 0 :)



    • Modifié Chidiac Sami jeudi 26 juin 2014 08:56 précisions
    jeudi 26 juin 2014 08:55
  • J'ai du mal à saisir votre code:
    Il est rédigé en quel langage ?
    où est ce que j'indique le mot que je cherche ?
    Quesqu'elle renvoie la fonction exactement ?
    • Modifié Korben05 jeudi 26 juin 2014 09:19
    jeudi 26 juin 2014 09:15
  • Bonjour IIenne,

    C'est en C#. La fonction prend en argument du texte et renvoie une plage de celulle, je m'explique.

    En fait, la recherche en interop excel renvoie une plage de celulle.

    Une plage peut représenter plusieurs choses, une cellule, une colonne, une ligne, un carré entier...etc

    C'est pourquoi après avoir lancé la recherche, je récupère dans une variable "c", la première cellule de la plage de réponse.

    var c = currentFind.Cells[0, 0];

    ensuite libre à vous d'utiliser ce résultat comme bon vous semble, vous pouvez récupérer la colonne et la ligne de la cellule comme ceci :

    int colonne = c.column;
    int ligne = c.row

    jeudi 26 juin 2014 09:23
  • Bonjour, 

    Merci pour votre explication, j'ai compris votre logique, mais je ne peux utiliser votre code car je ne m'y connais pas en c#.
    Quelqu'un pourra m'aider svp ?


    • Modifié Korben05 vendredi 27 juin 2014 03:30
    vendredi 27 juin 2014 03:30
  • Bonjour,

    Vous pouvez utiliser ce petit outil pour transcrire le code c# en vb.net.

    http://www.developerfusion.com/tools/convert/csharp-to-vb/

    Cordialement,


    Kevin BEAUGRAND, Modis FRANCE
    Merci de bien vouloir "Marquer comme réponse", les réponses qui ont résolu votre problème.

    • Marqué comme réponse Korben05 vendredi 27 juin 2014 07:00
    vendredi 27 juin 2014 06:09
  • Merci beaucoup !

    IIenne

    vendredi 27 juin 2014 06:59