Bonjour à tous,

J'ai une fonction getIndexFromColumn(string p) dont voici 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
 
private int getIndexFromColumn(string p)
        {
            // Excel application.              
            Microsoft.Office.Interop.Excel.Application appExcel = new Microsoft.Office.Interop.Excel.Application();
            // Opening Workbook get from DialogBox.
            Workbook class_act = appExcel.Workbooks.Open(Main_form.nomFichierOpen, 0, true, 5, "", "", true, XlPlatform.xlWindows, "\t", false, false, 0, true, 1, 0);
 
            // Et on remplit l'autre ComboBox
            // On récupère le nom de la première colonne dans feuil_act
            Worksheet feuil_act = GetWorksheet(NomWorksheet, class_act);
 
            int i=1;
 
            while (feuil_act.Range[feuil_act.Cells[1, i], feuil_act.Cells[1, i]].Value2 != null)
            {
                if ((string)feuil_act.Range[feuil_act.Cells[1, i], feuil_act.Cells[1, i]].Value2 == p)
                {
                    return i;
                }
                else
                { i++; }
            }
 
        }
Voilà en fait le truc c'est que je souhaite récupérer l'indice de la colonne i en fonction de la valeur du string sur le range (2 premières lignes,colonne i)

Et là évidemment, dans mon else j'incrémente juste parce que je ne veux surtout rien retourner tant que je suis pas rentrer dans mon if.
Je comprends bien le soucis, il faut retourner une valeur dans le cas ou il ne trouverait pas la valeur que je lui rentre en paramètre.

Mais le truc c'est que je suis sûr qu'il va la trouver, parce que je récupère cette valeur depuis le classeur.

Voyez-vous un moyen de contourner le problème ??
Merci