Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1100to1104
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

Inputbox Gültigkeit Sonderzeichen

Inputbox Gültigkeit Sonderzeichen
Jörg-HH
Hallo Zusammen,
das endlose Archiv über Inputbox deckt leider nicht meinen Fall ab:
Anbieter sollen in einer Inputbox einen Kurznamen eingeben. Also statt Gustav von Meier GmH & Co. KG aA eV. Filiale Hamburg schlicht: Meier
Obwohl ich das ausdrücklich auf die Box schreibe, wird es meist ignoriert. Um den Anbietern das nun zu verleiden, dachte ich mir, ich laß prüfen, ob der eingegeben Text Zeichen enthält, die da nicht hingehören, also Punkt, Komma, Leerstelle sowie + - / & und Zahlen.
Wie ist denn da die Syntax, um das zu erkennen?
Danke für 'n Tip...
Jörg

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

Betreff
Benutzer
Anzeige
AW: Inputbox Gültigkeit Sonderzeichen
12.09.2009 02:09:43
Oberschlumpf
Hi Jörg
Was hältst du von diesem erst mal nur Gedanken:
Du arbeitetst mit einem Userform, in dem sich eine leere Textbox und eine erst mal leere Listbox befindet..ach ja..und ein OK-Button.
Dann trägst du ins Textfeld z Bsp Meier ein und klickst auf den Button.
In der Listbox werden dann alle Firmennamen aufgelistet, in denen das Wort "Meier" vorkommt.
Mit der Auswahl aus der Listbox arbeitest du dann weiter - z Bsp Doppelklick auf den gesuchten Firmennamen, und deine Datei arbeitet weiter.
Um meine Idee in Code zu packen, müsstestd u mir aber noch verraten, in welcher Spalte sich die voll ausgeschriebenen Firmennamen befinden.
Oder noch besser.
Zeig uns doch bitte eine Bsp-Datei.
Ciao
Thorsten
Anzeige
AW: Inputbox Gültigkeit Sonderzeichen
12.09.2009 10:06:16
ransi
HAllo Jörg
Ein Prüfung könnte z.B. so aussehen:
Option Explicit


Public Sub test()
Dim strText As Variant
Dim I As Integer
strText = Application.InputBox(prompt:="Dein Hinweis", Title:="Irgendwas", Type:=2)
If strText = False Or strText = "" Then 'Abgebrochen oder ""
    MsgBox "Abgebrochen oder leer"
    Exit Sub
End If
For I = 1 To Len(strText)
    Select Case Asc(Mid(strText, I, 1))
        Case 65 To 90, 97 To 122, 196, 214, 220, 223, 228, 246, 252
        Case Else:
            MsgBox "Falsche Eingabe"
            Exit Sub
    End Select
Next
MsgBox "Alles gut..."
'Deine weiteren Berechnungen
End Sub

