Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1640to1644
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

Textfeldeingabe in UserForm für Turniertabelle

Textfeldeingabe in UserForm für Turniertabelle
04.09.2018 12:17:25
Michael
Hallo,
ich würde meine Userform gerne um folgende Funktion erweitern. Es wäre sehr hilfreich, wenn bei der Eingabe von bereits vorhandenen Namen der Name nicht jedes mal wieder komplett im Textfeld eingegeben werden muss, sondern nur die ersten 2 bis 3 Buchstaben bis der komplette Name im Textfeld der Userform erscheint.
(Also genau so wie es auch in einer normalen Excel-Tabelle wäre, nur eben im Textfeld der Userform)
https://www.herber.de/bbs/user/123730.xlsm
Hat jemand eine Idee?
Gruß
Michael

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Textfeldeingabe in UserForm für Turniertabelle
04.09.2018 12:36:32
Rudi
Hallo,
nimm eine Combobox
Gruß
Rudi
AW: Textfeldeingabe in UserForm für Turniertabelle
04.09.2018 13:04:36
Michael
Hallo Rudi,
vielen Dank für diesen Vorschlag, aber da sich am Ende jeden Monats ca 100 bis 130 verschiedene Namen in der Turniertabelle befinden, wäre ein Kombinationsfeld hier eindeutig unzweckmäßig und würde die Eingabe der Namen eher erschweren.
Gruß
Michael
AW: Textfeldeingabe in UserForm für Turniertabelle
04.09.2018 17:33:04
Robert
Hallo Michael,
wenn Du die ShowDropButtonWhen-Eigenschaft der Konbobox auf 0-fmShowDropButtonWhenNever stellst, kann man die Konbobox außer mit F4 nicht aufklappen. Dann klickt man rein und schreibt wie in einer Textbox, mit dem Unterschied, dass der erste Name der mit den bereits eingetippten Buchstaben beginnt, als Vorschlag angeboten wird.
Code zum Befüllen der Kombobox:
Private Sub UserForm_Initialize()
Me.ComboBox1.RowSource = "Homegametabelle!D6:D" & Sheets("Homegametabelle").Range("D" & Rows. _
Count).End(xlUp).Row
End Sub

Userbild
Gruß
Robert
Anzeige
AW: Textfeldeingabe in UserForm für Turniertabelle
05.09.2018 17:53:31
Michael
Hallo Robert,
das ist exakt genau das was ich benötige!!
Allerdings gibt es noch 2 Probleme. Ich habe damit angefangen Deinen Code am ersten Spieltag beim zweiten Turnier einzubauen. (Die Liste will ja beim ersten Turnier erstmal gefüllt werden)
Ich habe also das Textfeld von Platz 1, erster Spieltag, zweites Turnier durch eine ComboBox ersetzt.
Es klappt auch alles wie gewünscht, allerdings weiß ich leider nicht was ich verändern muß, damit auch die entsprechenden Punkte eingetragen werden, da ich leider kaum Ahnung von VBA habe.
Das zweite Problem war, dass das Einfügen eines zweiten Codes eine Fehlermeldung verursachte. (Mehrdeutiger Name:UserForm_Initialize)
Dieses Problem ist nun aber zufällig zumindest scheinbar gelöst, da ich ein " ' " voranstellte um das Problem für Dich sichtbar zu machen. Zumindest läuft alles wie gewünscht, nur das leider wie gesagt noch keine Punkte in die Liste eingetragen werden.
Hast Du eine Idee wie Dein Code in den bereits vorhandenen Code eingebaut werden kann, damit die Punkte in die Tabelle eingetragen werden?
https://www.herber.de/bbs/user/123787.xlsm
Gruß
Michael
Anzeige
AW: Textfeldeingabe in UserForm für Turniertabelle
05.09.2018 21:19:16
Robert
Hallo Michael,
ich habe Dein Formular mal etwas geändert. Bei Deinem Formular sind die einzelnen Formularfelder ja auf jeder Turnier- und Spieltag-Seite vorhanden. Das bedeutet, bei einer Änderung musst Du auf 10 (Spieltage) x 5 (Turniere) also auf 50 Seiten die Daten anpassen. So gibt es also z. B. 50 * 9 also 90 KomboBoxen, die eventuell angepasst werden müssen
Mit meinem Formular komme ich mit 9 KomboBoxen für die Spieler aus. Der Spieltag wird mit einer weiteren Kombobox, das Turnier mit OptionButtons ausgewählt. Dadurch brauche ich auch nur eine wenige Makros.
Schau Dir es mal an, vielleicht ist es was für Dich.
https://www.herber.de/bbs/user/123793.xlsm
Gruß
Robert
Anzeige
AW: Textfeldeingabe in UserForm für Turniertabelle
06.09.2018 17:37:25
Michael
Hallo Robert,
Dein Formular ist sehr viel besser als das was ich gemacht habe!!! (Die automatische Anpassung an unterschiedliche Anzahl von Spieltagen, die Übernahme vom Datum in das Formular, die bessere Übersichtlichkeit... GENIAL!!! Genau das was ich brauche!)
Finde ich richtig klasse von Dir, dass Du dir diese Arbeit gemacht hast!! Funktioniert alles perfekt! Vielen Dank dafür.
Es ist nur so, dass es im 3. Turnier für jeden Spieler die doppelte Anzahl an Punkten gibt und ich nirgendwo im Code sehe wo ich das verändern könnte. Könntest Du das bitte noch anpassen?
Wenn Du evtl. auch noch mein Sortierung-Makro so einbauen könntest, dass es ausgeführt wird wenn man auf "Punkte eintragen" klickt, wäre meine Tabelle perfekt.
Gruß
Michael
Anzeige
AW: Textfeldeingabe in UserForm für Turniertabelle
06.09.2018 19:40:43
Robert
Hallo Michael,
freut mich, wenn ich Dir helfen konnte. Deine zwei Wünsche kann man auch noch einbauen.
Dazu muss das Makro btnPunkte_Click an den roten Stellen ergänzt werden. Damit werden zum Einen die Punkte verdoppelt, wenn es sich um das Turnier 3 handelt zum anderen wird am Schluss das Makro Sortierung gestartet:
Private Sub btnPunkte_Click()
Dim x As Long, Loletzte As Long
Dim LoSpalte As Long, LoZeile
Dim LoTurnier As Long, LoSpieltag As Long
For x = 1 To 5
If Me.Controls("optTurnier" & x) = True Then
LoTurnier = x
Exit For
End If
Next x
LoSpalte = 8 + (Me.cmbSpieltag.ListIndex * 5) + LoTurnier
Loletzte = Cells(Rows.Count, 4).End(xlUp).Row + 1
For x = 1 To 9
If Me.Controls("cmbspieler" & x) = "" Then Exit For
LoZeile = Application.Match(Me.Controls("cmbspieler" & x), Range("D:D"), 0)
If IsError(LoZeile) Then
Range("D" & Loletzte) = Me.Controls("cmbSpieler" & x)
Cells(Loletzte, LoSpalte) = (11 - x) * IIf(optTurnier3, 2, 1)
Loletzte = Loletzte + 1
Call KomboSpielername
Else
Cells(LoZeile, LoSpalte) = (11 - x) * IIf(optTurnier3, 2, 1)
End If
Next
Call Sortierung
End Sub
Das Makro Sortierung musste ich auch noch leicht anpassen. Zum Einen wird der zu sortierende Bereich jetzt im Makro ermittelt für den Fall, dass vielleicht doch mehr Teilnehmer vorhanden sein sollten. Zum Anderen musste ich bei meinem Excel das Hinzufügen der Sortierschlüssel von Add2 auf Add ändern, bei Deiner Version ist aber vielleicht auch Add2 möglich. Die ersten 3 Codezeilen können übrigens auch entfallen.
Sub Sortierung()
' Sortierung Makro
' Sortiert die Gesamtpunktzahl und ordnet die Namen alphabetisch
' Tastenkombination: Strg+a

