Partage
  • Partager sur Facebook
  • Partager sur Twitter

Erreur à la compilation

Erreur à la compilation

    17 mars 2023 à 21:43:56

    using System.Runtime.InteropServices;
    using Excel = Microsoft.Office.Interop.Excel;
    
    
    public partial class Form1 : Form
    {
        public static Excel.Application? excelApp;
        public static Excel.Workbook? excelBook;
        public static Excel.Worksheet? excelSheet;
        public static Excel.Range? excelRange;
    private void Form1_Load(object sender, EventArgs e)
        {
            excelApp = new Excel.Application();
            if (excelApp == null)
            {
                MessageBox.Show("Desolé, l'application neessite Excel");
                Application.Exit();
            }
            else
            {
                try
                {
                    excelBook = excelApp.Workbooks.Open(AppContext.BaseDirectory + "testCOM.xlsx");
                    excelSheet = excelBook.Worksheets[1];
                }
                catch (Exception ex)
                {
                    MessageBox.Show($"une erreur s'est produite");
                    Application.Exit();
                }
    
            }
    
        }
    
        private void Form1_FormClosing(object sender, FormClosingEventArgs e)
        {
            GC.Collect();
            GC.WaitForPendingFinalizers();
    
            if(excelSheet != null )
            Marshal.ReleaseComObject(excelSheet!);
    
            if (excelBook != null)
                excelBook!.Close();
    
            Marshal.ReleaseComObject(excelBook!);
    
    
            if (excelApp != null)
            {
                excelApp!.Quit();
                Marshal.ReleaseComObject(excelApp!);
            }
    
        }
    
        private void btnEnvoyer_Click(object sender, EventArgs e)
        {
            RadioButton? rb = this.gpCouleurs.Controls.OfType<RadioButton>().Where(cb=>cb.Checked).FirstOrDefault();
    
            if(rb != null)
            {
                string val = rb.Text;
    
                switch (val)
                {
                    case "Rouge":
                        excelSheet!.Cells[2, 2].value2 +=1;
                        break;
                    case "Jaune":
                        excelSheet!.Cells[3, 2].value2 += 1;
                        break;
                    case "Vert":
                        excelSheet!.Cells[4, 2].value2 += 1;
                        break;
                    case "Bleu":
                        excelSheet!.Cells[5, 2].value2 += 1;
                        break;
                }
                excelBook!.Save();
    
            }
            
        }
    }

    Bonjour, 

    J'ai écris le code ci-dessus pour ouvrir/écrire sur un fichier Excel.

    il n'y pas d'erreur visible mais au moment de la copulation il m'envoie ce message:

    si quelqu'un a une idée, je suis preneur, merci. 

    System.NullReferenceException : 'La référence d'objet n'est pas définie sur une instance d'un objet.'

    -
    Edité par mgf 18 mars 2023 à 20:07:27

    • Partager sur Facebook
    • Partager sur Twitter
      20 mars 2023 à 9:59:11

      Vous n'indiquez pas qu'il faut ajouter les références aux assemblies PIA d'Excel, j'espère sue vous ne les avez pas oubliées.

      "NullReferenceException", c'est une exception au Runtime, pas à la compilation.

      Le débogueur devrait vous indiquer où dans le code cela arrive.

      P.S.: Pourquoi vous testez la valeur de retour en ligne 3 mais pas en ligne 13 et 14 ?

      etc... (code bien peu robuste)

      • Partager sur Facebook
      • Partager sur Twitter
      Je recherche un CDI/CDD/mission freelance comme Architecte Logiciel/ Expert Technique sur technologies Microsoft.

      Erreur à la compilation

      × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
      × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
      • Editeur
      • Markdown