Aktuell kann es Probleme bei der Anmeldung mit dem Chrome oder Edge Browser geben. Ihr müsstet in die Einstellungen des Browsers gehen und Cache, Cookies und sofern vorhanden, gespeicherte Passwörter vom CEF löschen oder alternativ auf einen anderen Browser ausweichen. Ursache sind vermutlich kürzliche Browserupdates. x

Anfängerfrage: Feld als Ergebnis oder Basiswert verwenden
#1
Hallo,

wenn ich eine Berechnung der Form a = b/c machen möchte habe ich 3 Felder: a als Ergebnis, b und c für die Basiswerte.
Ist es möglich auch Werte in a einzugeben welche automatisch zur Berechnung von b oder c verwendet werden, vorausgesetzt b oder c sind gegeben?
D.h. gleichzeitig alle 3 Felder zur Berechnung der jeweilig anderen verwenden? Bis jetzt sehe ich nur die Möglichkeit ein Feld entweder für die Ergebnisse oder für Basiswerte zu verwenden.
Möchte aber a auch manchmal für Basiswerte und manchmal fürs Ergebnis verwenden.

Vorschläge sind willkommen.
Top
#2
Hallo

ja, das geht. Aber nur mit VBA.


Aber: Bei  A1=B1 / C1 gibt es bei Änderung von A1 keine eindeutige Lösung

Beispiel: A1 Eingabe =0,5
dann muss der Zähler halb so groß sein wie der Nenner, also zB. 2 / 4 aber auch 8/16 oder...
Es gibt also unendlich viele Lösungen.

Da muss dann zusätzlich festgelegt werden, ob B1 oder C1 dann als Fixwert genommen werden soll


- Rechtsclick auf den Tabellenblattreiter
- Code anzeigen
- Das dort reinkopieren

Code:
Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
    On Error GoTo Fehler
    Const APPNAME = "Worksheet_Change"
    If Target.Count > 1 Then
        MsgBox "Bitte nur einzeln ändern"
        Application.EnableEvents = False
        Application.Undo

    Else
        If Not Intersect(Target, Union([A1], [B1], [C1])) Is Nothing Then
            If [C1] = 0 Then
                MsgBox "Division durch 0"
                Application.EnableEvents = False
                Application.Undo

            Else
                Application.EnableEvents = False
                Select Case Target.Column
               
                    Case 1
                        [B1] = Target * [C1] 'C1 wird als Fix angenommen
                       
                    Case 2
                        [A1] = Target / [C1]
                   
                    Case 3
                        If Target = 0 Then
                            MsgBox "Division durch 0"
                        Else
                            [A1] = [B1] / Target
                        End If
                End Select
            End If
   
        End If
    End If
    '*** Fehlerbehandlung
    Err.Clear
Fehler:
    Application.EnableEvents = True
    If Err.Number <> 0 Then MsgBox "Fehler in Sub """ & APPNAME & """" & vbCrLf _
        & "Fehlernummer: " & Err.Number & vbLf & Err.Description: Err.Clear
End Sub



LG UweD
Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste