Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1784to1788
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Problem mit Formular (OptionButton)

Problem mit Formular (OptionButton)
16.10.2020 16:31:26
Anna
Hallo ihr Lieben,
ich habe folgendes Problem:
Ich habe euch die Tabelle hochgeladen, wenn man auf den Button "Buchen" klickt kommt ein User Formular. Ich möchte, wenn der User einen Betrag eingibt, z.B. 10€, und er dann entweder 5% oder 16% auswählt, dass dann entsprechend entweder in die G Spalte für 5% oder in die H Spalte für 16% eingepflegt wird.
Z.B. Ich gebe beim Betrag 10€ ein und klicke auf 5%, dann wird in der "G" Spalte 0,50 erscheinen, also 10*0,05.
Kann mir da jemand helfen? Bzw. irgendwie fängt mein Code für das "automatisch untereinander" immer bei A4 an, obwohl A3 frei ist. Liegt es an der Farbe? Wie dem auch sei, wer mir da auch behilfiich sein kann, großen Dank.
https://www.herber.de/bbs/user/140915.xlsm
Danke.

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Problem mit Formular (OptionButton)
16.10.2020 17:21:33
Felix
Hallo Anna,
Private Sub cmd_Click()
Dim rng As Range
Set rng = Sheets("Ein").Range("A65536").End(xlUp).Offset(1, 0)
With rng
' .Offset(6, 0) = Format(txtDatum, "dd.mm.yyyy")
.Offset(0, 8) = TextBox7.Text
.Offset(0, 5) = TextBox5.Text
'.Offset(0, 0) = txtObjekt.Text
' .Offset(0, 8) = TextBox2.Text
End With
Unload Me
End Sub

Das ist dein bisheriger Code zum einfügen des Datensatzes. Theoretisch funktionierts und es scheiden sich auch die Geister welche Möglichkeit die Eleganteste ist.
Ich habe mich daran gewöhnt die UsedRange.Rows.Count +1 Methode zu nutzen. Dabei prüft Excel welcher Bereich des Tabellenblatts benutzt ist, zählt die Zeilen und gibt dann einen Wert zurück. Dadurch kann man die nächste freie Zeile ermitteln.
Private Sub cmd_Click()
Dim zeile As Long
zeile = Sheets("Ein").UsedRange.Rows.Count + 1
With Sheets("Ein")
.Cells(zeile, 1) = TextBox1.Text
.Cells(zeile, 2) = TextBox2.Text
.Cells(zeile, 3) = TextBox3.Text
.Cells(zeile, 4) = TextBox4.Text
.Cells(zeile, 5) = Month(CDate(TextBox4.Text))
.Cells(zeile, 6) = TextBox5.Text
If OptionButton1.Value = True Then .Cells(zeile, 7) = TextBox5.Text * 0.05
If OptionButton2.Value = True Then .Cells(zeile, 8) = TextBox5.Text * 0.16
.Cells(zeile, 9) = TextBox7.Text
End With
Unload Me
End Sub
Das wäre mein Alternativcode, die Steuersätze hab ich mit einer If-Funktion gelöst. Viel Spaß mit dem Code :)
Gruß Felix
Anzeige
AW: Problem mit Formular (OptionButton)
16.10.2020 17:28:45
Daniel
Hi
das hängt mit deiner "intelligenten Tabelle" zusammen.
wenn die auflöst und in einem "normalen" Tabellenblatt arbeitest, dann funktioniert der Code richtig.
ich vermute mal, dass in der "intelligenten Tabelle" die Überschriftenzeile gesondert behandelt wird.
also entweder die "intelligente Tabelle" auflösen, oder eine Prüfung einbauen und das Offset nur ausführen, wenn die Zelle nicht leer ist, ansonsten in dieser Zeile bleiben.
Set rng = Sheets("Ein").Range("A65536").End(xlUp)
if rng.value  "" the set rng = rng.Offset(1, 0)
dir ist aber schon klar, dass Spalte A dann immer mit gefüllt werden muss, wenn auch die nächsten Buchungen richtig eingetragen werden sollen?
Gruß Daniel
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige