vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Zippen wie die Profis!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Ein- und Umsteiger
VB-net und Excel 
Autor: stefanbla80
Datum: 27.05.14 14:04

Hallo zusammen,

auf meinem Form habe ich z. B. zwei TextBoxen.
Den Inhalt der TextBoxen möchte ich gerne in eine bestehende Excel Tabelle schreiben.

Bisher nutze ich den folgenden Code. Jedoch habe ich Probleme mit dem Auffinden der untersten freien Zeile.

 Dim oExcel As Object = Nothing
        Dim oBook As Object = Nothing
        Dim oSheet As Object = Nothing
 
        'Arbeitsmappe öffnen:
        oExcel = CreateObject("Excel.Application")
        oBook = oExcel.Workbooks.Open("C:\Temp\Mappe4.xlsx")
        oSheet = oBook.Worksheets(1)
        'Zeilennummer nach der letzten Zeile bestimmen:
        Dim Zeile As Integer = oSheet.UsedRange.Rows.Count + 1
 
        'Daten in neue Zeile einfügen:
        oSheet.Range("A" & Zeile).Value = "Test"
 
        oBook.Save("C:\Temp\Mappe4.xlsx")
        oSheet = Nothing
        oBook = Nothing
        oExcel.Quit()
        oExcel = Nothing
        GC.Collect()
Habt Ihr eine Idee wie ich hier weiter machen kann?!
Ich will wie gesagt fortlaufend, Zeile für Zeile, Daten aus meinem Tool in ein Excel File schreiben.

Grüße
Stefan
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: VB-net und Excel 
Autor: Herby03
Datum: 27.05.14 19:49

Hallo,

Versuchs mal so

'Zeilennummer nach der letzten Zeile bestimmen:
Dim Zeile As Integer = oSheet.Cells(oSheet.Rows.Count, 1).End(xlUp).Row + 1

Beitrag wurde zuletzt am 27.05.14 um 20:19:00 editiert.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: VB-net und Excel 
Autor: stefanbla80
Datum: 28.05.14 11:59

Hallo,

Das habe ich auch schon versucht. Jedoch kommt eine Fehlermeldung bei "xlUp".

Es fehlt hier wohl die Deklaration.

Liegt das an Verweisen?!
Habe Microsoft Excel 12.0 Object Library

Grüße
Stefan
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: VB-net und Excel 
Autor: ModeratorDaveS (Moderator)
Datum: 28.05.14 13:39

Ja. Oder -4162 wenn du ohnehin die Verweise nicht verwendest.

________
Alle Angaben ohne Gewähr. Keine Haftung für Vorschläge, Tipps oder sonstige Hilfe, falls es schiefgeht, nur Zeit verschwendet oder man sonst nicht zufrieden ist

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: VB-net und Excel 
Autor: stefanbla80
Datum: 28.05.14 13:54

Hallo,

Ok, das passt soweit!!
Die Verweise habe ich doch gesetzt, deswegen verstehe ich das jetzt nicht wirklich.

Aber mit "-4162" gehts auf jeden Fall!!

Vielen Dank

Stefan
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: VB-net und Excel 
Autor: ModeratorDaveS (Moderator)
Datum: 28.05.14 14:56

Um die Verweise zu benutzen brauchst du eine Imports und passende Deklarationen, wie
Imports Microsoft.Office.Interop
        Dim oExcel As Excel.Application = Nothing
        Dim oBook As Excel.Workbook = Nothing
        Dim oSheet As Excel.Worksheet = Nothing
Außerdem heißt es dann Excel.XlDirection.xlUp.

________
Alle Angaben ohne Gewähr. Keine Haftung für Vorschläge, Tipps oder sonstige Hilfe, falls es schiefgeht, nur Zeit verschwendet oder man sonst nicht zufrieden ist

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: VB-net und Excel 
Autor: effeff
Datum: 28.05.14 17:05

Und wenn stefanbla80 dann auch noch mit

Dim GefZelle As Object
Dim GefRow As Integer
 
GefZelle=oSheet.Range("A:A").Find("")
 
If Not GefZelle Is Nothing Then
GefRow=GefZelle.Row
End If
nach der ersten leeren Zelle z. B. in Spalte A sucht, dann hat er seine gesuchte Row gefunden...

EALA FREYA FRESENA

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: VB-net und Excel 
Autor: ModeratorDaveS (Moderator)
Datum: 28.05.14 17:14

Also bei mir klappt es mit
 Zeile = oSheet.UsedRange.Rows.Count + 1
wenn keine leeren Rows vorhanden sind.

________
Alle Angaben ohne Gewähr. Keine Haftung für Vorschläge, Tipps oder sonstige Hilfe, falls es schiefgeht, nur Zeit verschwendet oder man sonst nicht zufrieden ist

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: VB-net und Excel 
Autor: Manfred X
Datum: 28.05.14 17:27

Ich würde beim Schreiben der Zeilen mitzählen und
in einer Zelle (der Tabelle) die aktuell vorhandene
Anzahl protokollieren bzw. diese Zahl beim Programmstart
zunächst ermitteln.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: VB-net und Excel 
Autor: ModeratorDaveS (Moderator)
Datum: 28.05.14 17:31

Keine schlechte Idee, aber ich würde nicht in einem Excel Blatt protokollieren...

________
Alle Angaben ohne Gewähr. Keine Haftung für Vorschläge, Tipps oder sonstige Hilfe, falls es schiefgeht, nur Zeit verschwendet oder man sonst nicht zufrieden ist

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2024 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel