1. Es wäre sehr sinnvoll, würdest Du Deine Textboxen auch so benennen, dass erkennbar, ist, was sie für Werte aufnehmen. Also z. B. nicht "Text40" sondern "txtDatum".
2. Wie lange soll denn Dein Programm auf neue Daten warten? Und wo kommen die Daten her? Werden die immer mit der Hand in die Textboxen geschrieben?
3. Dass Du mit oBook.SaveAs "D:\Viessmann\Vitotronic Test\test.xls" immer wieder die gleiche Datei überschreibst, ist klar, oder? Deswegen auch die Frage, ob die Datei überschrieben werden soll.
Du könntest mit
Dim Dateiname As String
Dateiname="d:\vissmann\vitronic test\text.xls"
If Dir(Dateiname)<>"" then
Kill Dateiname
End If
oBook.SaveAs(Dateiname) die Datei zwangsweise löschen, um sie zu überschreiben.
4. Um immer in eine neue Zeile zu schreiben, könntest Du z. B. folgendermaßen arbeiten:
Deklariere vor allem Variablen, um besser und übersichtlicher arbeiten zu können.
Dim Datum As String
Dim Kessel_Ist As String
Dim Kessel_Soll As String
Dim Solarspeicher As String
Dim Warmwasser_Soll As String
Dim Warmwasser_Ist As String
Dim Raum_Soll As String
'etc.
a) Überschrift erstellen:
<pre><code>oSheet.Range("A1:N1").Value = Array("Datum", "Kessel Ist", "Kessel" & _
"Soll", "Solarspeicher", "Warmwasser Soll", "Warmwasser Ist", "Raum Soll", _
"Raum Ist", "Aussen", "Aussen ged.", "Kollektor", "Brennerleistung", _
"Brennder Std.", "Brennerstarts") b) Freie Zeile feststellen:
Dim gefZelle As Object
Dim Zeile As Integer
Set gefZelle=oSheet.Range("A:A").Find(What:="")
If gefZelle Is Nothing Then
MsgBox("Es gibt keine freie Zelle mehr in der Zieltabelle!")
Exit Sub
End If
Zeile=gefZelle.Row
'Daten in Variable schreiben:
Datum=txtDatum.Text
Kessel_Ist=txtKessel_Ist.txt
Kessel_Soll=txtKessel_Soll.txt
'etc.
'In Spalte A, also 1, das Datum schreiben:
oSheet.cells(Zeile, 1).Value=Datum
'In Spalte B, also 2, den Wert für "Kessel Ist" schreiben:
oSheet.cells(Zeile, 2).Value=Kessel_Ist
'In Spalte C, also 3, den Wert für "Kessel Soll" schreiben:
oSheet.cells(Zeile, 3).Value=Kessel_Soll OK? 
EALA FREYA FRESENA |