Probleme sauvegarde xls dans vb .net

Fermé
yohit Messages postés 2 Date d'inscription mardi 6 décembre 2016 Statut Membre Dernière intervention 7 décembre 2016 - Modifié par jordane45 le 6/12/2016 à 09:57
cs_Le Pivert Messages postés 7904 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 14 août 2024 - 7 déc. 2016 à 15:32
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
A voir également:

2 réponses

Passionofdream Messages postés 820 Date d'inscription mardi 21 juillet 2015 Statut Membre Dernière intervention 11 mai 2021 305
7 déc. 2016 à 10:11
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
yohit Messages postés 2 Date d'inscription mardi 6 décembre 2016 Statut Membre Dernière intervention 7 décembre 2016
7 déc. 2016 à 10:42
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
Passionofdream Messages postés 820 Date d'inscription mardi 21 juillet 2015 Statut Membre Dernière intervention 11 mai 2021 305
7 déc. 2016 à 10:57
Essaye avec
workbook.SaveAs ("c:\ilwcentral\tot.xlsx")
0
cs_Le Pivert Messages postés 7904 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 14 août 2024 729
Modifié par cs_Le Pivert le 7/12/2016 à 15:40
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

Discussions similaires