ransi
Anzeige
sehr schön :-) ....
12.09.2009 11:00:04
Jörg-HH
Moin Ransi
das paßt. Eine Kleinigkeit noch: Statt Exit Sub nach der MsgBox soll wieder zur Inputbox gesprungen werden, um dem User die Möglichkeit zu erneuter Eingabe zu geben. Wie schreibt man das?
Hier der angepaßte Code:
Private Sub Workbook_Open()
Dim i As Integer
Dim MldgFa As String
Dim FileSaveNameAnbieter As Variant
Dim strAnbieterName As Variant
MldgFa = "Bitte geben Sie Ihren Firmennamen in Kurzform ein" & vbLf & _
"z.B. statt Druckerei Meier GmbH & Co. GK einfach: Meier"
If Me.Sheets.Count > 3 Then
Exit Sub                                'verhindert, daß msgBox auch bei Mutterdatei  _
erscheint
Else
strAnbieterName = Application.InputBox(MldgFa, "Registrierung")
End If
If strAnbieterName = False Then
ThisWorkbook.Close
ElseIf strAnbieterName = "" Then
MsgBox "Ohne Namen kann die Datei nicht verarbeitet werden"
ThisWorkbook.Close
End If
For i = 1 To Len(strAnbieterName)
Select Case Asc(Mid(strAnbieterName, i, 1))
Case 65 To 90, 97 To 122, 196, 214, 220, 223, 228, 246, 252
Case Else:
MsgBox "Einen EINFACHEN Namen bitte! Vermeiden Sie Sonderzeichen usw."
Exit Sub
End Select
Next
MsgBox "Speichern Sie die Datei in einem Ordner Ihrer Wahl." & vbLf & _
"Verändern Sie NICHT den neuen Dateinamen, da sonst" & vbLf & _
"die Rücksendung Ihres Angebots nicht automatisch" & vbLf & _
"eingelesen werden kann und unberücksichtigt bleibt"
FileSaveNameAnbieter = Application.GetSaveAsFilename(InitialFileName:=(Left(ThisWorkbook. _
Name, Len(ThisWorkbook.Name) - 4)) & " " & strAnbieterName, FileFilter:="Microsoft Excel-Arbeitsmappe (*.xls), *.xls", Title:="Dateiname für Ihr Angebot")
If FileSaveNameAnbieter  False Then
ActiveWorkbook.SaveAs FileSaveNameAnbieter
Else
Exit Sub
End If
End Sub

Anzeige
AW: sehr schön :-) ....
12.09.2009 20:13:13
fcs
Hallo Jörh,
statt das Makro zu verlassen kannst du an eine beamte Sprungadresse verzweigen.
Gruß
Franz
EingebenName:
If Me.Sheets.Count > 3 Then
Exit Sub     'verhindert, daß msgBox auch bei Mutterdatei erscheint
Else
strAnbieterName = Application.InputBox(MldgFa, "Registrierung")
End If
If strAnbieterName = False Then
ThisWorkbook.Close
ElseIf strAnbieterName = "" Then
MsgBox "Ohne Namen kann die Datei nicht verarbeitet werden"
ThisWorkbook.Close
End If
For i = 1 To Len(strAnbieterName)
Select Case Asc(Mid(strAnbieterName, i, 1))
Case 65 To 90, 97 To 122, 196, 214, 220, 223, 228, 246, 252
Case Else:
MsgBox "Einen EINFACHEN Namen bitte! Vermeiden Sie Sonderzeichen usw."
GoTo EingebenName
End Select
Next

Anzeige
zur selben Zeit :-)
12.09.2009 20:18:15
Jörg-HH
Hi Franz
in derselben Minute hab ich auch gepostet.
Ich hab die Sprungmarke (hier") etwas später gesetzt - hat das Nachteile?

If Me.Sheets.Count > 3 Then
Exit Sub
Else
hier:
strAnbieterName = Application.InputBox(MldgFa, "Registrierung")
End If
If strAnbieterName = False Then
ThisWorkbook.Close
ElseIf strAnbieterName = "" Then
MsgBox "Ohne Namen kann die Datei nicht verarbeitet werden"
usw...

AW: zur selben Zeit :-)
12.09.2009 21:25:10
fcs
Hallo Jörg,
in deinem Fall gibt es keine Nachteile.
Ich vermeide es allerdings im Allgemeinen von außerhalb mitten in eine If-Auswertung zu verzweigen. Ich verzweige in solchen Fällen immer vor die If-Zeile. das scheint mir die etwas sauberere Form der Programmierung.
Gruß
Franz
Anzeige
AW: sehr schön :-) ok - Rest auch gelöst...
12.09.2009 20:13:17
Jörg-HH
Danke für die Grundlagen, Ransi. Mit einigem Probieren hab ich jetzt auch meine Frage von heute Morgen selbst ausgetüftelt.
Grüße - Jörg
geht so nicht
12.09.2009 10:21:10
Jörg-HH
Moin Thorsten
danke für den Tip - damit hast du mir eine Idee für eine andere Sache gegeben. Hier aber geht das so nicht - der Namen-Eingeber soll nicht sehen, wer sonst noch so im Spiel ist.
Grüße - Jörg

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige