10.01.2017, 11:16
(Dieser Beitrag wurde zuletzt bearbeitet: 11.01.2017, 11:18 von Rabe.
Bearbeitungsgrund: Code-Tags benutzt, Smilies ausgeschaltet
)
Hallo an alle,
ich habe einen Makro registriert. Sie ist ein bischen lang, aber er funktioniert.
Musste diese Makro erstellen, weil es eine meiner Aufgaben ist und ich Ihn immer wieder verwenden muss.
Es gibt allerdings einige variablen.
Im VBA code wird immer wieder mit 80 multipliziert und ich beziehe mich auf Kolonne F.
Gibt es die Möglichkeit, dass beim ausführen von meinem Makro mich gefragt wird welche Kolonne ausgewählt werden soll und mit welchen Wert multipliziert werden soll?
Es soll nähmlich nicht immer mit 80 multipliziert werden. Es ist immer unterschiedlich. es könnte sein dass ich mit 100 multiplizieren muss und dann alles geteilt durch 1000 machen muss, weil die Einheit anders ist.
Anbei mein VBA code.
Mein code führt folgende arbeit aus: Er nimmt alle Tageswerte und summiert sie. Es sind insegesamt 96 Werte an einem Tag und ich beziehe mich immer auf einem kompletten Monat. Er summiert aber die tageswerte und die einzelnen summen werden in einer Kolonne von 1-30 oder von 1-31 untereinander aufgelistet und dann mit einem Wert multipliziert.
Genau so bekomme ich den Tageswert den ich benötige. Meine Werte sind kWh. es sind Daten von einem Energie Zähler.
VBA CODE:
Anbei Beispiele.
ich habe einen Makro registriert. Sie ist ein bischen lang, aber er funktioniert.
Musste diese Makro erstellen, weil es eine meiner Aufgaben ist und ich Ihn immer wieder verwenden muss.
Es gibt allerdings einige variablen.
Im VBA code wird immer wieder mit 80 multipliziert und ich beziehe mich auf Kolonne F.
Gibt es die Möglichkeit, dass beim ausführen von meinem Makro mich gefragt wird welche Kolonne ausgewählt werden soll und mit welchen Wert multipliziert werden soll?
Es soll nähmlich nicht immer mit 80 multipliziert werden. Es ist immer unterschiedlich. es könnte sein dass ich mit 100 multiplizieren muss und dann alles geteilt durch 1000 machen muss, weil die Einheit anders ist.
Anbei mein VBA code.
Mein code führt folgende arbeit aus: Er nimmt alle Tageswerte und summiert sie. Es sind insegesamt 96 Werte an einem Tag und ich beziehe mich immer auf einem kompletten Monat. Er summiert aber die tageswerte und die einzelnen summen werden in einer Kolonne von 1-30 oder von 1-31 untereinander aufgelistet und dann mit einem Wert multipliziert.
Genau so bekomme ich den Tageswert den ich benötige. Meine Werte sind kWh. es sind Daten von einem Energie Zähler.
VBA CODE:
Code:
Sub TageswerteMonat()
' Monatsproduktion Tag für Tag. Wenn alle Daten vorhanden sind. also 96 Zellen pro Tag, weil jede 15 minuten daten vorhanden sind
Range("N6").Select
ActiveCell.FormulaR1C1 = "=SUM(R[-1]C[-8]:R[94]C[-8])*80"
Range("N6").Select
ActiveWindow.SmallScroll Down:=183
ActiveWindow.ScrollRow = 181
ActiveWindow.ScrollRow = 177
ActiveWindow.ScrollRow = 169
ActiveWindow.ScrollRow = 157
ActiveWindow.ScrollRow = 148
ActiveWindow.ScrollRow = 144
ActiveWindow.ScrollRow = 136
ActiveWindow.ScrollRow = 107
ActiveWindow.ScrollRow = 95
ActiveWindow.ScrollRow = 33
ActiveWindow.ScrollRow = 1
Range("N7").Select
ActiveCell.FormulaR1C1 = "=SUM(f)"
Range("N7").Select
ActiveCell.FormulaR1C1 = "=SUM(R[94]C[-8]:R[189]C[-8])"
Range("N7").Select
ActiveCell.FormulaR1C1 = "=SUM(R[94]C[-8]:R[189]C[-8])*80"
Range("N7").Select
ActiveCell.FormulaR1C1 = "=SUM(R[94]C[-8]:R[189]C[-8])*80"
Range("N8").Select
ActiveCell.FormulaR1C1 = "=SUM(R[189]C[-8]:R[285]C[-8])"
Range("N8").Select
ActiveCell.FormulaR1C1 = "=SUM(R[189]C[-8]:R[285]C[-8])*80"
Range("N8").Select
ActiveCell.FormulaR1C1 = "=SUM(R[189]C[-8]:R[284]C[-8])*80"
Range("N9").Select
ActiveWindow.SmallScroll Down:=-9
Range("N9").Select
ActiveCell.FormulaR1C1 = "=SUM(R[283]C[-8]:R[379]C[-8])"
Range("N9").Select
ActiveCell.FormulaR1C1 = "=SUM(R[283]C[-8]:R[379]C[-8])*80"
Range("N9").Select
ActiveCell.FormulaR1C1 = "=SUM(R[284]C[-8]:R[379]C[-8])*80"
Range("N10").Select
ActiveWindow.SmallScroll Down:=-9
Range("N10").Select
ActiveCell.FormulaR1C1 = "=SUM(R[284]C[-8]:R[379]C[-8])"
Range("N10").Select
ActiveCell.FormulaR1C1 = "=SUM(R[284]C[-8]:R[379]C[-8])*80"
Range("N10").Select
ActiveCell.FormulaR1C1 = "=SUM(R[283]C[-8]:R[378]C[-8])*80"
Range("N11").Select
ActiveWindow.SmallScroll Down:=-12
Range("N10").Select
ActiveCell.FormulaR1C1 = "=SUM(R[379]C[-8]:R[474]C[-8])*80"
Range("N10").Select
ActiveCell.FormulaR1C1 = "=SUM(R[379]C[-8]:R[474]C[-8])*80"
Range("N11").Select
ActiveWindow.SmallScroll Down:=-12
Range("N11").Select
ActiveCell.FormulaR1C1 = "=SUM(R[474]C[-8]:R[569]C[-8])*80"
Range("N11").Select
ActiveCell.FormulaR1C1 = "=SUM(R[474]C[-8]:R[569]C[-8])*80"
Range("N12").Select
ActiveWindow.SmallScroll Down:=-12
Range("O6").Select
ActiveCell.FormulaR1C1 = "5"
Range("P6").Select
ActiveCell.FormulaR1C1 = "100"
Range("O7").Select
ActiveCell.FormulaR1C1 = "101"
Range("P7").Select
ActiveCell.FormulaR1C1 = "196"
Range("O8").Select
ActiveCell.FormulaR1C1 = "=R[-1]C-R[-2]C"
Range("O8").Select
Selection.ClearContents
ActiveCell.FormulaR1C1 = "=R[-1]C+96"
Range("P8").Select
ActiveCell.FormulaR1C1 = "=R[-1]C+96"
Range("O8").Select
Selection.AutoFill Destination:=Range("O8:O9"), Type:=xlFillDefault
Range("O8:O9").Select
Range("O9").Select
ActiveCell.FormulaR1C1 = "=R[-1]C+96"
Range("P8").Select
Selection.AutoFill Destination:=Range("P8:P36"), Type:=xlFillDefault
Range("P8:P36").Select
Range("O9").Select
Selection.AutoFill Destination:=Range("O9:O36"), Type:=xlFillDefault
Range("O9:O36").Select
Range("O38").Select
ActiveWindow.SmallScroll Down:=-12
Range("N12").Select
ActiveCell.FormulaR1C1 = "=SUM(R[569]C[-8]:R[664]C[-8])*80"
Range("N13").Select
Columns("N:N").EntireColumn.AutoFit
Columns("N:N").ColumnWidth = 20.56
ActiveWindow.ScrollColumn = 2
ActiveWindow.SmallScroll ToRight:=2
Columns("O:O").ColumnWidth = 20.67
Columns("O:O").ColumnWidth = 28.44
Range("N13").Select
ActiveCell.FormulaR1C1 = "=SUM(R[664]C[-8]:R[759]C[-8])*80"
Range("N14").Select
ActiveCell.FormulaR1C1 = "=SUM(R[759]C[-8]:R[854]C[-8])*80"
Range("N14").Select
ActiveCell.FormulaR1C1 = "=SUM(R[759]C[-8]:R[854]C[-8])*80"
Range("N15").Select
ActiveCell.FormulaR1C1 = "=SUM(R[854]C[-8]:R[949]C[-8])*80"
Range("N16").Select
ActiveCell.FormulaR1C1 = "=SUM(R[949]C[-8]:R[1044]C[-8])*80"
Range("N17").Select
ActiveCell.FormulaR1C1 = "=SUM(R[1044]C[-8]:R[1139]C[-8])*80"
Range("N17").Select
ActiveCell.FormulaR1C1 = "=SUM(R[1044]C[-8]:R[1139]C[-8])*80"
Range("N18").Select
ActiveCell.FormulaR1C1 = "=SUM(R[1139]C[-8]:R[1234]C[-8])*80"
Range("N19").Select
ActiveCell.FormulaR1C1 = "=SUM(R[1234]C[-8]:R[1329]C[-8])*80"
Range("N20").Select
ActiveWindow.SmallScroll Down:=-3
Range("N5").Select
ActiveCell.FormulaR1C1 = "Anlage"
Range("N20").Select
ActiveCell.FormulaR1C1 = "=SUM(R[1329]C[-8]:R[1424]C[-8])*80"
Range("N21").Select
ActiveCell.FormulaR1C1 = "=SUM(R[1424]C[-8]:R[1519]C[-8])*80"
Range("N22").Select
ActiveCell.FormulaR1C1 = "=SUM(R[1519]C[-8]:R[1614]C[-8])*80"
Range("N23").Select
ActiveCell.FormulaR1C1 = "=SUM(R[1614]C[-8]:R[1709]C[-8])*80"
Range("N24").Select
ActiveCell.FormulaR1C1 = "=SUM(R[1709]C[-8]:R[1804]C[-8])*80"
Range("N25").Select
ActiveWindow.SmallScroll Down:=9
ActiveCell.FormulaR1C1 = "=SUM(R[1804]C[-8]:R[1899]C[-8])*80"
Range("N26").Select
ActiveCell.FormulaR1C1 = "=SUM(R[1899]C[-8]:R[1994]C[-8])*80"
Range("N27").Select
ActiveCell.FormulaR1C1 = "=SUM(R[1994]C[-8]:R[2089]C[-8])*80"
Range("N28").Select
ActiveCell.FormulaR1C1 = "=SUM(R[2089]C[-8]:R[2184]C[-8])*80"
Range("N28").Select
ActiveCell.FormulaR1C1 = "=SUM(R[2089]C[-8]:R[2184]C[-8])*80"
Range("N29").Select
ActiveCell.FormulaR1C1 = "=SUM(R[2184]C[-8]:R[2279]C[-8])*80"
Range("N30").Select
ActiveCell.FormulaR1C1 = "=SUM(R[2279]C[-8]:R[2374]C[-8])*80"
Range("N31").Select
ActiveCell.FormulaR1C1 = "=SUM(R[2374]C[-8]:R[2469]C[-8])*80"
Range("N32").Select
ActiveCell.FormulaR1C1 = "=SUM(R[2469]C[-8]:R[2564]C[-8])*80"
Range("N33").Select
ActiveCell.FormulaR1C1 = "=SUM(R[2564]C[-8]:R[2659]C[-8])*80"
Range("N34").Select
ActiveCell.FormulaR1C1 = "=SUM(R[2659]C[-8]:R[2754]C[-8])*80"
Range("N35").Select
ActiveCell.FormulaR1C1 = "=SUM(R[2754]C[-8]:R[2849]C[-8])*80"
Range("N36").Select
ActiveCell.FormulaR1C1 = "=SUM(R[2849]C[-8]:R[2944]C[-8])*80"
Range("N37").Select
ActiveWindow.SmallScroll Down:=-6
Range("N5").Select
ActiveCell.FormulaR1C1 = "Anlage k = 80"
Range("N5").Select
End Sub
Anbei Beispiele.