Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

[UserForm] Daten aus Eingabemaske in Tabelle Übertragen
#1
Hallo miteinander,

also Excel-Frischling bin ich nicht. Aber was VBA angeht, da steig ich nicht durch und brauch eure Hilfe.

Ich habe eine Tabelle bei der verschiedenen Werte aus einer UserForm mit Textboxen, die in eine Tabelle übertragen werden sollen:

Mit meinen Codevarianten bekam ich erst einen Überlaufehler und mit diesem Code hier einen Objektfehler


Code:
Private Sub Button_Codierung_hinzufuegen_und_neu_Click()
'letzte freie Zeile suchen, Daten eintragen und Eingabemaske leeren
 
   Dim letztefreieZeile As String
   
   letztefreieZeile = Sheets("Historie").Cells(RowsCount, 1).End(xlUp).Row + 1
   
'Werte eintragen und Masken leeren

   Cells(letztefreieZeile, 4).Value = Text_Codierung_Byte.Value
   Cells(letztefreieZeile, 5).Value = Text_Codierung_Bit.Value
   Cells(letztefreieZeile, 6).Value = Text_Codierung_Beschreibung.Value
   Cells(letztefreieZeile, 7).Value = Text_Codierung_Wert_vorher.Value
   Cells(letztefreieZeile, 8).Value = Text_Codierung_geändert_auf.Value
   Cells(letztefreieZeile, 15).Value = Text_Codierung_Datum.Value
 
   Text_Codierung_Byte = ""
   Text_Codierung_Bit = ""
   Text_Codierung_Beschreibung = ""
   Text_Codierung_Wert_vorher = ""
   Text_Codierung_geändert_auf = ""
   Text_Codierung_Datum = Date

Eine zusammengefasste Übersicht der Tabelle habe ich als Anhang beigefügt. Wo ist mein Fehler? Huh


Angehängte Dateien Thumbnail(s)
   
Antworten Top
#2
Hallo,

bei der Suche nach der letzten belegten Zeile erhälst du als Ergebnis die Zeilennummer, also eine Zahl. Die kannst du nicht in eine String-Variable packen. Die Variable sollte als Long deklariert sein.

Code:
Private Sub Button_Codierung_hinzufuegen_und_neu_Click()
'letzte freie Zeile suchen, Daten eintragen und Eingabemaske leeren
 
   Dim letztefreieZeile As Long
   

  With Worksheets("Historie")
        letztefreieZeile = .Cells(.RowsCount, 1).End(xlUp).Row + 1
   
       'Werte eintragen und Masken leeren

        .Cells(letztefreieZeile, 4).Value = Me.Text_Codierung_Byte.Value
        .Cells(letztefreieZeile, 5).Value = Me.Text_Codierung_Bit.Value
        .Cells(letztefreieZeile, 6).Value = Me.Text_Codierung_Beschreibung.Value
        .Cells(letztefreieZeile, 7).Value = Me.Text_Codierung_Wert_vorher.Value
        .Cells(letztefreieZeile, 8).Value = Me.Text_Codierung_geändert_auf.Value
        .Cells(letztefreieZeile, 15).Value = Me.Text_Codierung_Datum.Value
  
        Me.Text_Codierung_Byte = ""
        Me.Text_Codierung_Bit = ""
        Me.Text_Codierung_Beschreibung = ""
        Me.Text_Codierung_Wert_vorher = ""
        Me.Text_Codierung_geändert_auf = ""
        Me.Text_Codierung_Datum = Date
  End With



Gruß Werner
Antworten Top
#3
Ok...

Hatte zunächst "Integer" verwendet und dabei gab es den Überlauffehler.

Mit deinem Code (Ich habe Am Ende noch End Sub hinzugefügt) bekomme ich:

"Laufzeitfehler '438': Objekt unterstützt diese Eigenschaft oder Methode nicht."


Angehängte Dateien
.xlsm   Mappe1-für-clever-excel.xlsm (Größe: 29,39 KB / Downloads: 9)
Antworten Top
#4
Hallo,

das geht bei intelligenten Tabellen so nicht.
Code:
Private Sub Button_Codierung_hinzufuegen_und_neu_Click()
'letzte freie Zeile suchen, Daten eintragen und Eingabemaske leeren
Dim letztefreieZeile As Long

With Worksheets("Historie")
    letztefreieZeile = .Cells.Find(What:="*", After:=Range("A1"), _
    SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row + 1

   'Werte eintragen und Masken leeren

    .Cells(letztefreieZeile, 4).Value = Me.Text_Codierung_Byte.Value
    .Cells(letztefreieZeile, 5).Value = Me.Text_Codierung_Bit.Value
    .Cells(letztefreieZeile, 6).Value = Me.Text_Codierung_Beschreibung.Value
    .Cells(letztefreieZeile, 7).Value = Me.Text_Codierung_Wert_vorher.Value
    .Cells(letztefreieZeile, 8).Value = Me.Text_Codierung_geaendert_auf.Value
    .Cells(letztefreieZeile, 15).Value = Me.Text_Codierung_Datum.Value

    Me.Text_Codierung_Byte = ""
    Me.Text_Codierung_Bit = ""
    Me.Text_Codierung_Beschreibung = ""
    Me.Text_Codierung_Wert_vorher = ""
    Me.Text_Codierung_geaendert_auf = ""
    Me.Text_Codierung_Datum = Date

 End With

End Sub



Gruß Werner
[-] Folgende(r) 1 Nutzer sagt Danke an Werner.M für diesen Beitrag:
  •
Antworten Top
#5
Super! Danke jetzt hat es funktioniert... aber da wäre ich nie darauf gekommen ...! Top! Dankeschön!
Antworten Top
#6
Hallo Werner und Andi,

eine Korinthenkacker-Frage:

Müßte die Variable nicht eigentlich "erstefreieZeile" heißen?

Die letzte ist doch normalerweise immer die 1048576ste.
[-] Folgende(r) 1 Nutzer sagt Danke an Rabe für diesen Beitrag:
  •
Antworten Top
#7
:19: Stimmt eigentlich ... macht mer Sinn ...
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste