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:
476
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).

'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