Excel-Tabellen neu erstellen, schreiben, editieren, speichern EDIT: Fehler beim Öffnen der Datei

  • VB.NET

Es gibt 9 Antworten in diesem Thema. Der letzte Beitrag () ist von sonne75.

    Excel-Tabellen neu erstellen, schreiben, editieren, speichern EDIT: Fehler beim Öffnen der Datei

    Hallo,

    ich habe die Suche bemüht, aber nichts passendes gefunden.

    Mein Programm soll zwei Menüpunkte haben, in denen man entweder eine neue Excel-Datei erstellt oder eine existierende editiert (eine Zeile anhängt). Wie kann ich das machen? Ich habe teilweise Code im Internet gefunden, aber er funktioniert überhaupt nicht.
    Es muss nicht zwingend eine Excel-Datei sein, eine eine, die man mit einem gängigen Programm aufmachen kann und die wie eine Tabelle aussieht (in den Zeilen sind jeweils Texte geschrieben).

    Danke im voraus.

    LG

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „sonne75“ ()

    Ich denke da musst du etwas konkreter werden.
    Also du brauchst VBA, und stell schon mal die Form her und den Basis-Code (Sub Button1_CLick etc.)
    Das macht das etwas einfacher :)

    EDIT: Eine neue Excel-Datei erstellt oder Excel öffnet ? Bei Letzterem einfach Process.Start([EXCELPFAD]) (sry ich hab ka ob das auch in VBA geht)
    nein es geht nicht --> Excel VBA öffnen

    EDIT4: VBA Excel Tut
    Nächstes mal guck ich vorher, und dann schreibe ich :thumbsup:
    »There's no need to "teach" atheism. It's the natural result of education without indoctrination.« — Ricky Gervais
    Nein, ich brauche kein VBA. Ich habe ein normales Projekt in VB.NET und ein Menüpunkt soll sein, eine neue leere Excel-Datei öffnen, Daten reinschreiben, speichern und schliessen. Der andere Menüpunkt ist eine neue Zeile in die existierende Datei schreiben.

    Eine existierende Datei beschreiben - das habe ich jetzt hier gefunden, bin am Austesten:
    [VB 2010] Combo und Textbox mit Excel - Spalten befüllen

    Aber eine Datei erstellen - das muss ich noch suchen.
    Wie meinst du das? Ich befinde mich in einem VB.Net-Projekt, was soll ich mit VBA?

    EDIT: Ich habe jetzt diesen Code vom Link übernommen, aber es funktioniert nicht, es öffnet schon das Workbook nicht (Zeile 21):

    VB.NET-Quellcode

    1. Dim xls_Appl As Excel.Application ' Excel Anwendung
    2. Dim xls_Mappe As Excel.Workbook ' Excel Arbeitsmappe
    3. Dim xls_Blatt As Excel.Worksheet ' Excel Blatt ( Tabelle)
    4. Dim xls_Bereich As Excel.Range ' Excel Bereich
    5. Dim Aresult As String
    6. Dim sfd As New SaveFileDialog
    7. Dim path1 As String
    8. With sfd
    9. .Filter = "Excel-files (*.xls)|*.xls;*.xlsx;*.ods"
    10. .InitialDirectory = My.Application.Info.DirectoryPath & "\" & "Project"
    11. .DefaultExt = "xls"
    12. .AddExtension = True
    13. End With
    14. If (sfd.ShowDialog() = DialogResult.OK) Then
    15. path1 = sfd.FileName
    16. xls_Appl = CType(CreateObject("Excel.Application"), Excel.Application)
    17. xls_Appl.Visible = True
    18. xls_Mappe = xls_Appl.Workbooks.Open(path1) 'Hier kommt kein gültiges Objekt zurück
    19. xls_Blatt = CType(xls_Mappe.Worksheets(0), Excel.Worksheet)
    20. xls_Blatt.Select()
    21. xls_Bereich = xls_Blatt.Range("A1:D200")
    22. Dim i As Integer
    23. For i = 1 To 200 'Schleife beginn
    24. If xls_Bereich(i, 0).value = "" Then ' prüfen ob die Zeile allgemein gefüllt ist um nicht bis zum ende der schleife den letzten gefunden wert zu setzen
    25. Exit For
    26. End If
    27. Next
    28. xls_Bereich(i, 0).value = "test"
    29. xls_Mappe.Save()
    30. xls_Mappe.Close()
    31. End If
    32. End Sub
    VBA ist meines erachtens für solche sachen gedacht. wenn du mit Excel Arbeiten willst denke ich wirst du um VBA nicht drum rum kommen.

    Er hat mit "Na wenn du meinst dann Good Luck" gemeint da du geschrieben was "Was soll ich mit VBA" das du nicht so ganz verstanden hast was er meint.

    Wie oben schon geschrieben, wirst du um VBA (Visual Basic for Application (?)) nicht drum rum kommen wenn du mit Excel Arbeitest oder Arbeiten willst

    Das Projekt ist VB.NET ja wie alles andere auch nur (wenn ich falsch liege bitte berichtigen) dir Schreibweise nennt sich VBA

    Ich habe das oben verlinkte Tutorial angeschaut, da steht nichts, was mir irgendwie weiterhelfen könnte.

    EDIT: Wenn man hier im Forum Code anschaut, scheint es bei allen funktionieren. Bei mir aber gibt die Funktion:

    xls_Mappe = xls_Appl.Workbooks.Open(path1)

    nur ein System.__ComObject zurück, womit natürlich die nachfolgenden Zeilen nichts anfangen können. Woran könnte es liegen?

    In diesem Objekt steht unter AnswerWizzard " _message "Exception from HRESULT: 0x800A03EC"

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „sonne75“ ()

    So, ich bin schon mal weiter, die Fehlermeldungen lagen daran, dass ich ab 0 anfing und nicht ab 1.

    Jetzt habe ich nur noch das Problem mit dem Speichern, bei Save() passiert nichts, bei SaveAs(path1) kommt eine Fehlermeldung, dass die Datei schreibgeschützt wäre. Ist sie aber nicht, und wenn ich vorher über FileInfo das abfrage, kommt auch ein False zurück...