Supportnet Computer Supportnet Games Supportnet Kochen Explipedia
Login: guestBesucher online: 313
Supportnet Computerforum
SUPPORT
Home
Forum
Tipps & Infos
Blitz Angebote
Members
Hilfe
Video

TOP THEMEN
SSD Test
Alles über SSDs

Android Tipps
iPad Tipps
Google Tipps
Windows 8 FAQ
Windows 7 FAQ
E-Mail FAQ
Netzwerk FAQ
Festplatten FAQ
Datenrettung FAQ
Bildbearbeitung FAQ

Top iPhone Apps
Computer Einsteiger
Die 5 besten...
Explipedia
Themen
Direktlinks

Neue Einträge
News einsenden News einschicken
Tipps einsenden Tipp einschicken

SN-LINKS

Suche
Befreundete Seiten
Top Seiten

Supportnet/Forum/Tabellenkalkulation



Supportnet/Forum/Tabellenkalkulation
von Stanley69 vom 28.12.2017, 16:50 Diese Seite den Supportnet Favoriten hinzufügen  Mißbrauch, Beleidigungen und Blödsinn den Moderatoren melden


Keglerprogramm, Über und Unter ermitteln

 (745 Hits)

Hallo zusammen, nach langem Suchen bin ich wohl auf die richtige Seite gekommen und ich hoffe, dass mir jemand helfen kann. Mein Zuhause ist eigentlich Excel und ich habe den Schritt gewagt mich in der VBA_Sprache anzusiedeln.

Sachverhalt:

Ich habe in VBA eine User Form mit Kegler Daten und mehreren TextBoxen (60 Wurf) angelegt.
Meine Probleme sind es zurzeit, dass in Excel die Uhrzeit (19:30) eingegeben wird. In VBA wird diese als Dezimalzahl angezeigt. Ich habe schon alles versucht, aber ich bekomme das nicht hin.

Ferner habe ich für die 60 Würfe je Kegler eine User Form angelegt.
TextBox 14 - Textbox23 werden mit Daten gefüllt.
In der TextBox 23 wird die Summe der 10 TextBoxen eingestellt.
Private Sub TextBox15_Change()

Me.TextBox24 = Val(Me.TextBox14) + Val(Me.TextBox15) + Val(Me.TextBox16) + Val(Me.TextBox17) + Val(Me.TextBox18) + Val(Me.TextBox19) + _Val(Me.TextBox20) + Val(Me.TextBox21) + Val(Me.TextBox22) + Val(Me.TextBox23)
End Sub

In der TextBox 24 will ich eine (Über/Unter Summe -70) einstellen.
Also Ergebnis TextBox (24-70), in der TextBox 25 soll dann die Differenz (80-70= +10) stehen.
Das bekomme ich nicht hin.

Kann mir da jemand unter die Arme greifen?


Antwort schreiben 50 Bonuspunkte

Antworten...
Antwort 1 von xlKing vom 30.12.2017, 11:13 Mißbrauch, Beleidigungen und Blödsinn den Moderatoren melden

Hallo Stanley,

also mit den Regeln beim Kegeln kenn' ich mich (noch) nicht so
aus. Bin mehr der Bowling-Typ. Aber wenn du mir etwas hilfst,
bekommen wir das bestimmt gemeinsam hin.

Das Problem mit der Uhrzeit ist schnell gelöst. z.B:
TextBox1.Text = Format(Range("B10").Value, "hh:mm")

Das Problem mit der Summe, hast du sicher schon selbst gelöst.
Schließlich verwendest du bereits die Funktion Val() welche Text in
Zahlen umwandelt, damit man mit ihnen rechnen kann.

Das Me kannst du hier weglassen, das verweist auf das Modul, in
dem der Code steht (hier ein Userform). Das wird aber nur selten
benötigt. Dafür solltest du die Berechnung auslagern, da du das
Change-Event jeder Textbox ansprechen musst. Hier ein Beispiel:

Private Sub TextBox14_Change()
Berechnen
End Sub

Private Sub TextBox15_Change()
Berechnen
End Sub

Private Sub TextBox16_Change()
Berechnen
End Sub

Sub Berechnen()
TextBox24 = Val(TextBox14) + Val(TextBox15) + Val(TextBox16) - 70
TextBox25 = Val(80 + TextBox24)
End Sub

Was in Textbox 25 stehen soll hab ich noch nicht ganz kapiert. Ist
das so richtig? Denn Summe (z.B. 80) - 70 = 10 steht schon in
Textbox 24.

Mr. K.


Antwort noch nicht bewertet
Antwort 2 von xlKing vom 30.12.2017, 11:22 Mißbrauch, Beleidigungen und Blödsinn den Moderatoren melden

Ich meinte natürlich TextBox25 = 80 + Val(TextBox24)

Antwort noch nicht bewertet
Antwort 3 von Stanley69 vom 04.01.2018, 18:10 Mißbrauch, Beleidigungen und Blödsinn den Moderatoren melden

Hei xlKing,
vielen lieben Dank für deine Antwort.

Wie schon gesagt, bin ich ein Anfänger in Sachen VBA-Excel. Ich habe deine Antworten gelesen und auch versucht umzusetzen. Zur Zeit habe ich da einige Schwierigkeiten.

Das mit der Uhrzeit habe ich kapiert, nur ich weiß nicht von ich das einfügen soll.
Meine Code zur Initialisierung lautet:

Private Sub UserForm_Initialize()
'Initialisierung'
Dim i As Integer
For i = 2 To Cells(Cells.Rows.Count, 1).End(xlUp).Row
Me.ComboBox1.AddItem Cells(i, 1) & "; " & Cells(i, 2) & ", " & Cells(i, 3)
Next i
Me.ComboBox1.ListIndex = 0
End Sub
Im Feld ("m2") steht die Uhrzeit, zur Zeit 0,01.

Muss ich das hier einbauen?

Richtig ist, dass das Problem mit der Summe gelöst ist.

Wo ich ich im Moment schwimme, wo und wie lagert man denn aus?

Das mit der Berechnung meine ich so:
Der Kegler hat 60 Würfe und die 7 ist der Schnitt. Je 10er Runde wird gerechnet.
10 x 7 = 70 - Schnitt (70) = Über/Unter "0"
10 Würfe, insgesamt 78 - Schnitt (70) = Über "+8". Das soll in die Textbox25 geschrieben werden.

Wäre es vielleicht eine Lösung, wenn ich dir meine Datei einmal zuschicken könnte und du dir davon ein Bild machen könntest.
Dann wäre die Frage, wie schickt man die Datei rüber?

Wärst du dabei oder wäre das zuviel verlangt

Stanley69


Antwort noch nicht bewertet
Antwort 4 von xlKing vom 07.01.2018, 18:00 Mißbrauch, Beleidigungen und Blödsinn den Moderatoren melden

Hallo Stanley,

End Sub schließt immer ein Makro ab. Da ich annehme, dass du die Uhrzeit nicht in der combobox sehen willst (schließlich fügst du nur die Spalte A bis C hinzu) schreibe die Zeile mit dem Textboxnamen deiner Wahl direkt vor End Sub.

TextBox1.Text = Format(Range("M2").Value, "hh:mm")
End Sub

Übrigens solltest du die Zelle M2 über Rechtsklick --> Zellen formatieren ebenfalls auf Uhrzeit-Format umschalten.

Mit Auslagern meine ich, dass du aus einem Makro heraus auch ein anderes Makro aufrufen kannst. Das macht den Code übersichtlicher und spart Speicherplatz. Im Beispiel aus Antwort 1 ruft jedwede Änderung in den Felder Textbox 14, 15 und 16 ein das entsprechende Change-Ereignis auf in welchem lediglich steht, dass das Makro "Berechnen" ausgeführt werden soll, welches sich unterhalb befindet. Der Übersicht wegen, habe ich die restlichen Textboxen weggelassen. Diese kannst du nach gleichem Schema leicht selbst hinzufügen.

Das mit dem Mehr oder Weniger als 70 hab ich schon verstanden. In deiner Ausgangsfrage wolltest du das aber in Textbox 24 stehen haben. Ich vermute, dort willst du jetzt lieber die Gesamtsumme sehen? Macht ja auch mehr Sinn.

Vielleicht macht für weitere Hilfe ein kurzer Blick in die Datei tatsächlich mehr Sinn. Es sollten aber keine sensiblen Daten enthalten sein. Namen, Adressen etc. solltest du lieber mit Beispieldaten überschreiben.

Dateien hochladen kannst du z.B. hier:
https://workupload.com/

Gruß Mr. K.


Antwort noch nicht bewertet
Antwort 5 von Stanley69 vom 10.01.2018, 17:22 Mißbrauch, Beleidigungen und Blödsinn den Moderatoren melden

Hei Mr.K.,

vielen Dank für deine Zeilen. Ich habe meine Hausaufgaben gemacht und auch zum Teil gelöst.
Wie du mir schon geschrieben hast, zusammen werden wir wohl das Kind zum Laufen bringen.
Bitte schaue dir meine Datei "Königskegeln_Alt.xlsm" einmal an. Es würde mich freuen, wenn wir die Probleme lösen könnten.

Unter dem Tabellenblatt "Info" habe ich dir meine Fragen eingetragen.

Die Datei ist natürlich noch nicht fertig, aber im TB "Hollern 1+2" habe ich alles gepflegt.
Gruß
Stanley69


Antwort noch nicht bewertet
Antwort 6 von xlKing vom 10.01.2018, 19:23 Mißbrauch, Beleidigungen und Blödsinn den Moderatoren melden

Äh' wo ist die Datei? Den Link müsstest du schon auch dazu posten. Kannst du z.B. mit dem Button URL oder URL-Pop machen.

Gruß Mr. K.


Antwort noch nicht bewertet
Antwort 7 von Stanley69 vom 10.01.2018, 20:42 Mißbrauch, Beleidigungen und Blödsinn den Moderatoren melden

Hei Mr. K.,
ich habe eigentlich den o.a. Link benutzt.
Wie mache ich das denn mit dem URL oder Url/Pop?


Antwort noch nicht bewertet
Antwort 8 von Stanley69 vom 10.01.2018, 20:59 Mißbrauch, Beleidigungen und Blödsinn den Moderatoren melden

Hei Mr. K.,

wollen wir das über eine e-Mailadresse machen?
Gruß
Stanley69


Antwort noch nicht bewertet
Antwort 9 von xlKing vom 11.01.2018, 12:47 Mißbrauch, Beleidigungen und Blödsinn den Moderatoren melden

Hallo Stanley,

Die schreib ich hier lieber nicht rein. Du kannst das auch ohne Email-Adresse hochladen, dann erhältst du einen Link den du hier postest.
Kannst natürlich auch jeden anderen Filehoster verwenden. z.B. den hier.


Antwort noch nicht bewertet
Antwort 10 von Stanley69 vom 11.01.2018, 14:28 Mißbrauch, Beleidigungen und Blödsinn den Moderatoren melden

Hei Mr. K.,

hoffe, ich habe alles richtig gemacht.

http://filehorst.de/d/cAHEybHp

Datei von filehorst.de laden


Antwort noch nicht bewertet
Antwort 11 von xlKing vom 11.01.2018, 23:02 Mißbrauch, Beleidigungen und Blödsinn den Moderatoren melden

Hallo Stanley,

Das ist eine der wenigen Ausnahmen, die sich ohne VBA viel leichter realisieren lassen. Für deine Wünsche bietet Excel bereits die passenden Funktionen an. Im VBA muss man die erst erstellen. Schau dir mal alternativ diese Datei an.

Da du aber schon so viel Arbeit reingesteckt hast, und ich mich immer freue, wenn jemand sich mit VBA beschäftigt, hab ich auch an deiner Datei die gewünschten Anpassungen gemacht. Natürlich könnte man den Code noch viel eleganter gestalten. Aber du sollst ihn ja auch verstehen. Daher hab ich (auch aus Zeitgründen) nur ein paar Kleinigkeiten geändert.

Bei weiteren Fragen, nur zu.

Mr. K.


Antwort noch nicht bewertet
Antwort 12 von Stanley69 vom 12.01.2018, 17:46 Mißbrauch, Beleidigungen und Blödsinn den Moderatoren melden

Hei Mr. K.,
vielen Dank für deine Unterstützung in meinem Keglerprogramm. Ich habe mich riesig über deine Hilfestellung und die Lösungen gefreut. Mein nächster Step ist, über eine Menuemaske die jeweiligen Unterprogramme aufzurufen. Es wird nicht leicht werden, aber es macht mir sehr viel Spaß.
Sicherlich arbeite ich auch daran, die Programme eleganter zu schreiben, aber dazu fehlt noch das Wissen.
Meine Frage an dich wäre, könnte mann die Keglerergebnisse Würfe z.B. 1-10 auch über eine Schleife abarbeiten?
Gruß
Stanley


Antwort noch nicht bewertet
Antwort 13 von xlKing vom 14.01.2018, 17:31 Mißbrauch, Beleidigungen und Blödsinn den Moderatoren melden

Hallo Stanley,

wie gesagt, es gibt viele Möglichkeiten den Code zu gestalten. Von
ganz einfach über mittelschwer bis zu etwas komplizierter. Momentan
stehen wir irgendwo zwischen einfach und mittelschwer. Doch egal
wofür man sich entscheidet, was zählt ist am Ende das Ergebnis.

Welche Art von Schleife stellst du dir denn vor? Zurzeit werden die
Textboxen an ein Array in einer Function übergeben, und dort bereits
per Schleife durchgeprüft. Das hat den Vorteil, dass du nicht sämtliche
Nummern ändern musst, falls du mal einen Wurf-Spalte hinzufügst
oder löschst. Wenn du eine andere Art der Übergabe bevorzugst, dann
schreib sie einfach. Mir fällt dann schon was ein.

Gruß Mr. K.


Antwort noch nicht bewertet
Antwort 14 von Stanley69 vom 26.01.2018, 17:17 Mißbrauch, Beleidigungen und Blödsinn den Moderatoren melden

Hei Mr.K.,

habe ein paar Tage Pause aus gesundheitlichen Gründen machen müssen.
Bitte schauen Sie sich die neue Tabelle einmal an. Meinen Kommentar haben dort hineingeschrieben, war zu lag.

Mr.K. Die Datei ist verschlüsselt.

http://filehorst.de/d/cBanCmfj


Gruß
Stanley


Antwort noch nicht bewertet




Antwort schreiben
    Bitte einen 'Nickname' wählen.
Nickname:*
    (eMail-Adresse wird nicht veröffentlicht.)
eMail:
Nachricht: Ich möchte bei Antworten benachrichtigt werden.
    Hilfe zur Beitragsformatierung gibts [hier]
                   
Antwort:*
  Die Nutzungsbedingungen habe ich gelesen und akzeptiert.

MACHEN SIE IHRE WEBSITE ATTRAKTIVER
Sie haben eine eigene Website und wollen Ihre Besucher auf den Supportnet-Service aufmerksam machen? Kopieren Sie einfach den Quellcode in Ihre Seite und jeder Besucher Ihrer Seite kann direkt auf die Supportnet-Datenbank zugreifen.

My Supportnet


SUCHE

Gruppen im Forum
Betriebsysteme
Software
Hardware
Netzwerk
Programmierung
Sonstiges

Impressum © 1997-2018 Supportnet
Version: supportware 1.8.230E / 18.10.2010, Startzeit:Thu Apr 19 12:18:24 2018