Hallo Rolf, ich glaube ich habe verstanden.
In (ausgeblendeter) Celle C2 für Celle B2 (wo die Kundennummer eingetragen wird) =wenn( B2<>"" ; valid(B2) ; "" ) Ist das so richtig? Gruß Achim -- openSUSE 11.4 KDE – Frei sein! Plattform-Version 4.6.00 (4.6.0) "release 6" LibreOffice 3.3.4 OOO340m1 (Build:502) --- Am Sonntag, 27. Januar 2013, 20:15:35 schrieb Achim Pabel: > Hallo Rolf, > > Dein Code ist wohl ein absolutes "Sahnehäuptchen" - das wird > niemand abstreiten können. > > Aber wie wird er eingebaut (1) und wie wird dieser aufgerufen? > Automatisch - oder per Icon? > Wie verbinde ich den Code mit den einzelnen Spalten B2 bis B101 ? > > Ich (und sicherlich auch andere) bin (sind) sehr gespannt auf > Deine nächste Mail ! > > Gruß > > Achim > > > (1) Ich meinde damit nicht: > Copy + Paste in > Menü::Extras::Makros verwalten::Libre Office Basic ... > > > Ich habe deine Anmerkung, dass du kein Basic sprichst, gesehen. > > Aber wie wäre es mit einem fertigen Makro? ;-) > > > > Das hat den Vorteil, dass die Formel =valid(...) nur eine Zelle > > in deinem Spreadsheet belegt. Außerdem bekommt der Anwender > > einen Hinweis darauf, wo in der Eingabe der erste Fehler ist. > > > > ~~Ab hier Basic-Code~~~~~~~~~ > > ' Rolf Lochbühler, 2013-01-27 > > > > Option Explicit > > > > Public Function valid( ByVal str As String ) As String > > > > Dim char As String > > Dim EXPECT_LEN As Integer > > Dim i As Integer > > Dim msg As String > > Dim STR_LEN As Integer > > > > EXPECT_LEN = Len( "XX-XXXXX-9999-X99-N999" ) > > STR_LEN = Len( str ) > > > > If STR_LEN < EXPECT_LEN Then > > > > msg = "Eintrag " & CStr(EXPECT_LEN - STR_LEN) & " Zeichen > > zu > > > > kurz." > > > > ElseIf STR_LEN > EXPECT_LEN Then > > > > msg = "Eintrag " & CStr(EXPECT_LEN - COUNT) & " Zeichen zu > > > > lang." > > > > Else > > > > i = 0 > > msg = "" > > > > While msg = "" And i < STR_LEN > > > > i = i + 1 > > char = Mid(str,i,1) > > > > Select Case i > > > > Case 1, 2, 4, 5, 6, 7, 8, 15: > > If char < "A" Or char > "z" Then > > > > msg = "Erwarte Buchstabe statt " & char & " an > > Stelle > > > > " & CStr(i) & "." End If > > > > Case 3, 9, 14, 18: > > If char <> "-" Then > > > > msg = "Erwarte Bindestrich statt " & char & " an > > > > Stelle " & CStr(i) & "." End if > > > > Case 10, 11, 12, 13, 16, 17, 20, 21, 22: > > If char < "0" Or char > "9" Then > > > > msg = "Erwarte Ziffer statt " & char & " an Stelle > > " > > > > & CStr(i) & "." End If > > > > Case 19: > > If char <> "N" Then > > > > msg = "Erwarte N statt " & char & " an Stelle 19." > > > > End if > > > > End Select > > > > Wend > > > > End If > > > > valid = "Ok" > > If msg <> "" Then > > > > valid = "Fehler: " & msg > > > > End If > > > > End Function > > ~~Ende des Basic-Codes~~~~~~~~~ > > > > > > -rl > > > > Am 2013-01-27 um 17:33 schrieb Stefan Weigel > > <stefan.wei...@bildungskreis.org>: > > > Hallo Achim, > > > > > > Am 27.01.2013 15:22, schrieb Achim Pabel: > > >> XX-XXXXX-9999-X99-N999 > > >> > > >> Eine Kundennummer soll in einem Feld manuell erfasst werden. > > >> Dabei setzt sich diese aus "X" für A-Z (GOSSBUCHSTABEN) > > >> und "9" für 0-9 Zeichen zusammen. Nur "N" ist statisch. > > >> Getrennt werden die einzelnen Abschnitte durch das "-" > > >> Minus-Zeichen. > > >> > > >> Frage: Wie kann für dieses eine Feld eine > > >> Plausibilitätsprüfung gemacht werden. > > > > > > Die Lösung findest Du hier: > > > http://www.file-upload.net/download-7119512/Achim.ods.html > > > > > > Gib in den Zellen A4 bis A19 Deine zu prüfenden Zeichenketten > > > ein. In der Spalte X erscheint eine 1, wenn die Zeichenkette > > > Deinen Bedingungen entspricht. > > > > > > Um zu sehen, wie es gemacht wurde, blendest Du die Zeile 2 > > > und 3 und die Spalten B bis W ein und schaust Dir die > > > Formeln an. [...] -- Informationen zum Abmelden: E-Mail an users+h...@de.libreoffice.org Probleme? http://de.libreoffice.org/hilfe-kontakt/mailing-listen/abmeldung-liste/ Tipps zu Listenmails: http://wiki.documentfoundation.org/Netiquette/de Listenarchiv: http://listarchives.libreoffice.org/de/users/ Alle E-Mails an diese Liste werden unlöschbar öffentlich archiviert