Programmieren - alles kontrollieren 4.937 Themen, 20.662 Beiträge

VBA Excel-Programmierung

pol / 10 Antworten / Flachansicht Nickles

Hi! Ich möchte gern in Excel zwei Varianten vorsehen, um z.B. entweder den Preis pro Einheit anhand der Gesamtkosten zu berechnen oder umgekehrt die Gesamtkosten anhand des Preise (also 2 Zellen mit jeweils einer Formel). Die Ausgabe der Berechnung soll in der Zelle erfolgen, in der die Formel steht. Dabei sollen die zugrundeliegenden Formeln (eigentlich ein Zirkelbezug) nicht gelöscht werden, so dass man nachträglich auch noch die zweite Berechnungs-Variante durchführen kann. Wie geht das???


Ich hoffe, das Problem einigermassen verständlich rübergebracht zu haben!? Ich weiss, dass die Aufgabe zu lösen ist, da ich vor kurzem in einem Shareware-Programm diese Möglichkeit entdeckt habe. Leider habe ich trotz eifrigem Probieren noch keine Lösung gefunden. Vielen Dank im Voraus für jeden Tipp!


Pol

bei Antwort benachrichtigen
pol Lars.L „Hallo pol versuche es noch mal im Spotlight Forum...“
Optionen

Hab das Problem gelöst!!! In "Diese Arbeitsmappe" muss man folgendes Makro reinschreiben:
"Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Source As Range)
ActiveWorkbook.Worksheets(1).OnEntry = "Formula"
End Sub"
Dieser Code verweist nun auf das folgende "Modul-Makro":
"Sub Formula()
With ActiveCell
If .Column = 2 And ActiveCell Range("B1") Then
If ActiveCell.Value = "" Or ActiveCell.Value = "0" Then
ActiveCell.Offset(0, 1).Value = ""
Else
ActiveCell.Offset(0, 1).FormulaR1C1 = "=RC[-2]*RC[-1]"
End If
ElseIf .Column = 3 And ActiveCell Range("C1") Then
If ActiveCell.Value = "" Or ActiveCell.Value = "0" Then
ActiveCell.Offset(0, 1).Value = ""
Else
ActiveCell.Offset(0, -1).FormulaR1C1 = "=RC[1]/RC[-1]"
End If
Else
End If
End With
End Sub"

Und schon funktioniert's!
Danke für den Link!

Pol

bei Antwort benachrichtigen