Thema Datum  Von Nutzer Rating
Antwort
16.08.2018 20:59:56 David
Solved
16.08.2018 21:14:33 Gast33572
NotSolved
16.08.2018 21:22:02 David
NotSolved
17.08.2018 02:50:40 Glue
NotSolved
17.08.2018 02:59:13 Glue
NotSolved
17.08.2018 07:30:31 David Beutlin
NotSolved
Rot Rechenoperation wird nicht ausgeführt
17.08.2018 14:04:47 Gast42379
NotSolved
17.08.2018 14:09:41 Gast94704
NotSolved

Ansicht des Beitrags:
Von:
Gast42379
Datum:
17.08.2018 14:04:47
Views:
597
Rating: Antwort:
  Ja
Thema:
Rechenoperation wird nicht ausgeführt

Super, damit läst sich schon mehr anfangen. ;-)

Hier mal das Beispiel mit abgelegten Daten in einem Tabellenblatt (was man dann später schreibschützen und/oder verstecken kann).

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
'UserForm: 'Biegemaske'
Option Explicit
 
Private Sub CommandButton12_Click() '<- Schaltfläche sollte einen aussagekräftigeren Namen bekommen
   
  Dim C As Double 'C-Faktor
   
'# C-Faktor anhand des ausgewählten Materials/Werkstoffs ermitteln
   
  '... von einem Tabellenblatt beziehen (z.B. Werkstoffs-Bezeichnung, eine(1) Spalte rechts)
  '    ("_WerkstoffListe" ein zuvor ersteller Bereichs-Name in Excel)
  C = Worksheets("Werkstoffe").Range("_WerkstoffListe").Cells(1).Offset(ComboBox1.ListIndex, 1).Value '< hier wird die erste Zelle im Bereich um X Zeilen (ListIndex) nach unten verschoben
                                                                                                      '  und um eine(1) Spalte nach rechts, wo dann (hier angenommen) der C-Faktor steht
   
'  '... ODER direkt hier im Quellcode angegeben
'  If ComboBox1 = "Stahlblech" Then
'       C = 0.6
'  ElseIf ComboBox1 = "Tiefziehblech" Then
'       C = 0.3
'  ElseIf ComboBox1 = "Rostfreier Stahl (mart. ferrit.)" Then
'       C = 0.8
'  ElseIf ComboBox1 = "Rostfreier Stahl (austenitisch)" Then
'       C = 0.5
'  ElseIf ComboBox1 = "Kupfer" Then
'       C = 0.25
'  ElseIf ComboBox1 = "Zinnbronze" Then
'       C = 0.6
'  ElseIf ComboBox1 = "Aluminiumbronze" Then
'       C = 0.5
'  ElseIf ComboBox1 = "CuZn28" Then
'       C = 0.3
'  ElseIf ComboBox1 = "CuZn40" Then
'       C = 0.35
'  ElseIf ComboBox1 = "Zink" Then
'       C = 0.4
'  ElseIf ComboBox1 = "Alu (Weich)" Then
'       C = 0.6
'  ElseIf ComboBox1 = "Alu (Halbhart)" Then
'       C = 0.9
'  ElseIf ComboBox1 = "Alu (Hart)" Then
'       C = 2
'  ElseIf ComboBox1 = "AlMg3 (weich)" Then
'       C = 1
'  ElseIf ComboBox1 = "AlMg3 (Hart)" Then
'       C = 1.3
'  ElseIf ComboBox1 = "AlMg7 (weich)" Then
'       C = 2
'  ElseIf ComboBox1 = "AlMg7 (hart)" Then
'       C = 3
'  ElseIf ComboBox1 = "AlMg9 (weich)" Then
'       C = 2.2
'  ElseIf ComboBox1 = "AlMg9 (hart)" Then
'       C = 5
'  ElseIf ComboBox1 = "AlMgSi (weich)" Then
'       C = 1.2
'  ElseIf ComboBox1 = "AlMgSi (hart)" Then
'       C = 2.5
'  ElseIf ComboBox1 = "AlSi (weich)" Then
'       C = 0.8
'  ElseIf ComboBox1 = "AlSi (hart)" Then
'       C = 6
'  ElseIf ComboBox1 = "AlMn (weich)" Then
'       C = 1
'  ElseIf ComboBox1 = "AlMn (hart)" Then
'       C = 1.2
'  ElseIf ComboBox1 = "AlMn (preßhart)" Then
'       C = 1.2
'  ElseIf ComboBox1 = "AlCu (weich)" Then
'       C = 1
'  ElseIf ComboBox1 = "AlCu (hart)" Then
'       C = 3
'  ElseIf ComboBox1 = "AlCuMg (weich)" Then
'       C = 1.2
'  ElseIf ComboBox1 = "AlCuMg (preßhart)" Then
'       C = 1.5
'  ElseIf ComboBox1 = "AlCuMg (hart)" Then
'       C = 3
'  ElseIf ComboBox1 = "AlCuNi (geglüht)" Then
'       C = 1.4
'  ElseIf ComboBox1 = "AlCuNi (ungeglüht)" Then
'       C = 3.5
'  ElseIf ComboBox1 = "MgMn" Then
'       C = 5
'  ElseIf ComboBox1 = "MgAl6" Then
'       C = 3
'  End If
   
  '<Berechnung_hier>
   
