Bonjour
pour commencer, bonne année à tous et plein de bonnes choses !

Je poste un petit message car j'ai un petit souci dans un logiciel windowsform, développé avec visual studio 2010.

Lorsque je lance une requête, le résultat apparaît dans un datagridview et j'ai un bouton qui permets de sauvegarder le résultat dans un fichier excel .
Pour certaines requêtes, il me met la fameuse erreur " HRESULT: 0x800A03EC" . le plus étrange, quand je lance d'autres requêtes, l'enregistrement se fait normalement et le fichier fait environ 20000lignes, mais pour certaines requêtes qui me ressort que 2 lignes, j'ai l'erreur qui apparaît.


j'ai fais pas mal de recherche et apparemment ça doit être lié à Excel, il m'a semblé un jour avoir fait une réparation rapide d'office 365 et ça fonctionné de nouveau, mais j'ai retenté la manipulation mais rien n'y fait.

voici un extrait de ma procédure qui est utilisé pour la sauvegarde dans un 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
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
 
 try
            {
                ExcelApplication excel = new ExcelApplication();
                Workbook exbook = (Workbook)excel.Workbooks.Add(Missing.Value);
 
                Worksheet exsheet = (Worksheet)excel.ActiveSheet;
                //Double[] Totaux= new Double[4];
 
                //Mise en forme de l'en-tête de la feuille Excel
                /*exsheet.Cells[1, 1] = strEnteteDeFichier;
                Range r = exsheet.get_Range(Convert.ToChar(65 + i).ToString() + "1", Missing.Value);
                r.Interior.ColorIndex = XlColorIndex.xlColorIndexAutomatic;
                r.Font.Bold = true;
                r.BorderAround(XlLineStyle.xlContinuous, XlBorderWeight.xlThin, XlColorIndex.xlColorIndexAutomatic, Missing.Value);
                r.EntireColumn.AutoFit();//Fin de la mise en forme de l'en-tête.*/
                Range r = exsheet.get_Range(Convert.ToChar(65 + i).ToString() + "1", Missing.Value);
 
                foreach (DataGridViewColumn ch in dgView.Columns)
                {
                    if (ch.Visible && ch.CellType.Name != "DataGridViewImageCell")
                    {
                        r = exsheet.get_Range(Convert.ToChar(65 + i).ToString() + "1", Missing.Value);
                       // r = exsheet.Range[Convert.ToChar(65 + i).ToString() + "1", Missing.Value];
                        //exsheet.Cells[2, i + 1] = ch.HeaderText.Trim();
                        exsheet.Cells[1, i + 1] = ch.HeaderText.Trim();
                        r.Interior.ColorIndex = XlColorIndex.xlColorIndexAutomatic;
                        r.Font.Bold = true;
                        r.Font.Color = XlRgbColor.rgbBlue;
                        r.BorderAround(XlLineStyle.xlContinuous, XlBorderWeight.xlThin, XlColorIndex.xlColorIndexAutomatic, Missing.Value);
                        r.EntireColumn.AutoFit();
                        i++;
                    }
                }
                //j = 3;
                j = 2;
 
                foreach (DataGridViewRow uneLigne in dgView.Rows)
                {
                    i = 1;
                    foreach (DataGridViewColumn uneColonne in dgView.Columns)
                    {
                        if (uneColonne.Visible && uneColonne.CellType.Name != "DataGridViewImageCell")
                        {
                            r = exsheet.get_Range(Convert.ToChar(65 + i - 1).ToString() + j.ToString(), Missing.Value);
                            exsheet.Cells[j, i] = "'" + uneLigne.Cells[uneColonne.Name].Value.ToString().Trim();
                            r.BorderAround(XlLineStyle.xlContinuous, XlBorderWeight.xlThin, XlColorIndex.xlColorIndexAutomatic, Missing.Value);
                            r.EntireColumn.AutoFit();
                            i++;
                        }
                    }
                    exsheet.Columns.AutoFit();
                    j++;
                }
                exsheet.SaveAs(unFichier, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value);
                excel.Quit();
 
 
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
merci pour vos conseils