# Trapez berechnung



## WaZZkeSS (26. Mai 2005)

Hallo allerseits!

 Ich habe vor einpaar Wochen in einem anderen Beitrag schon erwähnt, das ich eine kleine Rechenmaschine basteln möchte als Anfänger.

  Zurück zu meinem Problem. Ich möchte im VB einen Formular mit eingabefelder für die berechnung der Seiten


  a, b, c, d, fläche=A, mittellinie=m und höhe=h

  Ich habe mir mir zur Hilfe die Formeln von 

http://www.mathe-formeln.de/index.php?site=trapez-f
  geholt.

  Dort kann man rechnen und die Formel dazu ansehen.

  Ich habe in meinem Formular nur die Felder a, c, A cm² und u richtig.

  Code:

```
Private Sub TrapezBerechnung_Click()
 
 
 Dim a As Single
 Dim b As Single
 Dim c As Single
 Dim d As Single
 Dim u As Single
 Dim m As Single
 Dim h As Single
 Dim Ae As Single
 Dim trapezergebnisse1 As String
 Dim trapezergebnisse2 As String
 Dim trapezergebnisse3 As String
 Dim trapezergebniss1 As String
 Dim trapezergebniss2 As String
 Dim trapezergebniss3 As String
 Dim trapezergebnis1 As String
 Dim trapezergebnis2 As String
 Dim trapezergebnis3 As String
 Dim trapezergebni1 As String
 Dim trapezergebni2 As String
 Dim trapezergebni3 As String
 Dim trapezergebn1 As String
 Dim trapezergebn2 As String
 Dim trapezergebn3 As String
 Dim trapezergeb1 As String
 Dim trapezergeb2 As String
 Dim trapezergeb3 As String
 Dim trapezerge1 As String
 Dim trapezerge2 As String
 Dim trapezerge3 As String
 Dim trapezerg1 As String
 Dim trapezerg2 As String
 Dim trapezerg3 As String
 '-------------------------------
 Dim strA As String
 Dim strB As String
 Dim strC As String
 Dim strD As String
 Dim strU As String
 Dim strM As String
 Dim strH As String
 Dim strAE As String
 
 	Me.Text1.SetFocus
 	strA = Me.Text1.Text
 	
    
 			If strA = "" Then
 			    trapezergebnisse1 = MsgBox("Sie müssen alle Felder ausfüllen", 17, "Trapezrechner v1")
 				
 				    If trapezergebnisse1 = vbOK Then
 					    Exit Sub
 					End If
 			End If
 			
 			
 			If Not IsNumeric(strA) Then
 			    trapezergebnisse2 = MsgBox("Buchstaben sind nicht erlaubt", 17, "Trapezrechner v1")
 				
 				    If trapezergebnisse2 = vbOK Then
 					    Exit Sub
 					End If
 			End If
 			
 			
 			If strA <= 0.00000001 Then
 			    trapezergebnisse3 = MsgBox("Das Eingeben von einem Wert der kleiner als" & vbCrLf & _
 									    "" & vbCrLf & _
 									    "0,00000001 ist nicht möglich", 17, "Trapezrechner v1")
 					
 				    If trapezergebnisse3 = vbOK Then
 					    Exit Sub
 					End If
 			End If
 	
 	a = CSng(strA)
 '---
 
 	Me.Text2.SetFocus
 	strB = Me.Text2.Text
 	
 	
 			If strB = "" Then
 			    trapezergebniss1 = MsgBox("Sie müssen alle Felder ausfüllen", 17, "Trapezrechner v1")
 				
 				    If trapezergebniss1 = vbOK Then
 					    Exit Sub
 					End If
 			End If
 			
 			
 			If Not IsNumeric(strB) Then
 			    trapezergebniss2 = MsgBox("Buchstaben sind nicht erlaubt", 17, "Trapezrechner v1")
 				
 				    If trapezergebniss2 = vbOK Then
 					    Exit Sub
 					End If
 			End If
 			
 			
 			If strB <= "0,00000001" Then
 			    trapezergebniss3 = MsgBox("Das Eingeben von einem Wert der kleiner als" & vbCrLf & _
 									    "" & vbCrLf & _
 									    "0,00000001 ist nicht möglich", 17, "Trapezrechner v1")
 					
 				    If trapezergebniss3 = vbOK Then
 					    Exit Sub
 					End If
 			End If
 
 	b = CSng(strB)
 
 '---
 
 	Me.Text3.SetFocus
 	strC = Me.Text3.Text
 		
 			If strC = "" Then
 			    trapezergebnis1 = MsgBox("Sie müssen alle Felder ausfüllen", 17, "Trapezrechner v1")
 				
 				    If trapezergebnis1 = vbOK Then
 					    Exit Sub
 					End If
 			End If
 			
 			
 			If Not IsNumeric(strC) Then
 			    trapezergebnis2 = MsgBox("Buchstaben sind nicht erlaubt", 17, "Trapezrechner v1")
 				
 				    If trapezergebnis2 = vbOK Then
 					    Exit Sub
 					End If
 			End If
 			
 			
 			If strC <= "0,00000001" Then
 			    trapezergebnis3 = MsgBox("Das Eingeben von einem Wert der kleiner als" & vbCrLf & _
 									    "" & vbCrLf & _
 									    "0,00000001 ist nicht möglich", 17, "Trapezrechner v1")
 					
 				    If trapezergebnis3 = vbOK Then
 					    Exit Sub
 					End If
 			End If
 	
 	c = CSng(strC)
 
 '---
 
 	Me.Text4.SetFocus
 	strD = Me.Text4.Text
 	
 			If strD = "" Then
 			    trapezergebni1 = MsgBox("Sie müssen alle Felder ausfüllen", 17, "Trapezrechner v1")
 				
 				    If trapezergebni1 = vbOK Then
 					    Exit Sub
 					End If
 			End If
 			
 			
 			If Not IsNumeric(strD) Then
 			    trapezergebni2 = MsgBox("Buchstaben sind nicht erlaubt", 17, "Trapezrechner v1")
 				
 				    If trapezergebni2 = vbOK Then
 					    Exit Sub
 					End If
 			End If
 			
 			
 			If strD <= "0,00000001" Then
 			    trapezergebni3 = MsgBox("Das Eingeben von einem Wert der kleiner als" & vbCrLf & _
 									    "" & vbCrLf & _
 									    "0,00000001 ist nicht möglich", 17, "Trapezrechner v1")
 					
 				    If trapezergebni3 = vbOK Then
 					    Exit Sub
 					End If
 			End If
 			
 	d = CSng(strD)
 	
 			
 '---
 
 		Me.Text5.SetFocus
 		strAE = Me.Text5.Text
 	
 			If strAE = "" Then
 			    trapezerg1 = MsgBox("Sie müssen alle Felder ausfüllen", 17, "Trapezrechner v1")
 				
 				    If trapezerg1 = vbOK Then
 					    Exit Sub
 					End If
 			End If
 			
 			
 			If Not IsNumeric(strAE) Then
 			    trapezerg2 = MsgBox("Buchstaben sind nicht erlaubt", 17, "Trapezrechner v1")
 				
 				    If trapezerg2 = vbOK Then
 					    Exit Sub
 					End If
 			End If
 			
 			
 			If strAE <= "0,00000001" Then
 			    trapezerg3 = MsgBox("Das Eingeben von einem Wert der kleiner als" & vbCrLf & _
 									    "" & vbCrLf & _
 									    "0,00000001 ist nicht möglich", 17, "Trapezrechner v1")
 					
 				    If trapezerg3 = vbOK Then
 					    Exit Sub
 					End If
 			End If
 			
 	Ae = CSng(strAE)
 		
 
 '---
 	
 	
 	Me.Text6.SetFocus
 	strU = Me.Text6.Text
 	
 			If strU = "" Then
 			    trapezergebn1 = MsgBox("Sie müssen alle Felder ausfüllen", 17, "Trapezrechner v1")
 				
 				    If trapezergebn1 = vbOK Then
 					    Exit Sub
 					End If
 			End If
 			
 			
 			If Not IsNumeric(strU) Then
 			    trapezergebn2 = MsgBox("Buchstaben sind nicht erlaubt", 17, "Trapezrechner v1")
 				
 				    If trapezergebn2 = vbOK Then
 					    Exit Sub
 					End If
 			End If
 			
 			
 			If strU <= "0,00000001" Then
 			    trapezergebn3 = MsgBox("Das Eingeben von einem Wert der kleiner als" & vbCrLf & _
 									    "" & vbCrLf & _
 									    "0,00000001 ist nicht möglich", 17, "Trapezrechner v1")
 					
 				    If trapezergebn3 = vbOK Then
 					    Exit Sub
 					End If
 			End If
 			
 	u = CSng(strU)
 	
 			
 '---
 			
 	Me.Text7.SetFocus
 	strM = Me.Text7.Text
 	
 			If strM = "" Then
 			    trapezergeb1 = MsgBox("Sie müssen alle Felder ausfüllen", 17, "Trapezrechner v1")
 				
 				    If trapezergeb1 = vbOK Then
 					    Exit Sub
 					End If
 			End If
 			
 			
 			If Not IsNumeric(strM) Then
 			    trapezergeb2 = MsgBox("Buchstaben sind nicht erlaubt", 17, "Trapezrechner v1")
 				
 				    If trapezergeb2 = vbOK Then
 					    Exit Sub
 					End If
 			End If
 			
 			
 			If strM <= "0,00000001" Then
 			    trapezergeb3 = MsgBox("Das Eingeben von einem Wert der kleiner als" & vbCrLf & _
 									    "" & vbCrLf & _
 									    "0,00000001 ist nicht möglich", 17, "Trapezrechner v1")
 					
 				    If trapezergeb3 = vbOK Then
 					    Exit Sub
 					End If
 			End If
 			
 	m = CSng(strM)
 	
 	
 '---
 	
 	Me.Text8.SetFocus
 	strH = Me.Text8.Text
 	
 			If strH = "" Then
 			    trapezerge1 = MsgBox("Sie müssen alle Felder ausfüllen", 17, "Trapezrechner v1")
 				
 				    If trapezerge1 = vbOK Then
 					    Exit Sub
 					End If
 			End If
 			
 			
 			If Not IsNumeric(strH) Then
 			    trapezerge2 = MsgBox("Buchstaben sind nicht erlaubt", 17, "Trapezrechner v1")
 				
 				    If trapezerge2 = vbOK Then
 					    Exit Sub
 					End If
 			End If
 			
 			
 			If strH <= "0,00000001" Then
 			    trapezerge3 = MsgBox("Das Eingeben von einem Wert der kleiner als" & vbCrLf & _
 									    "" & vbCrLf & _
 									    "0,00000001 ist nicht möglich", 17, "Trapezrechner v1")
 					
 				    If trapezerge3 = vbOK Then
 					    Exit Sub
 					End If
 			End If
 			
 	h = CSng(strH)
 			
 Call TrapezAusgabe(a, b, c, d, Ae, u, m, h)
 
 End Sub
 
 Sub TrapezAusgabe(a, b, c, d, Ae, u, m, h)
 
 Dim erg1 As Single
 Dim erg2 As Single
 Dim erg3 As Single
 Dim erg4 As Single
 Dim erg5 As Single
 Dim erg6 As Single
 Dim erg7 As Single
 Dim erg8 As Single
 
 		erg1 = u - b - c - d
 		erg1 = m * 2 - c
 
 		erg2 = u - a - c - d
 		erg2 = u - m * 2 - d
 
 		erg3 = u - a - b - d
 		erg3 = m * 2 - a
 
 		erg4 = u - a - b - c
 		erg4 = u - m * 2 - b
 
 		erg5 = m * h
 		erg5 = m * h
 
 		erg6 = a + b + c + d
 		erg6 = m * 2 + b + d
 
 		erg7 = Ae / h
 		erg7 = (a + c) / 2
 		erg7 = (u - b - d) / 2
 
 		erg8 = Ae / m
 		erg8 = Ae / ((a + c) / 2)
 
 Me.TextE1.SetFocus
 Me.TextE1.Text = erg1
 
 Me.TextE2.SetFocus
 Me.TextE2.Text = erg2
 
 Me.TextE3.SetFocus
 Me.TextE3.Text = erg3
 
 Me.TextE4.SetFocus
 Me.TextE4.Text = erg4
 
 Me.TextE5.SetFocus
 Me.TextE5.Text = erg5
 
 Me.TextE6.SetFocus
 Me.TextE6.Text = erg6
 
 Me.TextE7.SetFocus
 Me.TextE7.Text = erg7
 
 Me.TextE8.SetFocus
 Me.TextE8.Text = erg8
 
 End Sub
```
 
  Ich glube das die Umsetzung der Formel nicht ganz hinhaut.
  Es sollte ja auch am ende möglich sein mit verschiedensten Eingabe den Umfang oder Fläche ausrechnen zu können.
  Ich hoffe Ihr könnt mir helfen und wenn´s geht bitte genau erklären. Danke

   WaZZkeSS


----------

