Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1004to1008
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
Mit Userform Daten erfassen u. Tabelle füllen
24.08.2008 19:01:00
Bernhard
Hallo liebe Excelfreunde!
Wer hilft mit auf die Sprünge? Habe mir eine Userform (ergoogelt) gebastelt, mit der ich in der Endausbaustufe Daten erfassen will und diese anschliessend mit einem Klick auf "OK"in eine Tabelle eintragen will. Dabei habe ich folgende Probleme, die ich als VBA-Greenhorn noch nicht hinbekomme.
1. Wie kann ich bereits in einem Textfeld das Format auf Zahlen ändern? Wenn überhaupt möglich. In der Tabelle, die mit den Daten gefüllt wird, soll mit den Zahlen weitergerechnet werden.
2. Wie nutze ich die Optionsfelder - Kauf bzw. Verkauf? Wenn Optionsfeld Kauf aktiviert ist, soll ein "B" in die entsprechende Spalte der Tabelle eingetragen werden und umgekehrt ein "S" für Verkauf.
Ich hoffe, ich habe es verständlich erklärt. Zum besseren Verständnis habe ich eine Beispieldatei hochgeladen.
https://www.herber.de/bbs/user/54861.xls
In der Hoffnung auf Eure Hilfe.
Gruss
Bernhard

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: zu: nur Zahlen zulassen in Textbox
24.08.2008 19:42:23
hary
Hallo Bernard
Kannst Du so machen wie in den Code, oder Du setzt den entsprechenden Code gleich in den Code der Optionsbutton ein. Hier hast Du wenigsten schon mal B und S.

Private Sub cmd_OK_Click()
If opt_Buy = True Then
Sheets(1).Range("E65536").End(xlUp).Offset(1, 0) = "B"
Sheets(1).Range("A65536").End(xlUp).Offset(1, 0) = UserForm1.cbo_Datum
Sheets(1).Range("B65536").End(xlUp).Offset(1, 0) = UserForm1.txt_Artikelnr
Sheets(1).Range("C65536").End(xlUp).Offset(1, 0) = UserForm1.txt_Artikelbezeichnung
Sheets(1).Range("D65536").End(xlUp).Offset(1, 0) = UserForm1.txt_Anzahl
End If
If opt_Sell = True Then
Sheets(1).Range("E65536").End(xlUp).Offset(1, 0) = "S"
Sheets(1).Range("A65536").End(xlUp).Offset(1, 0) = UserForm1.cbo_Datum
Sheets(1).Range("B65536").End(xlUp).Offset(1, 0) = UserForm1.txt_Artikelnr
Sheets(1).Range("C65536").End(xlUp).Offset(1, 0) = UserForm1.txt_Artikelbezeichnung
Sheets(1).Range("D65536").End(xlUp).Offset(1, 0) = UserForm1.txt_Anzahl
UserForm1.txt_Anzahl = ""
cmd_OK.Enabled = False
txt_Artikelnr.SetFocus
txt_Artikelbezeichnung.SetFocus
txt_Anzahl.SetFocus
End If
End Sub


Bei Eingaben kannst Du, soviel ich weiss, die Eingabe durch IsNumeric oder Not IsNumeric einschraenken.
Gruss Hary

Anzeige
Blatt sollte aber mit Namen referenziert werden!
24.08.2008 20:29:34
Matthias
Hallo Hary
Sollte sich die Reihenfolge der Tabelleblätter einmal ändern durch Hinzufügen , Kopieren oder Verschieben
wird immer das "erste Tabellenblatt" zum Eintragen genutzt.
Wird also Tabelle1 hinter Tabelle2 verschoben, so wird Tabelle2 = Sheets(1)
War Dir das klar ?


es muss auch nicht alles doppelt geschrieben stehen.
so reicht schon ;o)
(also nicht Sheets(1) - sondern ... )



Private Sub cmd_OK_Click()
WorkSheets("Tabelle1").Range("A65536").End(xlUp).Offset(1, 0) = UserForm1.cbo_Datum
WorkSheets("Tabelle1").Range("B65536").End(xlUp).Offset(1, 0) = UserForm1.txt_Artikelnr
WorkSheets("Tabelle1").Range("C65536").End(xlUp).Offset(1, 0) = UserForm1. _
txt_Artikelbezeichnung
WorkSheets("Tabelle1").Range("D65536").End(xlUp).Offset(1, 0) = UserForm1.txt_Anzahl
If opt_Buy = True Then WorkSheets("Tabelle1").Range("E65536").End(xlUp).Offset(1, 0) = "B"
If opt_Sell = True Then WorkSheets("Tabelle1").Range("E65536").End(xlUp).Offset(1, 0) = "S"
UserForm1.txt_Anzahl = ""
cmd_OK.Enabled = False
txt_Artikelnr.SetFocus
txt_Artikelbezeichnung.SetFocus
txt_Anzahl.SetFocus
End Sub




oder so:
(gefällt mir persönlich besser - ist Geschmackssache)

Private Sub cmd_OK_Click()
With WorkSheets("Tabelle1").Range("A65536").End(xlUp)
.Offset(1, 0) = UserForm1.cbo_Datum
.Offset(1, 1) = UserForm1.txt_Artikelnr
.Offset(1, 2) = UserForm1.txt_Artikelbezeichnung
.Offset(1, 3) = UserForm1.txt_Anzahl
   If opt_Buy = True Then .Offset(1, 4) = "B"
If opt_Sell = True Then .Offset(1, 4) = "S"
End With
UserForm1.txt_Anzahl = ""
cmd_OK.Enabled = False
txt_Artikelnr.SetFocus
txt_Artikelbezeichnung.SetFocus
txt_Anzahl.SetFocus
End Sub




Userbild
Anzeige
AW: Blatt sollte aber mit Namen referenziert werden!
24.08.2008 20:44:09
Bernhard
Hallo Matthias,
auch Dir ein Dankeschön für Deine Hilfe. Der letzte Hinweis macht die Sache noch besser und einfacher. Kennst Du noch eine andere Möglichkeit die Zahlen - die ja Text sind - in der Zieltabelle in Zahlen umzuwandeln? (Ohne Multiplikation mit 1?)
Nochmals Danke und Gruss nach Sachsen
Bernhard
= CLng(UserForm1.txt_Anzahl)
24.08.2008 20:53:00
Matthias
Hallo
als Beispiel:

Private Sub cmd_OK_Click()
With Worksheets("Tabelle1").Range("A65536").End(xlUp)
.Offset(1, 0) = UserForm1.cbo_Datum
.Offset(1, 1) = UserForm1.txt_Artikelnr
.Offset(1, 2) = UserForm1.txt_Artikelbezeichnung
  .Offset(1, 3) = CLng(UserForm1.txt_Anzahl)
If opt_Buy = True Then .Offset(1, 4) = "B"
If opt_Sell = True Then .Offset(1, 4) = "S"
End With
UserForm1.txt_Anzahl = ""
cmd_OK.Enabled = False
txt_Artikelnr.SetFocus
txt_Artikelbezeichnung.SetFocus
txt_Anzahl.SetFocus
End Sub


so sollte es klappen
Gruß Matthias

Anzeige
AW: = CLng(UserForm1.txt_Anzahl)
24.08.2008 21:05:00
Bernhard
Hi Matthias,
ich bin überzeugt, dass das funktioniert mit dem Code.........aber heute nicht mehr. Ich hocke heute schon zu lange vor der Kiste. Also werde es erst morgen testen.
Aber trotzdem herzlichen Dank für Deine Hilfe!!!!!!!!!!
Grüsse
Bernhard
AW: zu: nur Zahlen zulassen in Textbox
24.08.2008 20:37:34
Bernhard
Hi Hary,
danke! Das ist die Lösung für das Optionsfelder Problem. Da komme ich jetzt weiter.
Gruss
Bernhard
AW: Danke Matthias
24.08.2008 20:47:00
hary
Hast recht. Dein letzter Code gefaellt mir auch besser. Bin noch nicht auf dem level von Dir und anderen hier im Forum. Machmal etwas umstaendlich ;-). Deshalb immer dankbar fuer verbesserungen.
Gruss Hary
Anzeige

302 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige