Live-Forum - Die aktuellen Beiträge
Datum
Titel
17.04.2024 18:57:33
17.04.2024 16:56:58
Anzeige
Archiv - Navigation
864to868
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
864to868
864to868
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

ComboBox nur mit Text und Zeichenbegrenzung

ComboBox nur mit Text und Zeichenbegrenzung
02.05.2007 18:13:00
Lenhard
Moin Moin!
Mit Hilfe von Erich habe ich folgendes in einer meiner Dateien integrieren können:

Private Sub TextBoxKV_BeforeUpdate(ByVal Cancel As MSForms.ReturnBoolean)
With TextBoxKV
If .Text = "" Then Exit Sub
If IsNumeric(.Text) Then
.Text = Format(CDbl(.Text), "##0")  ' "##0"  wenn nur ganze Zahlen
Else
MsgBox "Hier können Sie nur Zahlen eingeben!!", 64, "Fehler"
.SelStart = 0
.SelLength = Len(.Text)
End If
If TextBoxKV.TextLength > 3 Then
MsgBox "Die Eingabe der Kathodenspannug (KV) ist auf 3 Zeichen begrenzt!", 64, "Fehler"
.SelStart = 0
.SelLength = Len(.Text)
Cancel = True
End If
End With
End Sub


es überprüft eine TextBox in einem UserForm auf "Zahlen-Inhalt", lehnt Text ab und begrenzt mir die Menge der Zahlen. MessageBoxen geben Hinweise zwischendurch. Und ich werde immer wieder in die TextBox zurück geschickt, solange ich nicht auf die Bedingungen eingehe oder die Zelle leer verlasse.
-----------------
Ich brauche aber nun so eine Prüfung (...kann es wieder über Boolean gehen?) auch für eine ComboBox. ALLERDINGS: Nun Zahlen ablehnen und nur noch Text zulassen! Nun dachte ich mir, nimm das oben stehende als Vorbild und "drehe es irgendwie um": Von Zahl zu Text. Folgendes ist dabei heraus gekommen:


Private Sub ComboBoxPflege02_BeforeUpdate(ByVal Cancel As MSForms.ReturnBoolean)
With ComboBoxPflege02
If .Text = "" Then Exit Sub    '####HIER KOMME ICH NICHT WEITER###
If  IsNumeric(.CDbl) Then   '####HIER KOMME ICH NICHT WEITER###, habe auch "If Not"  _
versucht...
.Text = Format("")	'####HIER KOMME ICH NICHT WEITER###
Else
MsgBox "Hier können Sie nur Text eingeben!!", 64, "Fehler"
.SelStart = 0
.SelLength = Len(.Text)
End If
If ComboBoxPflege02.TextLength > 5 Then
MsgBox "Die Eingabe ist auf 5 Zeichen begrenzt!", 64, "Fehler"
.SelStart = 0
.SelLength = Len(.Text)
Cancel = True
End If
End With
End Sub


Ansonsten wie oben: MessageBoxen geben Hinweise und ich werde immer wieder in die ComboBox zurück geschickt, solange ich nicht auf die Bedingungen eingehe oder die Zelle leer verlasse.
Wenn ich zurück geschickt werde, sollen die "Fehl-Einträge" zwecks sofortiger Änderung blau unterlegt sein.
Viele Grüße aus dem hohen Norden
Lenhard

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: ComboBox nur mit Text und Zeichenbegrenzung
02.05.2007 18:35:37
Erich
Hallo Lenhard,
was genau meinst du mit "nur Text zulassen"?
Die Zeichenkette "123" ist ein Text. Erst CDbl("123") macht daraus die Zahl 123.
Sollen "x12" oder "1a23" zugelassen sein? Das sind sicher keine Zahlen, die Texte enthalten aber Ziffern.
Soll "#&%" zugelassen sein?
Sollen die Texte vielleicht nur Buchstaben (kleine oder große) enthalten dürfen?
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort

AW: ComboBox nur mit Text und Zeichenbegrenzung
02.05.2007 19:07:25
Lenhard
Hallo Erich!
Eine berechtigte Frage, hätte ich auch klarer darstellen können!!
Mit Text meine ich in diesem Falle alle Zeichen außer Zahlen wie "123 usw.". Also reine Buchstaben (AaBbCcDd usw. usw.) mit Sonderzeichen (§%&/-_= usw. usw...)
Gruß
Lenhard

Anzeige
AW: ComboBox nur mit Text und Zeichenbegrenzung
02.05.2007 21:17:00
Erich
Hallo Lenhard,
schau mal in den UF-Code in
https://www.herber.de/bbs/user/42189.xls
Die Ergänzungen sind (wie üblich) mit ### NEU gekennzeichnet.
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort

AW: ComboBox nur mit Text und Zeichenbegrenzung
02.05.2007 21:45:22
Lenhard
Hallo Erich! ...komme ich auch noch mal dahin wo Du stehst?!!* Nach einer ersten Sichtung scheint es sehr gut zu laufen!! Vielen Dank!!
Ich hatte in den letzten Tagen unglaublich viel um die Ohren und muss erst mal mein Schlafdefizit ausgleichen. Ich mache morgen weiter und melde mich dann noch mal!!
Erst mal vielen vielen Dank! Erich!
Gruß
Lenhard
*...das VBA-Wissen hätte ich auch gerne drauf und ich würde auch sehr anderen hier im Forum helfen können. Aber da brauch ich wohl noch ein wenig... ...Sorry! ...etwas mehr Zeit. Denn ich merke bzw. weis es schon: Excel in Verbindung mit VBA ist gewaltig!!

Anzeige
AW: ComboBox nur mit Text und Zeichenbegrenzung
03.05.2007 16:53:11
Lenhard
Moin Erich!
Alles gut!! Der Code läuft!! Vielen Dank!
Allerdings verstehe ich den Zusammenhang mit dem was zwischen "Funktion" bis "End Funktion" nicht so ganz?! ...das ist neu für mich. Und was bedeutet "Text5"?
Das sich dann das Skript unter "ComboBoxPflege02" darauf bezieht, sehe ich irgendwie... ...aber wie hängt das zusammen?!...
Du brauchst es mir nur zu erklären, wenn es nicht allzuviel Mühe macht (ich weis, dass lange Erklärungen sehr anstrengend sind und viel Arbeit machen!). Ich bin ja total froh, das es läuft!!
Gruß
Lenhard
PS ...ich bastel nun weiter an der Datei. Ich werde mit Sicherheit noch viele Fragen haben und dann ins Forum gehen. Zuerst suche ich natürlich immer im Archiv. Erst wenn ich dort keine Antworten finde, dann erstelle ich einen Beitrag. Hoffentlich bist Du dann wieder mit dabei.

Anzeige
AW: ComboBox nur mit Text und Zeichenbegrenzung
03.05.2007 17:41:50
Erich
Hi Lenhard,
freut mich, dass es funzt!
Zu dieser Funktion:
Ich hatte bereits diese Funktion:

Function Zahl_in_Text(Txt As String) As Boolean
Zahl_in_Text = Evaluate("SUMPRODUCT(ISNUMBER(MID(""" & Txt & """,COLUMN(1:1),1)*1)*1)>0")
End Function

Darin wird eine Excelformel ausgewertet, die so aussieht:

 AB
311xWAHR

Formeln der Tabelle
ZelleFormel
B3=SUMMENPRODUKT(ISTZAHL(TEIL(A3;SPALTE(3:3); 1)*1)*1)>0

Damit diese Funktion unabhängig von einer Tabelle wird, habe ich SPALTE(...), engl. COLUMN(...) ersetzt
durch das Array {1,2,3,4,5} - dein Text hat ja max. 5 Stellen.
Dass diese Funktion nur bis zur 5. Stelle eines Textes arbeitet, habe ich durch Anhängen einer 5
an den (beliebigen) Funktionsnamen ausgedrückt.
Man kann das auch mit einer Schleife über alle Stellen des Textes Programmieren,
mittels der Excelfunktion gehts aber einfacher und schneller.
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort

Anzeige
AW: ComboBox nur mit Text und Zeichenbegrenzung
03.05.2007 19:34:00
Lenhard
Danke Erich!! Mit dieser Erklärung ist mir einiges "klarer" und vor allen Dingen könnte ich mit so einer Info auch evtl. nachträgliche Änderungen sofort umsetzen. Vielleicht brauche ich ja doch mehr als 5 Zeichen...
Gruß
Lenhard

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige