ich übe gerade eine Userform zu erstellen . Momentan hab ich eine Userform womit ich z.B. die Geburtstage meiner Bekannten in eine Tabelle eintragen möchte. Ich benutze zurzeit dafür folgenden Code :
Private Sub Button_Take_Click() 'Eingabe der Schaltfläche in die Arbeitsmappe übernehmen
Dim last As Integer last = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row + 1
Das blöde ist das die Tabelle immer im oberen Eck beginnt (A1 bis C1 ) . Ich würde gerne die Tabelle im mittleren Bereich haben z.B. (E13 bis G13). Meine Frage ist nun wie kann ich den Code umstellen das meine Tabelle auch mitten im Blatt sein kann ? Und wäre es auch möglich die Tabelle von Links nach rechts zu befüllen ? Ich hab mal eine Beispiel Datei angefertigt . Hoffe es ist soweit verständlich was ich meine :)
dann prüf doch einfach welchen Wert deine Variable last hat und wenn die kleiner als deine gewünschte Startzeile ist, dann setzte sie auf den entsprechenden Wert. Wenn du erst in Spalte E anfangen willst, dann kannst du doch einfach den Spaltenwert entsprechend wählen.
Im gezeigten Beispiel wird der erste Datensatz in E13 / F13 / G13 erfasst.
Was du mit "von links nach rechts" meinst ist mir nicht klar. Deine Daten werden doch von links nach rechts in die Zellen geschrieben.
Code:
Private Sub Button_Take_Click() 'Eingabe der Schaltfläche in die Arbeitsmappe übernehmen
Dim last As Integer last = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row + 1
If last < 13 Then last = 13 ActiveSheet.Cells(last, 5) = CDate(meinFormular.Textbegriff1) ' Geburtsdatum = A1 ActiveSheet.Cells(last, 6) = meinFormular.Textbegriff2.Value ' Nachname = B1 ActiveSheet.Cells(last, 7) = meinFormular.Textbegriff3.Value ' Vorname = C1
End Sub
Gruß Werner
Folgende(r) 1 Nutzer sagt Danke an Werner.M für diesen Beitrag:1 Nutzer sagt Danke an Werner.M für diesen Beitrag 28 • Andreas86
Habe ein 2 Tabellenblatt gemacht von wo aus ich meine Userform starten kann. Dort sollen dann die Daten eingegeben werden und anschließend im ersten Tabellenblatt eingetragen werden . Hab den Code wie folgt umgeschrieben :
Code:
Private Sub Button_Take_Click() 'Eingabe der Schaltfläche in die Arbeitsmappe übernehmen
Dim last As Integer last = Worksheets("Tabelle1").Cells(Rows.Count, 1).End(xlUp).Row + 1
Stichwort Referenzierung. Um auf das richtige Blatt zu referenzieren muss vor jedes Range Objekt (Range, Cells, Rows) das Blatt geschrieben werden. Da das eine Menge Schreibarbeit ist, macht man das besser mit einer With - End With Klammer. Da wird dann durch einen Punkt vor den Range Objekten (Range, Cells, Rows) auf das Blatt referenziert, das im With angegeben ist.
Code:
Private Sub Button_Take_Click() 'Eingabe der Schaltfläche in die Arbeitsmappe übernehmen Dim last As Integer
With Worksheets("Tabelle1") last = .Cells(.Rows.Count, 1).End(xlUp).Row + 1 If last < 13 Then last = 13 .Cells(last, 5) = CDate(meinFormular.Textbegriff1) ' Geburtsdatum = A1 .Cells(last, 6) = meinFormular.Textbegriff2.Value ' Nachname = B1 .Cells(last, 7) = meinFormular.Textbegriff3.Value ' Vorname = C1 End With
ja genau daran lag es :) Ich hatte eigentlich die Tabelle hochgeladen aber irgendwie finde ich die nicht :( sorry hatte auch nicht mehr darauf geachtet ob die Tabelle angezeigt wird . aber jetzt funktioniert es ja :)
Ach jetzt weiß ich warum die Tabelle nicht hochgeladen wurde hatte vergessen auf hinzufügen zu klicken hatte die Datei nur ausgewählt