Hallo Werner,
 ich würde es mit einer logischen Fallunterscheidung versuchen, z.B.
 3 Eingabefelder: A für Nennwert oder Minimal-/Maximalwert, B für Maximal-/Minimalwert oder ersten Toleranzwert, C für zweiten Toleranzwert
 Wenn Abs(A-B) kleiner 0.01 und C leer sind, dann wurden Minimal- und Maximalwert eingegeben.
 Wenn A nicht leer ist und Abs(B-C) kleiner 1 ist, dann wurden Nennwert und Toleranzen in mm angeben.
 Wenn A nicht leer ist und Abs(B-C) größer 1 ist, dann wurden Nennwert und Toleranzen in mm angeben.
 Sonst Eingabefehler
 Falls die Logik zutrifft und du selbst nicht in der Lage bist, dein Programm so anzupassen, kann ich dir noch Hinweise geben.
 Gruß
 Holger
 
 
 
 Werner schrieb am 19.01.2009 16:21:09:
 
 Hallo und Danke  an Holger....
 
 Hast mir schon sehr gut geholfen.....
 Eventuell kannst du mir noch einen Tipp geben....
 es soll ein Eingabetool für Stiftdurchmesser werden.... Leider bekommen wir von unterschiedlichen Lieferanten unterschiedliche angaben...
  
 einer gibt den Nenndurchmesser mit einer +/- Toleranz an... z.B. 6,000mm +0,001mm / -0,005mm
 einer gibt den Max und den Min Durchmesser an... z.B. 6,001mm / 6,005mm
 einer gibt den Nenndurchmesser mit einer +/- Toleranz an... z.B. 6,000mm +1µ / -5µ
 
 Diese Angaben werden von Ungelernten Mittarbeitern in eine Excel Arbeitsmappe eingegeben und es werden leider sehr oft Fehler bei der Umstellung des Kommas gemacht.
 Die Excel Arbeitsmappe arbeitet mit den Max und den Min Durchmesser 6,001mm / 6,005mm
 
 Mit der Userform versuche ich die Fehleingaben zu reduzieren...... 
 
 ich hoffe du kannst noch x helfen....
 
 Option Explicit
 Private NeuWert, Wert
 
 Private Sub Userform1_initialize()
 Wert = ""
 End Sub
 
 Private Sub anzeige()
 Wert = Wert + NeuWert
     If InStr((Wert), ".") Then
         Label1.Caption = Format(Val(Wert), "###0.000")
     Else
         Label1.Caption = Format(Val(Wert))
     End If
 End Sub
 
 Private Sub CommandButton1_Click() '1
 NeuWert = "1"
 anzeige
 End Sub
 
 Private Sub CommandButton10_Click() '0
 NeuWert = "0"
 anzeige
 End Sub
 
 Private Sub CommandButton11_Click() '.
 NeuWert = "."
 anzeige
 End Sub
 
 Private Sub CommandButton12_Click() ' del
 Wert = ""
 Label1.Caption = 0
 End Sub
 
 Private Sub CommandButton2_Click() '2
 NeuWert = "2"
 anzeige
 End Sub
 
 Private Sub CommandButton3_Click() '3
 NeuWert = "3"
 anzeige
 End Sub
 
 Private Sub CommandButton4_Click() '4
 NeuWert = "4"
 anzeige
 End Sub
 
 Private Sub CommandButton5_Click() '5
 NeuWert = "5"
 anzeige
 End Sub
 
 Private Sub CommandButton6_Click() '6
 NeuWert = "6"
 anzeige
 End Sub
 
 Private Sub CommandButton7_Click() '7
 NeuWert = "7"
 anzeige
 End Sub
 
 Private Sub CommandButton8_Click() '8
 NeuWert = "8"
 anzeige
 End Sub
 
 Private Sub CommandButton9_Click() '9
 NeuWert = "9"
 anzeige
 End Sub
 
 Private Sub Label1_Click()
 Label1.Caption = Format(Wert, "###0.000")
 End Sub
 
 
 Danke 
 Gruß
 Werner
 
 
 Holger schrieb am 18.01.2009 16:08:24:
 
 Hallo Werner,
 es muss natürlich heißen:
 sub anzeige
 wert=wert+neuwert
 if instr(wert),".") then
 Label1.caption=Format(val(Wert), "###0.000")
 else
 Label1.caption=Wert
 end if
 end sub
 
 
 Holger schrieb am 18.01.2009 15:55:19:
 
 Hallo Werner,
 Label1.caption=Format(Wert, "###0.000")
 Wert ist nummerisch, das Ergebnis ist ein String. Beachte, dass du intern den Wert z.B. als String aufbauen kannst, aber das Komma intern als "." (Punkt) darstellen musst.
 Ich nehme mal an, dass du eine Private-definierte Variable, z.B. NeuWert hast, in die du mit den Click-Ereignissen der Buttons den vorgesehenen Wert hinein schreibst.
 Quick and dirty
 Private NeuWert, Wert
 sub Button1_Click()
 NeuWert="1"
 Anzeige
 end sub
 ... Buttons 2-10
 sub Button11_Click()
 NeuWert="."
 Anzeige
 end sub
 sub anzeige
 wert=wert+neuwert
 if instr(wert),".") then
 Label1.caption=Format(Wert, "###0.000")
 else
 Label1.caption=Wert
 end if
 end sub
 In der sub Userform1_initialize o.Ä. musst du Wert natürlich für eine neue Eingabe löschen (Wert="")
 
 Gruß
 Holger
 
 
 
 Werner schrieb am 18.01.2009 10:47:44:
 
 Hallo 
 
 noch ne Frage!
 
 Komponenten!
 Userform1 mit...
 Button 1 (gibt Wert 1)
 Button 2 (gibt Wert 2)
 Button 3 (gibt Wert 3)
 Button 4 (gibt Wert 4)
 Button 5 (gibt Wert 5)
 Button 6 (gibt Wert 6)
 Button 7 (gibt Wert 7)
 Button 8 (gibt Wert 8)
 Button 9 (gibt Wert 9)
 Button 10 (gibt Wert 0)
 Button 11(gibt  ,)
 Button 12(speichert den Wert von Label1 in Tabelle 1)
 Label1 ( Hier soll durch betätigen von Button 1-11 eine wert eingegeben werden. Der wert soll so formatiert sein das er immer 3 stellen hinter dem Komma hat. Sobalt das komma eingegben wird muss also der wert 3 stellen hinter dem Komma haben ....
 
 Ausgabe immer in mm
 Wenn 1 und 2 und , eingegeben wird soll --- 12,000 erscheinen
 Wenn 1 und 2 und , und 3 eingegeben wird soll --- 12,300 erscheinen 
 Wenn1 und 2 eingegeben wir soll 0,012 erscheinen  
 
 Bitte helfen... es ist sehr wichtig und sehr dringend
 
 Gruß
 Werner
 
      |