Hallo und DANKE !
 
 Es hat alles  geklappt und alles läuft... DANKE DANKE DANKE!!!!
 
 Gruß Werner
 
 
 Holger schrieb am 22.01.2009 11:53:03:
 
 Hallo Werner,
 ich würde eine UserForm bilden, die 3 TextBoxen, 2 CommandButtons und ein großes Label1 hat. Für die 
 TextBoxen könntest du jeweils ein weitere Label2-4 verwenden, um dem anwender mitzuteilen, was er dort eingeben soll, z.B.:
 Label2 für TextBox1: Nennwert oder absoluter Minimal- oder Maximalwert in mm
 Label3 für TextBox2: absoluter Maximal- oder Minimalwert in mm oder erster Toleranzwert in mm oder µm
 Label4 für TextBox2: ggf. zweiter Toleranzwert in mm oder µm
 Die Ausgabe erfolgt in Label1 im mm.
 CommandButton1 sei für die Berechnung und Speicherung
 CommandButton2 für das Beenden.
 Kleiner und größer musst du noch in die entsprechenden Zeichen umsetzen (im Forum entstehen bei der Übertragung dieser Zeichen immer wieder Fehler!) und für die Speicherzellen ist die Angabe der Zelladressen erforderlich.
 
 Private Sub CommandButton1_Click()
 Stop
 a = TextBox1
 b = TextBox2
 c = TextBox3
 If a kleiner größer  "" Then a = CDbl(a) Else a = 0
 If b kleiner größer  "" Then b = CDbl(b) Else b = 0
 If c kleiner größer  "" Then c = CDbl(c) Else c = 0
 If TextBox1 = "" Then Label1.Caption = "Nennwert oder Minimalwert  eingeben!!!": Exit Sub
 If TextBox2 kleiner größer  "" And Abs(a - b) kleiner  0.05 And TextBox3 = "" Then
     If a größer  b Then d = a: a = b: b = d
 Else
     If b * c größer  0 Then
         Label1.Caption = "Eine Toleranz muss positiv, die andere negativ sein!!!"
         Exit Sub
     End If
     If b = 0 Or c = 0 Then
         Label1.Caption = "Toleranzen können nicht Null sein!!!"
         Exit Sub
     End If
     If Abs(b - c) größer  1 Then b = b / 1000: c = c / 1000
     If b kleiner  c Then d = b: b = c: c = d
     b = a + b
     a = a + c
 End If
 a = Format(a, "###0.000")
 b = Format(b, "###0.000")
 Label1.Caption = "Minimum: " + Format(a, "###0.000") + " mm" _
     + ", Maximum: " + Format(b, "###0.000") + " mm"
 Cells(ZeileMinimum, SpalteMinimum) = a 'hier deine Werte für die Speicherzellen
 Cells(ZeileMaximum, SpalteMaximum) = b 'eintragen, Zählung beginnt bei 1 für Spalte A
 End Sub
 
 Private Sub commandbutton2_click()
 Unload UserForm3
 End Sub
 
 Gruß
 Holger
 
 
 
 Werner schrieb am 20.01.2009 20:30:41:
 
 
 Hallo Holger
 Danke danke…
 Hilfe währe nicht schlecht, denn ich stehe jetzt vollständig auf dem Schlauch…
 Das mit der Fallunterscheidung klingt gut. Ich verstehe aber leider nicht wie es gehen soll… 
 Hier noch x die unterschiedlichen Angaben die von unterschiedlichen Kunden gemacht werden:
 Ein Kunde gibt nur den Nenndurchmesser mit einer +/- Toleranz an... 
 z.B. 6,000mm +0,001mm und -0,005mm
 ein Kunde gibt nur 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µ
 Nach betätigen des Übernahme Buttons soll dann nur der Minwert 6,001 und der Maxwert 6,005mm in die Tabelle eingetragen werden.
 
 Gruß
 Werner
 
 
 
 Holger schrieb am 20.01.2009 09:33:29:
 
 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
 
      |