Dim LoZeile As Long
LoZeile = Range("B" & Rows.Count).End(xlUp).Row
'ActiveWindow.SmallScroll Down:=114 diese Zeile kann gelöscht werden
'Range("C5:BF135").Select           diese Zeile kann gelöscht werden
'Range("BF135").Activate            diese Zeile kann gelöscht werden
ActiveWorkbook.Worksheets("Homegametabelle").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("Homegametabelle").Sort.SortFields.Add Key:=Range( _
"H5:H" & LoZeile), SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:= _
xlSortNormal
ActiveWorkbook.Worksheets("Homegametabelle").Sort.SortFields.Add Key:=Range( _
"D5:D" & LoZeile), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
xlSortNormal
With ActiveWorkbook.Worksheets("Homegametabelle").Sort
.SetRange Range("C5:BF" & LoZeile)
.Header = xlGuess
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
End Sub

Gruß
Robert
Anzeige
AW: Textfeldeingabe in UserForm für Turniertabelle
08.09.2018 13:11:59
Michael
Hallo Robert,
Deine Code-Anpassung funktioniert perfekt!!
Vielen Dank dafür.
Ich versuche seit gestern die Tabelle dynamisch zu erweitern. Die Erweiterung für zusätzliche Spieltage war kein Problem, aber ich würde die Tabelle gerne auch dahingehend verändern, dass sie dynamisch mit der Anzahl der Spieler wächst und keine freien Zeilen mehr notwendig sind. Unter Optionen/Erweitert/Datenbereichsformate und -formeln erweitern ist das Häkchen gesetzt, aber es funktioniert noch nicht. Im Netz finde ich nur Themen wie Pivot-Tabelle usw.
Ich würde gerne ab Platz 10 (Zeile 14) die Tabelle dynamisch erweitern. Das blaue Zebramuster der Zeilen sollte natürlich fortgeführt werden. Könntest Du mir hier bitte ein letztes mal helfen? Ich schätze mal für Dich wäre das innerhalb von unter 2 Minuten zu lösen. Damit wäre die Tabelle dann aber auch wirklich perfekt!
https://www.herber.de/bbs/user/123831.xlsm
Gruß
Michael
Anzeige

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige