Daten aus UserForm in Tabelle schreiben

Ich habe zur Übernahme der Daten folgenden Code geschrieben; bekomme aber immer nur einen Laufzeitfehler. Wo steckt der Fehler. Kann mir da einer behilflich sein?

Private Sub cmdUebernahmeEingabedaten_Click()
Dim sp As Integer
Dim z As Long
z = Range(„A65565“).End(xlUp).Row + 1
Zusammenfassung_Beleuchtung.Cells(z, 1) = EG_Raumname (TextBox)
Zusammenfassung_Beleuchtung.Cells(z, 2) = EG_LfdNrFuerLeuchte (ComboBox)
Zusammenfassung_Beleuchtung.Cells(z, 3) = EG_Startjahr (ComboBox)
Zusammenfassung_Beleuchtung.Cells(z, 4) = EG_LeuchtenAnzahlAlt (TextBox)
Zusammenfassung_Beleuchtung.Cells(z, 5) = EG_AnzahlLMAlt (ComboBox)
Zusammenfassung_Beleuchtung.Cells(z, 6) = EG_BezeichnungLMAlt (TextBox)
Zusammenfassung_Beleuchtung.Cells(z, 7) = EG_LebensdauerLMAlt (TextBox)
Zusammenfassung_Beleuchtung.Cells(z, 8) = EG_WattLMAlt (TextBox)
Zusammenfassung_Beleuchtung.Cells(z, 9) = EG_VGAlt (TextBox)
Zusammenfassung_Beleuchtung.Cells(z, 10) = EG_AnzahlVGAlt (TextBox)
Zusammenfassung_Beleuchtung.Cells(z, 11) = EG_AnzahlStarterAlt (TextBox)
Zusammenfassung_Beleuchtung.Cells(z, 12) = EG_BetriebsstundenTag (TextBox)
Zusammenfassung_Beleuchtung.Cells(z, 13) = EG_BetriebstageJahr (TextBox)
Zusammenfassung_Beleuchtung.Cells(z, 14) = EG_KostenLeuchtenNeu (TextBox)
Zusammenfassung_Beleuchtung.Cells(z, 15) = EG_KostenEEFVGAlt (TextBox)
Zusammenfassung_Beleuchtung.Cells(z, 16) = EG_KostenStarterAlt (TextBox)
Zusammenfassung_Beleuchtung.Cells(z, 17) = EG_ZeitLMAlt (TextBox)
Zusammenfassung_Beleuchtung.Cells(z, 18) = EG_ZeitVGAltNeu (TextBox)
Zusammenfassung_Beleuchtung.Cells(z, 19) = EG_KostenHMAlt (TextBox)
Zusammenfassung_Beleuchtung.Cells(z, 20) = EG_LeuchtenAnzahlNeu (TextBox)
Zusammenfassung_Beleuchtung.Cells(z, 21) = EG_AnzahlLMNeu (ComboBox)
Zusammenfassung_Beleuchtung.Cells(z, 22) = EG_BezeichnungLMNeu (TextBox)
Zusammenfassung_Beleuchtung.Cells(z, 23) = EG_LebensdauerLMNeu (TextBox)
Zusammenfassung_Beleuchtung.Cells(z, 24) = EG_WattLMNeu (TextBox)
Zusammenfassung_Beleuchtung.Cells(z, 25) = EG_VGNeu (TextBox)
Zusammenfassung_Beleuchtung.Cells(z, 26) = EG_AnzahlVGNeu (TextBox)
Zusammenfassung_Beleuchtung.Cells(z, 27) = EG_AnzahlStarterNeu (TextBox)
Zusammenfassung_Beleuchtung.Cells(z, 28) = EG_KostenLeuchtenNeu (TextBox)
Zusammenfassung_Beleuchtung.Cells(z, 29) = EG_KostenEEFVGNeu (TextBox)
Zusammenfassung_Beleuchtung.Cells(z, 30) = EG_KostenLMNeu (TextBox)
Zusammenfassung_Beleuchtung.Cells(z, 31) = EG_KostenStarterNeu (TextBox)
Zusammenfassung_Beleuchtung.Cells(z, 32) = EG_ZeitAltNeuNeu (TextBox)
Zusammenfassung_Beleuchtung.Cells(z, 33) = EG_ZeitLMNeu (TextBox)
Zusammenfassung_Beleuchtung.Cells(z, 34) = EG_KostenHMNeu (TextBox)
Zusammenfassung_Beleuchtung.Cells(z, 35) = EG_KostenTechniker (TextBox)
Zusammenfassung_Beleuchtung.Cells(z, 36) = EG_CO2 (TextBox)
Zusammenfassung_Beleuchtung.Cells(z, 37) = EG_KostenkWh (TextBox)
End Sub

Danke sagt Ole

Hallo Ole,

Ich habe zur Übernahme der Daten folgenden Code geschrieben;
bekomme aber immer nur einen Laufzeitfehler. Wo steckt der
Fehler. Kann mir da einer behilflich sein?

z = Range(„A65565“).End(xlUp).Row + 1

kann verdächtig sein bei Excel

Hallo Reinhard,

danke, das war was ich brauche. Übrigens arbeite ich mit Excel 2010, die möglichen Zeilen sind natürlich allgemein 65.536, wobei seit 2007 es wohl 1.048.578 Zeilen sin sollte, wenn ich mich recht erinnere.

Danke nochmals

Gruß Ole

danke, das war was ich brauche. Übrigens arbeite ich mit Excel
2010, die möglichen Zeilen sind natürlich allgemein 65.536,
wobei seit 2007 es wohl 1.048.578 Zeilen sin sollte, wenn ich
mich recht erinnere.

