AW: Zeig mal deinen Code! (owT)
23.04.2013 11:43:05
Sergej
'klassenvariablen Produkt1
Dim PZCounter As Integer
Dim MCounter As Integer
Dim BTCounter As Integer
Dim LastBTPosition As Integer
Dim i As Integer
Dim p As Integer
Dim y As Integer ' für bauteilnamen bei materialen
Dim yy As Integer ' für bauteilnamen bei materialen
Dim x As Integer ' für bauteilnamen bei prozessen
Dim xx As Integer ' für bauteilnamen bei prozessen
End Sub
Private Sub ProduktHinzufügen_Click()
MCounter = -1 'Material zähler
PZCounter = -1 'prozesszähler
BTCounter = -1 'Bauteilenzähler
LastBTPosition = 0 'Für form
i = 8 'für material
p = 8 'für prozesse
y = 7 ' für Bauteilnamen bei Materialien
yy = 0 ' für Bauteilnamen bei Materialien
xx = 0 ' für Bauteilnamen bei Prozessen
x = -5 'für Bauteilnamen bei Prozessen
Dim strProduktEingabe As String
Dim posX As Integer
Dim posY As Integer
posX = 500
posY = 50
strProduktEingabe = InputBox("Bitte geben Sie ein Produkt ein", "Produkt eingeben", , 0, 0)
If strProduktEingabe = "" Or strProduktEingabe = "Falsch" Then Exit Sub
Tabelle1.Shapes.AddTextbox(msoTextOrientationHorizontal, posX, posY, 100, 30).Select
Selection.ShapeRange.TextFrame.Characters.Text = strProduktEingabe
With Selection.ShapeRange.Fill
.Visible = msoTrue
.ForeColor.RGB = RGB(190, 0, 255)
End With
Tabelle1.Activate
posX = -20 'für start der Baugruppen bei position 100
Call BaugruppeHinzufügen(posX, posY)
End Sub
Private Sub BaugruppeHinzufügen(ByVal posX As Integer, ByVal posY As Integer)
Dim posX_BG As Integer
posX_BG = posX + 120
Dim BG As String
BG = InputBox("Bitte geben Sie eine Baugruppe ein: ", "Baugruppe", , 0, 0)
If BG = "" Or BG = "Falsch" Then Exit Sub
Tabelle1.Shapes.AddTextbox(msoTextOrientationHorizontal, posX_BG, posY + 50, 100, 30).Select
Selection.ShapeRange.TextFrame.Characters.Text = BG
With Selection.ShapeRange.Fill
.Visible = msoTrue
.ForeColor.RGB = RGB(100, 200, 0)
End With
Tabelle1.Activate
If BTCounter >= 0 Then
posX = posX_BG - 120
Else
posX = -20
End If
Call BauteilHinzufügen(posX, posY)
Call BaugruppeMsgBox(posX_BG, posY)
End Sub
Private Sub BauteilHinzufügen(ByVal posX As Integer, ByVal posY As Integer)
BTCounter = BTCounter + 1
Dim BT As String
Dim posX_BT As Integer
posX_BT = posX + 120
BT = InputBox("Bitte geben Sie ein Bauteil ein: ", "Bauteil", , 0, 0)
If BT = "" Or BT = "Falsch" Then Exit Sub
Tabelle1.Shapes.AddTextbox(msoTextOrientationHorizontal, posX_BT, posY + 100, 100, 30).Select
Selection.ShapeRange.TextFrame.Characters.Text = BT
With Selection.ShapeRange.Fill
.Visible = msoTrue
.ForeColor.RGB = RGB(255, 255, 0)
End With
Tabelle1.Activate
If yy = 1 Or yy = 0 Then
y = y + 1
Else
y = y + 2
End If
yy = 0
Tabelle2.Cells(y, 1) = BT
If xx = 1 Or xx = 0 Then
x = x + 13
ElseIf xx = 2 Then
x = x + 2 * 13
ElseIf xx = 3 Then
x = x + 3 * 13
ElseIf xx = 4 Then
x = x + 4 * 13
ElseIf xx = 5 Then
x = x + 5 * 13
ElseIf xx = 6 Then
x = x + 6 * 13
ElseIf xx = 7 Then
x = x + 7 * 13
ElseIf xx = 8 Then
x = x + 8 * 13
ElseIf xx = 9 Then
x = x + 9 * 13
Else
x = x + 10 * 13
End If
xx = 0
Tabelle3.Cells(x, 1) = BT
MCounter = -1
Call MaterialHinzufügen(posX_BT, posY)
LastBTPosition = posX_BT
Call BauteilMsgBox(posX_BT, posY)
End Sub
Private Sub ProzessHinzufügen(ByVal posX As Integer, ByVal posY As Integer)
PZCounter = PZCounter + 1
Dim PZ As String
PZ = InputBox("Bitte geben Sie ein Prozess ein: ", "Prozess", , 0, 0)
If PZ = "" Or PZ = "Falsch" Then Exit Sub
Tabelle1.Shapes.AddTextbox(msoTextOrientationHorizontal, posX, posY + 40 + PZCounter * 40, 100, _
30).Select
Selection.ShapeRange.TextFrame.Characters.Text = PZ
Tabelle3.Cells(p, 3) = PZ
p = p + 13
xx = xx + 1
With Selection.ShapeRange.Fill
.Visible = msoTrue
.ForeColor.RGB = RGB(100, 200, 255)
End With
Tabelle1.Activate
Call ProzessMsgBox(posX, posY)
End Sub
Private Sub ProzessMsgBox(ByVal posX As Integer, ByVal posY As Integer)
Dim intMsg As Integer
intMsg = MsgBox("Wollen Sie einen weiteren Prozess eingeben? ", vbYesNo)
If intMsg = vbYes Then
Call ProzessHinzufügen(posX, posY)
End If
End Sub
Private Sub MaterialHinzufügen(ByVal posX As Integer, ByVal posY As Integer)
MCounter = MCounter + 1
Dim M As String
M = InputBox("Bitte geben Sie ein Material ein: ", "Material", , 0, 0)
If M = "" Or M = "Falsch" Then Exit Sub
Tabelle1.Shapes.AddTextbox(msoTextOrientationHorizontal, posX, posY + 150 + MCounter * 40, 100, _
30).Select
Selection.ShapeRange.TextFrame.Characters.Text = M
Tabelle2.Cells(i, 2) = M
i = i + 1
yy = yy + 1
With Selection.ShapeRange.Fill
.Visible = msoTrue
.ForeColor.RGB = RGB(255, 150, 0)
End With
Tabelle1.Activate
If MCounter = 1 Then
Exit Sub
Else
Call MaterialMsgBox(posX, posY)
End If
Call ProzessHinzufügen(posX, posY + 200)
End Sub
Private Sub MaterialMsgBox(ByVal posX As Integer, ByVal posY As Integer)
Dim intMsg As Integer
intMsg = MsgBox("Wollen Sie dem Bauteil ein weiteres Material zuordnen? ", vbYesNo)
If intMsg = vbYes Then
Call MaterialHinzufügen(posX, posY)
End If
End Sub
Private Sub BauteilMsgBox(ByVal posX As Integer, ByVal posY As Integer)
Dim intMsg As Integer
intMsg = MsgBox("Wollen Sie einen weiteres Bauteil eingeben? ", vbYesNo)
If intMsg = vbYes Then
PZCounter = -1
Call BauteilHinzufügen(posX, posY)
End If
End Sub
Private Sub BaugruppeMsgBox(ByVal posX As Integer, ByVal posY As Integer)
Dim intMsg As Integer
intMsg = MsgBox("Wollen Sie eine weitere Baugruppe eingeben? ", vbYesNo)
If intMsg = vbYes Then
PZCounter = -1
If posX