Supportnet / Forum / Tabellenkalkulation
Beat Berechnung unter Excel
Frage
Hallo zusammen, als Hobby DJ möchte ich mir gerne unter Excel (evtl. später als eigenes Programm mit VB) eine Umrechnungstabelle erstellen.
Sie soll folgende Funktionen aufweisen.
Unterteilung linker/rechter Player
Jeweils folgende Felder:
Original BPM Zahl des Songs
Pitch-Fader Stellung
Ist-BPM Zahl des Songs (errechnet sich ja einfach durch ((Gw/100)*Ps)+Gw
Bsp.
Orig. BPM 140 (Gw)
Pitch +2% (Ps)
((140/100)*2)+140 = 142,8 BPM (Pw)
Soweit sogut...
Jetzt möchte ich aber eine gewisse Automatik einbringen.
Entweder ich gebe die Daten wie oben beschrieben ein, sprich ich weiss die Original BPM's und die Pitch-Stellung und das Programm stellt mir im dritten Feld des jeweiligen Players die realen BPM's dar.
Oder aber ich weiss die Original BPM's, gebe aber die realen (soll) BPM's im dritten Feld an und das Programm/die Tabelle geben mir die benötigte Pitchstellung an.
Wie schreibe ich Funktionen so, dass entweder/oder berechnet wird...
Weiss jemand rat ?
Cheers
Lolli
Antwort 1 von Flooooo
Da hilft dir am ehesten VBA:
So, du hast in SpalteA die alten BPM, in SpalteB den Pitch, in SpalteC die neuen BPM. Wenn du jetzt in ein Feld klickst, wird für diese Zeile der Wert dieses Feldes anhand der beiden anderen Felder berechnet.
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim zeile As Integer
Dim spalte As Integer
Dim ergebnis As Double
zeile = ActiveCell.Row
spalte = ActiveCell.Column
If spalte = 1 Then ergebnis = Cells(zeile, 3) / (Cells(zeile, 2) + 1)
If spalte = 2 Then ergebnis = (Cells(zeile, 3) / Cells(zeile, 1)) - 1
If spalte = 3 Then ergebnis = Cells(zeile, 1) * (Cells(zeile, 2) + 1)
ActiveCell.Value = ergebnis
End SubSo, du hast in SpalteA die alten BPM, in SpalteB den Pitch, in SpalteC die neuen BPM. Wenn du jetzt in ein Feld klickst, wird für diese Zeile der Wert dieses Feldes anhand der beiden anderen Felder berechnet.
Antwort 2 von Flooooo
Noch ne kleine verbesserung, sonst kann man nicht arbeiten:
Bau dir entweder einen Button, der die berechnung aus- und anschaltet, oder:
In Feld E1 muss "nein" stehen, wenn die Berechnung aus sein soll, dann:
Bau dir entweder einen Button, der die berechnung aus- und anschaltet, oder:
In Feld E1 muss "nein" stehen, wenn die Berechnung aus sein soll, dann:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Cells(1, 5) = "nein" Then
Dim zeile As Integer
Dim spalte As Integer
Dim ergebnis As Double
zeile = ActiveCell.Row
spalte = ActiveCell.Column
If spalte = 1 Then ergebnis = Cells(zeile, 3) / (Cells(zeile, 2) + 1)
If spalte = 2 Then ergebnis = (Cells(zeile, 3) / Cells(zeile, 1)) - 1
If spalte = 3 Then ergebnis = Cells(zeile, 1) * (Cells(zeile, 2) + 1)
ActiveCell.Value = ergebnis
End If
End SubAntwort 3 von Lolli
WOW, schnelle Antwort, aber ehrlich gesagt verstehe ich das nicht so ganz. Bin in VB TOTAL unerfahren......
Ich habe eine neue Tabelle, öffne den VB-Editor und füge Deinen Code ein. Dann schliesse ich und kehre zurück zur Tabelle.
A1: 140
B1: 2 (steht nach eingabe von 140 zuerst -1)
C1: 420
Das ist doch irgendwie falsch....
Ich habe eine neue Tabelle, öffne den VB-Editor und füge Deinen Code ein. Dann schliesse ich und kehre zurück zur Tabelle.
A1: 140
B1: 2 (steht nach eingabe von 140 zuerst -1)
C1: 420
Das ist doch irgendwie falsch....
Antwort 4 von Flooooo
das hat nix mit VBA zu tun: Formatiere die B-Spalte als Prozentwerte! (2% ist nicht 2, sondern 0,02)

