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

Antwort per Email an