Bonsoir

Avec visual studio 2019, j'essaie de savoir si une valeur donnée est présente dans une colonne Excel

Je commence par déclarer mes objets

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
Microsoft.Office.Interop.Excel.Workbook xlBook;
Microsoft.Office.Interop.Excel.Application xlApp;
Microsoft.Office.Interop.Excel.Worksheet xlSheet;
Une autre procédure les initialise

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
// récupération du fichier à lire
OpenFileDialog frm = new OpenFileDialog();
if (frm.ShowDialog() == DialogResult.OK)
{
        xlApp = new Microsoft.Office.Interop.Excel.Application();            {
        xlBook = xlApp.Workbooks.Open(frm.FileName);
        // Récupération de la feuille à lire
        xlSheet = (Microsoft.Office.Interop.Excel.Worksheet)xlBook.Worksheets.get_Item(Le_Numero_De_Ma_Feuille);
}
Jusque là tout va bien!
Quand une autre procédure essaie de lire le fichier excel

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
 private bool this_VerifyAnalytAccount(string strToFind)
 {
       bool bFound = false;
       string strReaden;
 
       for (uint iRowReaden = 1; iRowReaden < 65; iRowReaden++)
       {
            strReaden = xlSheet.Cells[iRowReaden, 1].ToString();
 
            if (strReaden == strToFind)
           {
                 // Le code est trouvé.
                 bFound = true;                           
                 iRowReaden = 65;
           }
 
       }
       return(bFound);
}
strReaden me renvoie la valeur: System.__ComObject, pour toutes les cellules ce qui n'est pas du tout ce que je cherche !!!

et pourtant quand j'écris dans un fichier excel j'utilise la syntaxe

Code : Sélectionner tout - Visualiser dans une fenêtre à part
xlSheet.Cells[ligne, colonne] = "machaine";
Je pense que pour lire une valeur la syntaxe est différente, mais je n'ai pas trouvé.

Merci