Hallo Ole,

k.A. da müßte ich in XL 2007 nachschauen :smile:
deine Zahl kommt in etwa hin, ich merk mir da nur knapp über 1 Mio.

Was ich gut fand daß du die Zeilenvariable als Long deklariert hast.
Das klappt dann in allen Versionen auch in XL 97.
Integer geht nur bis 32xxx was bei unter XL 2007 bei Zeile 40.000 zu einem
Fehler führen könnte.
Gewöhn dir es also bitte an, ohne Nachdenken wieviele Zeilen es im Blatt gibt
Zeilenvariable immer Long deklarieren.

Ich mache das nahezu immer, auch die Spaltenvariable auf Long zu setzen.

So, zu deinem Fehler, mir unklar warum der weg ist. Deine Codezeile
mit 65555 oder was das war müßte doch ohne Fehler in XL 2010 laufen!?

Gruß
Reinhard

Hallo Reinhard,

ich habe die Übernahme der Daten aus der UserForm mit folgendem Code gelöst.

Private Sub cmdUebernahmeEingabedaten_Click()
Dim lngIndex As Long
With Tabelle10
With .Cells(.Rows.Count, 1).End(xlUp).Offset(1)
.Value = EG_Raumname.Value
.Offset(, 1).Value = EG_LfdNrFuerLeuchte.Value
.Offset(, 2).Value = EG_Startjahr.Value
.Offset(, 3).Value = EG_LeuchtenAnzahlAlt.Value
.Offset(, 4).Value = EG_AnzahlLMAlt.Value
.Offset(, 5).Value = EG_BezeichnungLMAlt.Value
.Offset(, 6).Value = EG_LebensdauerLMAlt.Value
.Offset(, 7).Value = EG_WattLMAlt.Value
.Offset(, 8).Value = EG_VGAlt.Value
.Offset(, 9).Value = EG_AnzahlVGAlt.Value
.Offset(, 10).Value = EG_AnzahlStarterAlt.Value
.Offset(, 11).Value = EG_BetriebsstundenTag.Value
.Offset(, 12).Value = EG_BetriebstageJahr.Value
.Offset(, 13).Value = CDbl(EG_KostenLMAlt.Value)
.Offset(, 14).Value = EG_KostenEEFVGAlt.Value
.Offset(, 15).Value = EG_KostenStarterAlt.Value
.Offset(, 16).Value = EG_ZeitLMAlt.Value
.Offset(, 17).Value = EG_ZeitVGAltNeu.Value
.Offset(, 18).Value = EG_KostenHMAlt.Value
.Offset(, 19).Value = EG_LeuchtenAnzahlNeu.Value
.Offset(, 20).Value = EG_AnzahlLMNeu.Value
.Offset(, 21).Value = EG_BezeichnungLMNeu.Value
.Offset(, 22).Value = EG_LebensdauerLMNeu.Value
.Offset(, 23).Value = EG_WattLMNeu.Value
.Offset(, 24).Value = EG_VGNeu.Value
.Offset(, 25).Value = EG_AnzahlVGNeu.Value
.Offset(, 26).Value = EG_AnzahlStarterNeu.Value
.Offset(, 27).Value = EG_KostenLeuchtenNeu.Value
.Offset(, 28).Value = EG_KostenLMNeu.Value
.Offset(, 29).Value = EG_KostenStarterNeu.Value
.Offset(, 30).Value = EG_ZeitAltNeuNeu.Value
.Offset(, 31).Value = EG_ZeitLMNeu.Value
.Offset(, 32).Value = EG_KostenHMNeu.Value
.Offset(, 33).Value = EG_KostenTechniker.Value
.Offset(, 34).Value = EG_CO2.Value
.Offset(, 35).Value = EG_KostenkWh.Value
End With
End With
End Sub

soweit ja so gut. Ich bekomme einfach keine Lösung hin, wie ich den Text aus den TextBoxes (insgesamt 29) in Zahlen wandeln kann. In der Excel-Tabelle (Tabelle10) habe ichimmer die Fehlermeldung.
Komme nicht weiter.
Danke und Gruß im Voraus
Ole aus Rostock

.Offset(, 34).Value = EG_CO2.Value
.Offset(, 35).Value = EG_KostenkWh.Value
End With
End With
End Sub

soweit ja so gut. Ich bekomme einfach keine Lösung hin, wie
ich den Text aus den TextBoxes (insgesamt 29) in Zahlen
wandeln kann. In der Excel-Tabelle (Tabelle10) habe ichimmer
die Fehlermeldung.

Hallo Ole,

ich zähle da 36 Elemente , sind 7 davon keine Textboxen?
Wenn nein, wieso 29, wenn ja, wie soll das jmd. im Code erkennen?

Ich stelle mal fest erst jetzt, nach vielen im Nachhinein unnötigen Beitragsfolgen
ist jetzt bekannt.
deine Version Excel 2010
Die Fehlermeldung : Laufzeitfehler 13, Typen unverträglich
Die Codezeilen wo der Fehler kommt.
Bitte sowas gleich angeben. Du schadest dir dadurch selbst.

Eine Textbox liefert immer einen Textwert zurück.
CDbl(…) macht aus dem Klammerinhalt einen Zahlwert.
Ist das nicht möglich da der Textwert nicht in einen Zahlwert unzuwandeln ist kommt
genau dieser Fehler.

Wenn dir das nicht reicht um den Fehler auszubügeln so benötige ich eine Mappe
mit gefüllter UF.
Hochladen kannste die Mappe mit file-upload, s. FAQ:2606

Hier meine Demomappe:
http://www.file-upload.net/download-8093819/kwUserfo…

Gruß
Reinhard