Probleme sauvegarde xls dans vb .net

yohit Messages postés 2 Statut Membre -  
cs_Le Pivert Messages postés 8437 Statut Contributeur -
bonjour,

voici mon message d'erreur:

La méthode Save de la classe Workbook a échoué.

voici mon code
Imports Microsoft.Office.Interop.Excel
Public Class Form1




Dim app = CreateObject("excel.application")
    Dim workbook = app.workbooks.Open("c:\ilwcentral\tot.xlsx")
    Dim WorkSheet = app.ActiveWorkbook.ActiveSheet
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click




Using MyReader As New Microsoft.VisualBasic.
                       FileIO.TextFieldParser(
                         "C:\ilwcentral\mag1.txt")
            MyReader.TextFieldType = FileIO.FieldType.Delimited
            MyReader.SetDelimiters(";")
            Dim currentRow As String()
            While Not MyReader.EndOfData
                Dim i = 1
                Dim j = 2
                Try
                    currentRow = MyReader.ReadFields

Dim currentField As String
                    j = j + 1

For Each currentField In currentRow

If i = 1 Then

WorkSheet.Cells(1, 1).Value = "toto"
                        End If
                        If i = 2 Then
                            WorkSheet.Cells(j, 2).Value = currentField
                        End If
                        If i = 3 Then
                            WorkSheet.Cells(j, 3).Value = currentField
                        End If
                        If i = 4 Then
                            WorkSheet.Cells(j, 4).Value = currentField
                        End If
                        If i = 5 Then
                            WorkSheet.Cells(j, 5).Value = currentField
                        End If
                        If i = 6 Then
                            i = 0
                        End If


i = i + 1
                    Next
                Catch ex As Microsoft.VisualBasic.
                            FileIO.MalformedLineException
                    MsgBox("Line " & ex.Message &
                    "is not valid and will be skipped.")
                End Try
            End While
            workbook.Save()
        End Using



End Sub

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load




End Sub
    Private Sub Form1_FormClosed(ByVal sender As System.Object, _
 ByVal e As System.Windows.Forms.FormClosedEventArgs) _
  Handles MyBase.FormClosed



workbook.Close(True)
        app.Quit()
    End Sub

End Class

EDIT : Ajout des balises de code


EDIT² : Sujet déplacé dans le forum : VB

Un avis ?

le traitement et l'ecriture du contenu csv fonctionne mais ça coince quand le fichier xls doit etre enregistrer

2 réponses

  1. Passionofdream Messages postés 858 Statut Membre 305
     
    Bonjour,

    Je pense que le problème vient de

    workbook.Save()
    qui vient en contradiction avec
    Dim workbook = app.workbooks.Open("c:\ilwcentral\tot.xlsx")
    0
    1. yohit Messages postés 2 Statut Membre
       
      Bonjour et merci.


      En fait je souhaite ouvrir ce fichier qui existe déjà, remplir des cellule, et enregistrer les modification sur le même où un autre fichier xls, le remplissage des cellules.fonctionnne mais je ne sais pas pourquoi ça ne sauvegarde pas, car ensuite le fichier xls reste en lecture seul

      Encore merci

      Cordialement
      0
    2. Passionofdream Messages postés 858 Statut Membre 305
       
      Essaye avec
      workbook.SaveAs ("c:\ilwcentral\tot.xlsx")
      0
  2. cs_Le Pivert Messages postés 8437 Statut Contributeur 730
     
    Bonjour,

    En VB.Net on ne procède pas comme cela:

    Dim app = CreateObject("excel.application")


    Voir ici la manière de procèder:

    https://codes-sources.commentcamarche.net/source/100410-piloter-office-en-vb-net

    Pour répondre à ta question:

    app.workbook.Save()

    tout simplement

    Regarde cela aussi pour les déclarations

    http://www.visual-basic-tutorials.com/export-datagridview-to-excel-in-visual-basic.html

    @+ Le Pivert
    0