excel eine funktion mit und ohne vba?

2 Antworten

Man kann jede Excel-Funktion auch in VBA bauen.

Beispiel: Du schreibst in A1 und B1 irgendwelche Zahlen rein und in C1 willst du dann mit =SUMME(A1:B1) die Summe berechnen.

In VBA könntest du dafür z.B. schreiben

Public Function SummeA1B1() As Long
SummeA1B1 = Range("A1") + Range("B1")
End Function

und dann kannst du mit =SummeA1B1() die Summe aus A1 und B1 berechnen. Oder wenn du die Summe-Funktion nachbauen willst: 

Public Function eigeneSumme(Zellen As Range) As Long
Dim dieseZelle As Range
Dim Ergebnis As Long
For Each dieseZelle In Zellen
Ergebnis = Ergebnis + dieseZelle
Next dieseZelle
eigeneSumme = Ergebnis
End Function

Damit kannst du dann mit =eigeneSumme(A1:B1) dasselbe berechnen, wie mit =SUMME(A1:B1). Ist allerdings ohne Prüfung, ob in der Zelle auch eine Zahl steht. Dafür müsste die Funktion dann etwas umfangreicher gebaut werden, sonst kommt als Ergebnis #WERT.

Wenn ich es richtig verstehe, willst Du eher die beiden Variante beispielhaft demonstrieren. Reicht Dir da eine einzelne Formel aus oder müsste es mehr sein?

Sichtbar machen könnte man die Unterscheide z.B. mit einer Wenn-Beispiel

Fiktiver Fall: Ab Einkaufswert 100 EUR gibt es 10 EUR Rabatt.
In Spalte A stehen diverse Einzelpreise, die summiert werden. Summe steht dann z.B. in A10. B10 ist der zu zahlende Betrag

Das würdest Du als Formel in A10 schreiben =summe(A1:A9)
und für B10: =wenn(A10>=100;A10-10;A10)

In VBA (könnte man noch kürzer machen, aber hier zu Demozwecken mit einer Variablen)

sub rabatt()
Dim rabatt As integer
Range("A10").Value = WorksheetFunction.Sum(Range("A1:A9"))
If Range("A10").Value >= 100 Then rabatt = 10 Else rabatt = 0
Range("B10").Value = Range("A10").Value - rabatt
end sub

hallo brauche hilfe in vbaaaaaa excel?

hallo, ich brauche hilfe in excel vba, hab eine aufgabenstellung in excel und vba erstellt, allerdings klappt das so net mit vba.

Aufgabenstellung: Habe in den zellen A9 bis A13 Personalnummer angegeben, in Zellen B9 bis B13 stehen Überstunden, wenn man in Zelle C3 die personalnummer eingibt, erscheint in Zelle 4 die Anzahl der Überstunden von der jeweiligen personalnummer, es ist auch eine ampel integriert, so das diese dann immer zwischen grün gelb und rot schaltet, bis alles was kleiner als 110 ist, ist grün, zwischen 110-140 geld, alles was 140 überschreitet ist rot.

das will ich als vba nutzen mit einem button, wenn mann drauf klickt so das mann aufgefordert ist die personalnummer einzugeben und dann ein dialog erscheint und mir sagt , die personalnummer hat soviel überstunden und ist im gelben bereich zb.

aber mit vba klappt das so net ganz, habe drei screenschots gemacht, bild 1 und 2 sind von mir, bild drei ist ein beipspiel, das will auch so bei mir einbinden... ich kriege das aber net gebacken, bei mit kommt immer der fehler laufzeitfehler 424 objekt erforderlich, was heisst, kriege die vba funktion nicht auf excel übertragen

Vba code

Private Sub ComboBox1_Change() y = "" bc = &H8000000F

z = ComboBox1.ListIndex If z > -1 Then y = Cells(9 + z, 2) If y < 110 Then bc = &HC000& If (y >= 110) And (y < 140) Then bc = &HFFFF& If y >= 140 Then bc = &HFF& End If

Label1.Caption = y Image1.BackColor = bc End Sub Private Sub CommandButton1_Click() UserForm1.Hide End Sub Private Sub UserForm_Initialize() For t = 9 To 13 ComboBox1.AddItem (Cells(t, 1)) Next End Sub

hoffe einer kann mir helfen...

danke im voraus

beste grüße matheasi

...zur Frage

Wie kann ich in Excel ein Diagramm per Schieberegler vergrößern bzw. verkleinern?

Hallo, ich muss ein Excel ein Projekt machen. Und zwar will ich, dass man Parameter in eine Funktion eigeben kann und die Funktion dann im Graphen erscheint. Allerdings ist je nach Wahl der Parameter, der Graph besser oder schlechter zu erkennen. Darum hab ich mir gedacht, dass ich den Graph einfach per Schieberegler vergrößern und verkleinern könnte, immer so wie man es grade braucht. Aber wie funktioniert das? Ich schätze mal dafür werde ich Makros bzw. VBA brauchen.

...zur Frage

Was möchtest Du wissen?