Thema Datum  Von Nutzer Rating
Antwort
06.06.2021 20:17:49 Quendio
NotSolved
07.06.2021 01:36:23 Gast2418
NotSolved
Rot Multiplikation mit VBA
09.06.2021 12:44:39 Ulrich
NotSolved

Ansicht des Beitrags:
Von:
Ulrich
Datum:
09.06.2021 12:44:39
Views:
461
Rating: Antwort:
  Ja
Thema:
Multiplikation mit VBA

Hallo,

ich bin auch der Meinung, dass du mit Formeln besser dran bist, als mit VBA.

Ich würde (wahrscheinlich) die Spalte "Volumen" hinzufügen. Dann kannst du dort das Volumen berechnen:

=WENN(Q2=1;D2*E2*F2; WENN(Q2=2;PI()*(K2/2)*D2; WENN(Q2=...;....; ......))

Dann würde ich (wahrscheinlich) noch die Spalte "Material" oder die Spalte "Dichte" hinzufügen.

Dann berechnet sich das Gewicht aus Volumen * Dichte. Dann funktioniert die Tabelle auch noch, wenn du mal ne Aluplatte hast ....

 

Willst du keine Spalte hinzufügen, dann würde ich wenigstens die 0,00000785 in einen Namen (für Formeln) oder in eine Konstante (für VBA) packen. Dann kann man das sehr leicht auf ein anderes Material anpassen.

 

in VBA könnte das in etwa so aussehen:

Option Explicit

'Spalten
    Const SP_LÄNGE As Integer = 4
    Const SP_BREITE As Integer = 5
    Const SP_HÖHE As Integer = 6
    Const SP_WANDDICKE As Integer = 7
    Const SP_AUSSENDURCHMESSER As Integer = 8
    Const SP_INNENDURCHMESSER As Integer = 9
    Const SP_SCHLÜSSELWEITE As Integer = 10
    Const SP_DURCHMESSER As Integer = 11
    
Const DICHTE_STAHL As Double = 0.00000785   '[g/m^3]


Sub Beispiel()
Dim Zeile As Long
Dim Volumen As Double
Dim Gewicht As Double

Zeile = 2
Select Case Cells(Zeile, 17)
Case 1
    Volumen = Cells(Zeile, SP_LÄNGE) * Cells(Zeile, SP_BREITE) * Cells(Zeile, SP_HÖHE)
Case 2
    Volumen = ...
Case 3
    Volumen = ...
Case Else
    Volumen = 0

Gewicht = Volumen * DICHTE_STAHL

MsgBox Gewicht

End Sub

 

Die Spalten muss man nicht in Konstanten auslagern. Das könnte praktisch sein, ich bin aber auch nicht so ganz happy damit. Ich bin aber der Meinung, dass sich damit der Code besser liest und man beim lesen des Codes mitdenken kann. Ach ja,  \pi erhältst du in VBA mit application.worksheetfunction.pi()

Grüße, Ulrich

 


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
06.06.2021 20:17:49 Quendio
NotSolved
07.06.2021 01:36:23 Gast2418
NotSolved
Rot Multiplikation mit VBA
09.06.2021 12:44:39 Ulrich
NotSolved