Ich möchte aus meinem Excel in eine zweite Exceldatei speichern, was aber daran scheitert, die nächstfreie Zeile in diesem Excel zu ermitteln.
Option Explicit
Dim intZelleAktiveZeileSTD As Integer
Dim wkbSuppEx As Workbook
Dim wksSuppEx As Worksheet
Private Sub Supp_Stunden_Excel_oeffnen()
Dim intLetzteVolleSpalteSTD As Integer
Workbooks.Open "C:\Users\waelty\Desktop\Zwischenablage\_Ablage Service\Zeiterfassung\Supp.Stunden v. Excel\Supp.Stunden v. Excel.xlsx"
Set wkbSuppEx = Workbooks("Supp.Stunden v. Excel.xlsx")
Set wksSuppEx = wkbSuppEx.Worksheets("SuppStd")
intLetzteVolleSpalteSTD = wkbSuppEx.wksSuppEx.Cells(Rows.count, 1).End(xlUp).Row
intZelleAktiveZeileSTD = intLetzteVolleSpalteSTD + 1
End Sub
Hier kommt die Fehlermeldung: Laufzeitfehler 438 - Objekt unterstützt diese Eigenschaft nicht.Beim Debuggen springt er auf die zweitletzte Zeile, also die mit .End(xlUp).Row.
Also ändere ich den Quelltext in dieser Zeile etwas:
Private Sub Supp_Stunden_Excel_oeffnen()
Dim intLetzteVolleSpalteSTD As Integer
Workbooks.Open "C:\Users\waelty\Desktop\Zwischenablage\_Ablage Service\Zeiterfassung\Supp.Stunden v. Excel\Supp.Stunden v. Excel.xlsx"
Set wkbSuppEx = Workbooks("Supp.Stunden v. Excel.xlsx")
Set wksSuppEx = wkbSuppEx.Worksheets("SuppStd")
intLetzteVolleSpalteSTD = wkbSuppEx("SuppStd").Cells(Rows.count, 1).End(xlUp).Row
intZelleAktiveZeileSTD = intLetzteVolleSpalteSTD + 1
End Sub
Dann kommt exakt die Fehlermeldung.Ich habe das Gefühl, es sollte eigentlich problemlos funktionieren. Wahrscheinlich hat sich nur ein kleiner Fehler eingeschlichen, der sich von mir nicht finden läßt.
Wäre toll, wenn hier jemand einen Tip für mich hat.
Und die zweite kleine Anfrage wäre, was ich ändern muß, daß er in diese Exceldatei schreibt, ohne sie vorher zu öffnen. Ist das sehr kompliziert?
Danke im Voraus.
Gruß Ronald
PS: Gespeichert hätte ich die Einträge dann so:
Private Sub LogZeitSpeichern()
wkbSuppEx("SuppStd").Range("A" & intZelleAktiveZeileSTD).Value = CStr(Date)
wkbSuppEx("SuppStd").Range("A" & intZelleAktiveZeileSTD).VerticalAlignment = xlTop
wkbSuppEx("SuppStd").Range("A" & intZelleAktiveZeileSTD).HorizontalAlignment = xlCenter
wkbSuppEx("SuppStd").Range("B" & intZelleAktiveZeileSTD).Value = txtSupportNr.Text
wkbSuppEx("SuppStd").Range("B" & intZelleAktiveZeileSTD).VerticalAlignment = xlTop
wkbSuppEx("SuppStd").Range("B" & intZelleAktiveZeileSTD).HorizontalAlignment = xlCenter
'usw
End Sub
Ob dies so funktionieren würde, konnte ich wegen obigem Fehler noch nicht testen.