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 ...

-- 
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, 18:42:06 schrieb Rolf Lochbühler:
> 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 
<[email protected]>:
> > 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 [email protected]
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

Antwort per Email an