UserForm zur Berechnung von Lotto Tipps in VBA

Diskutiere UserForm zur Berechnung von Lotto Tipps in VBA im Developer Network Forum im Bereich Hardware & Software Forum; Hy Volks, habe wieder mal ein Problem mit VBA, bin noch ein Anfänger also bitte nicht lachen. Folgendes: Ich möchte eine UserForm erstellen...
  • UserForm zur Berechnung von Lotto Tipps in VBA Beitrag #1
smog

smog

Bekanntes Mitglied
Dabei seit
04.10.2002
Beiträge
116
Reaktionspunkte
0
Hy Volks,

habe wieder mal ein Problem mit VBA, bin noch ein Anfänger also bitte nicht lachen.

Folgendes: Ich möchte eine UserForm erstellen bei der ich in ein Textfeld die Anzahl der gewünschten Lotto Tips eingebe und mir nach klick auf die Schaltfläche 6 aus 45 (Das is in Ö so) im Textfeld1 z.B 7. Tipps angezeigt werden.

Hab auch schon einen Code:

Private Sub CommandButton1_Click()
Dim z As Integer
Dim i As Integer
Dim strZwischen() As String
Dim ergebnis As Integer
If TextBox2.Text = "" Then
MsgBox ("Geben Sie unten bitte die gewünschte Anzahl der Tipps ein?")
End
End If
z = TextBox2.Text
For i = 1 To z
strZwischen(i) = zufallszahlen_1(45)
ergebnis = ergebnis & " Tipp " & i & "--" & strZwischen(i) & Chr(13) & Chr(10)
Next
TextBox1.Text = ergebnis
End Sub

zufallszahlen_1 ist eine Funktion die 6. verschiedene Zahlen von 1 bis 45 berechnet. Diese Funktion funktioniert auch.

Habe noch ein .jpeg angehängt damit man sieht wie es ungefähr aussehen soll.

Bitte nicht zu harte Kritik, wie gesagt bin noch ein Anfänger
Wenn jemand noch was wissen muss bitte fragen.

thx
mfg
 
  • UserForm zur Berechnung von Lotto Tipps in VBA Beitrag #2
N

Neptuns

Bekanntes Mitglied
Dabei seit
16.09.2003
Beiträge
999
Reaktionspunkte
0
Ort
Beteigeuze Fünf
Hab nur mal kurz drübergeschaut und ein paar Vorschläge in Rot gemacht:
Ersetze doch die Textbox1 durch eine Listbox. Du kannst es zwar auch mit der Textbox realisieren aber Listbox ist einfacher.


Code:
 Private Sub CommandButton1_Click()
Dim z As Integer [COLOR=Red]' Sollte eine String Variable sein weil der Inhalt der Textbox ein String ist[/COLOR]
Dim i As Integer
Dim strZwischen[COLOR=Red] As String  ' Muß kein Array sein[/COLOR]
Dim ergebnis As Integer '[COLOR=Red]Hier auch[/COLOR] [COLOR=Red]eine String Variable

[/COLOR] If TextBox2.Text = "" Then
    MsgBox ("Geben Sie unten bitte die gewünschte Anzahl der Tipps ein?")
    End ' [COLOR=Red]Aus dem End mach mal ein "Exit sub" dann bleibt die Anwendung offen und man kann dann direkt die Zahl eingeben.[/COLOR]
End If
z = TextBox2.Text
For i = [COLOR=Black]1[/COLOR] To z
    strZwischen = zufallszahlen_1(45)

'[COLOR=Red]Versuch das doch mal mit einer Listbox anstatt einem Textfeld1

list1.AddItem ("Tipp " & i & strZwischen)

[/COLOR]     ergebnis = ergebnis & " Tipp " & i & "--" & strZwischen(i) & Chr(13) & Chr(10) [COLOR=Red]' Wenn du eine Listbox nimmst brauchst du diese Zeile nicht[/COLOR]

Next

TextBox1.Text = ergebnis [COLOR=Red]' Die Zeile würde dann auch wegfallen[/COLOR]
End Sub
 
  • UserForm zur Berechnung von Lotto Tipps in VBA Beitrag #3
N

Neptuns

Bekanntes Mitglied
Dabei seit
16.09.2003
Beiträge
999
Reaktionspunkte
0
Ort
Beteigeuze Fünf
Hab dir mal kurz ein kleines File gemacht. Dürfte deine Zwecke erfüllen.
Hab => http://www.vbarchiv.net/archiv/tipp_details.php?pid=222
mal leicht verändert in eine Anwendung gepackt.
Source Code dazu wäre :

Code:
Private Sub Command1_Click()
 Dim zahltemp As String
 Dim druchgaenge As Integer
 
 On Error GoTo myErrHandler
 
 List1.Clear
 
 For druchgaenge = 1 To Text3.Text
    zahltemp = Zahlen
    List1.AddItem zahltemp
 Next druchgaenge
 Exit Sub
myErrHandler:
MsgBox ("Fast keine Fehlerbehandlung ;) Bitte Eingaben überprüfen!")
End Sub



Private Sub Command2_Click()
Unload Me
End Sub


Private Function Zahlen()
'Array für die gezogenen Lottozahlen
Dim Lottozahl() As Integer
'Sicherstellen, daß bei jedem Start wirklich
'eine neue Zufallszahl generiert wird
Randomize -Timer

'Insgesamt 6 Zufallszahlen ermitteln
Dim Ziehung As Integer
Dim i As Integer
Dim Result As Boolean
Dim Zahl As Integer

ReDim Lottozahl(Text4.Text)

Ziehung = 0


While Ziehung < Text4.Text
  Ziehung = Ziehung + 1
  Do
    'Zufallszahl 1..49
    Zahl = Int(Text2.Text * Rnd + 1)

    'Prüfen, ob Zufallszahl bereits "gezogen"
    Result = True
    For i = 1 To Ziehung - 1
      If Lottozahl(i) = Zahl Then
        Result = False: Exit For
      End If
    Next i
  Loop Until Result = True

  Lottozahl(Ziehung) = Zahl
Wend

'Lottozahlen anzeigen
Dim Msg As String

Msg = ""
For i = 1 To Text4.Text
  Msg = Msg & Format$(Lottozahl(i)) & "  "
Next i
Zahlen = Msg



End Function
 
  • UserForm zur Berechnung von Lotto Tipps in VBA Beitrag #4
smog

smog

Bekanntes Mitglied
Dabei seit
04.10.2002
Beiträge
116
Reaktionspunkte
0
Danke Neptuns für deine Mühe, hast mir sehr weitergeholfen!

Leider bin ich noch kein so guter Programmierer...

Eine kleine Frage hätte ich noch. Wenn ich die Ausgabe über ein Textfeld mache (was natürlich viel umständlicher ist) funktioniert es nicht das er mir den Absatz macht. Ich dachte das geht indem man die Formtierung & Chr(13) & Chr (10) dranhängt, ist dem denn nicht so?

Weiß vielleicht jemand gute VBA Seiten auf denen man Beschreibungen zu all den Variablen und Formatierungsrichtlinien findet, die Hilfe zu Office 2003 funktioniert bei mir irgendwie nicht.

Nochmal vielen vielen Dank an Neptuns, weiter so....

mfg
 
  • UserForm zur Berechnung von Lotto Tipps in VBA Beitrag #5
N

Neptuns

Bekanntes Mitglied
Dabei seit
16.09.2003
Beiträge
999
Reaktionspunkte
0
Ort
Beteigeuze Fünf
Naja jeder hat mal klein angefangen...Und als wirklich guten Programmierer würd ich mich auch nicht bezeichnen. Reicht aber für den Hausgebrauch...

Um mehrere Zeilen in ein Textfeld zu bekommen muß die Eigenschaft des Textfeldes "Multiline" auf true. Dies kannst du in den Eigenschaften des Textfeldes einstellen. Damit legst du erstmal fest das das Textfeld auch mehrere Zeilen unterstützt.

Code:
Text1.Text = "Zwei Zeilen" & vbCrLf & "in einem Textfeld"

Die 2 Seiten die man in Bezug auf VB nennen kann sind :
a) http://www.activevb.de/
b) http://www.vbarchiv.net/home/willkommen.php

Sind aber beides VB und nicht VBA Seiten.

Mal die wichtigsten Variablenarten.
Variablen Deklaration:
Byte => ganze Zahlen zwischen 0 und 255
Boolean => Wahrheitswerte (True, Fals)
Integer => ganze Zahlen zwischen -32768 und +32767
Long => ganze Zahlen zwischen -2147483648 und + 2147483647
Single => Fließkommazahlen mit 8 Stellen Genauigkeit
Double => Fließkommazahlen mit 16 Stellen Genauigkeit
String => Zeichenketten beschränkt nur durch den RAM des Rechners.


Auszug aus MSDN zu den Formatierungen :
vbCrLf => Chr(13) + Chr(10) Kombination aus Wagenrücklauf und Zeilenvorschub
vbCr => Chr(13) Wagenrücklaufzeichen
vbLf => Chr(10) Zeilenvorschubzeichen
vbNewLine => Chr(13) + Chr(10) Plattformspezifisches Zeilenumbruchzeichen; je nachdem, welches für die aktuelle Plattform geeignet ist
vbNullChar => Chr(0) Zeichen mit dem Wert 0
vbNullString => Zeichenfolge mit dem Wert 0 Nicht identisch mit der Null-Zeichenfolge (""); wird verwendet, um externe Prozeduren aufzurufen.
vbObjectError -2147221504 Benutzerdefinierte Fehlernummern sollten größer als dieser Wert sein. Zum Beispiel:
Err.Raise Number = vbObjectError + 1000
vbTab => Chr(9) Tabulatorzeichen
vbBack => Chr(8) Rückschrittzeichen
vbFormFeed => Chr(12) Nicht sinnvoll unter Microsoft Windows
vbVerticalTab => Chr(11) Nicht sinnvoll unter Microsoft Windows
 
  • UserForm zur Berechnung von Lotto Tipps in VBA Beitrag #6
smog

smog

Bekanntes Mitglied
Dabei seit
04.10.2002
Beiträge
116
Reaktionspunkte
0
Danke nochmal....

Werd jetzt mal ein wenig herumspielen...

mfg
 
Thema:

UserForm zur Berechnung von Lotto Tipps in VBA

ANGEBOTE & SPONSOREN

https://www.mofapower.de/

Statistik des Forums

Themen
213.180
Beiträge
1.579.174
Mitglieder
55.879
Neuestes Mitglied
stonetreck
Oben