End Sub
 
Private Sub UserForm_Initialize()
   
'# Steuerelemente initialisieren
  With ComboBox1 '> Liste mit Materialien/Werkstoffe
     
    '... von einem Tabellenblatt beziehen
    '    ("_WerkstoffListe" ein zuvor ersteller Bereichs-Name in Excel)
'    .RowSource = Worksheets("Werkstoffe").Range("_WerkstoffListe").Address(External:=True)
    'bzw. auch so:
    .List = Worksheets("Werkstoffe").Range("_WerkstoffListe").Value
     
'    '... ODER direkt hier im Quellcode angegeben
'    .AddItem "Stahlblech"
'    .AddItem "Tiefziehblech"
'    .AddItem "Rostfreier Stahl (mart. ferrit.)"
'    .AddItem "Rostfreier Stahl (austenitisch)"
'    .AddItem "Kupfer"
'    .AddItem "Zinnbronze"
'    .AddItem "Aluminiumbronze"
'    .AddItem "CuZn28"
'    .AddItem "CuZn40"
'    .AddItem "Zink"
'    .AddItem "Alu (Weich)"
'    .AddItem "Alu (Halbhart)"
'    .AddItem "Alu (Hart)"
'    .AddItem "AlMg3 (weich)"
'    .AddItem "AlMg3 (Hart)"
'    .AddItem "AlMg7 (weich)"
'    .AddItem "AlMg7 (hart)"
'    .AddItem "AlMg9 (weich)"
'    .AddItem "AlMg9 (hart)"
'    .AddItem "AlMgSi (weich)"
'    .AddItem "AlMgSi (hart)"
'    .AddItem "AlSi (weich)"
'    .AddItem "AlSi (hart)"
'    .AddItem "AlMn (weich)"
'    .AddItem "AlMn (hart)"
'    .AddItem "AlMn (preßhart)"
'    .AddItem "AlCu (weich)"
'    .AddItem "AlCu (hart)"
'    .AddItem "AlCuMg (weich)"
'    .AddItem "AlCuMg (preßhart)"
'    .AddItem "AlCuMg (hart)"
'    .AddItem "AlCuNi (geglüht)"
'    .AddItem "AlCuNi (ungeglüht)"
'    .AddItem "MgMn"
'    .AddItem "MgAl6"
     
    If .ListCount > 0 Then .ListIndex = 0
     
  End With
 
End Sub

Der Vorteil beim ablegen der ganzen Daten (Werkstoffe und zugehöriger Eigenschaften wie z.B. C-Faktor) ist der, das man den Code nicht anpassen muss, sondern die Liste im Tabellenblatt einfach ändert. Der Quellcode wird dadurch auch erheblich kürzer und es ist weniger fehleranfällig (unterschiedliche Schreibweise der Werkstoffe im Quellcode führt zu mitunter schwer zu findenen Fehlern, die Zuordnung von Werkstoff-Eigenschaften zu Werkstoff im Quellcode ist einfach nur schildbürgerlich kompliziert).

 

Grüße


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
16.08.2018 20:59:56 David
Solved
16.08.2018 21:14:33 Gast33572
NotSolved
16.08.2018 21:22:02 David
NotSolved
17.08.2018 02:50:40 Glue
NotSolved
17.08.2018 02:59:13 Glue
NotSolved
17.08.2018 07:30:31 David Beutlin
NotSolved
Rot Rechenoperation wird nicht ausgeführt
17.08.2018 14:04:47 Gast42379
NotSolved
17.08.2018 14:09:41 Gast94704
NotSolved