Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1688to1692
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Eigene Excel-Formel: Eingabewerte per Maus wählen

Eigene Excel-Formel: Eingabewerte per Maus wählen
03.05.2019 18:55:14
Bitter
Hallo Zusammen,
Ich bin relativ neu bei der VBA-Programmierung in Excel, habe aber bereits mit Hilfe von Tutorials eigene Formeln erstellt.
Die Eingabewerte der bisher erstellten Formeln habe ich nach folgendem Stil an die VBA-Berechnung weitergegeben:
Function Formel1(a as Double, b as Double, c as Double)
Nun zu meiner Frage:
Ich würde gerne eine Formel erstellen bei der 36 Werte an die Formel übergeben werden sollen.
Die Eingabewerte stehen in einer Zeile nebeneinander und ich möchte Sie über die Auswahl mit der Maus bzw. eines Bereichs eingeben und nicht einzeln mit Komma getrennt.
Ich stelle mir das Ganze von der Benutzung ähnlich wie die Excel-Formel SUMME() vor, bei der man die einzelnen Summanden über die Markierung mit der Maus an die Formel übergibt.
Gibt es dazu möglichen in VBA so etwas umzusetzen? Bzw. wie nennt man diese Funktion nach der ich suche?
Vielen Dank für alle Hilfen und Unterstützungen schon im Voraus.
Mfg

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Eigene Excel-Formel: Eingabewerte per Maus wählen
03.05.2019 19:01:38
Hajo_Zi
a as Range

Beiträge von Werner, Luc, robert, J.O.Maximo und folgende lese ich nicht.
Die Beiträge werden auch ignoriert, es erfolgt keine Antwort.
AW: Eigene Excel-Formel: Eingabewerte per Maus wählen
03.05.2019 19:19:30
Bitter
Vielen Dank für die schnellen Rückmeldungen :)
Wie rufe ich den Bereich den ich zuvor über a as Range definiert habe auf?
Die weitere Berechnung soll wie folgt aussehen:
Es gibt in der Formel 36 feste Werte, die sich nicht verändern. Diese festen Werte sollen dann mit den Eingabewerten multipliziert werden und anschließend alle Ergebnisse summiert ausgegeben werden.
Bsp:
Wert 1 * Eingabewert 1 = x1
Wert 2* Eingabewert 2 = x2
usw.
Das Endergebnis ergibt sich dann aus der Summe von x1 - x36.
Wie rufe ich also Eingabewert 1, Eingabewert 2, usw aus der Eingebenen Range auf?
Vielen Dank :)
Anzeige
AW: Eigene Excel-Formel: Eingabewerte per Maus wählen
03.05.2019 19:03:02
onur
Bei Summe wird ein BEREICH übergeben und nicht 36 Werte - nur SO ginge es.
AW: Eigene Excel-Formel: Eingabewerte per Maus wählen
03.05.2019 19:29:05
Bitter
Evtl. habe ich die "Fachwörter" von Bereich und Wert noch nicht ganz richtig verstanden oder benutze die Wörter falsch?
Aber genau, ein Bereich soll übergeben werden, der in meinem Fall immer aus 36 in einer Zeile (nebeneinander) stehenden Werten besteht, die ich dann im weiteren Code weiter verrechnen möchte.
AW: Eigene Excel-Formel: Eingabewerte per Maus wählen
03.05.2019 19:43:18
onur
Zum Thema Fachwörter: Jemand, der sich mit "EXCEL-GUT" bewertet, sollte eigentlich wissen, was eine Formel ist und was eine Funktion (ebenso was ein Bereich ist und was ein Wert).
Ebenso würde ich bei deinen VBA-Kenntnissen an deiner Stelle auch nicht schreiben: "Ich würde gerne eine Formel erstellen", sondern "Ich brauche Jemanden, der für mich eine Funktion erstellt".
Anzeige
AW: Eigene Excel-Formel: Eingabewerte per Maus wählen
03.05.2019 19:52:03
Bitter
Bisher haben meine Excel-Kenntnisse mich immer ans Ziel gebracht :)
Die Formel bzw. Funktion habe ich ja bereits erstellt. Es scheitert bei mir aktuell daran, dass ich die Bedienerfreundlichkeit über eine andere Eingabemethode verbessern möchte und nicht weiß unter welchem Stichwort ich dazu Lösungen suchen soll.
AW: Eigene Excel-Formel: Eingabewerte per Maus wählen
03.05.2019 19:38:35
Bitter
Die Formel wird über ein Addon in Excel hinterlegt, sodass man in jedem Tabellenblatt auf die Formel zugreifen kann, wenn sie benötigt wird. Ich glaube die Markierung des Bereichs wie bei der SUMME() ist intuitiver als die Eingabe über eine Inputbox.
Aktuell habe ich die Formel über die Eingabe per kommagetrennter Eingabe dieser 36 Werte in meinem Excel-Addon implementiert. Die sämtlichen Klicks sind nur nicht sehr bedienerfreundlich :D
Deshalb möchte ich die Formel über die Bereichseingabe bedienerfreundlicher machen.
Danke trotzdem für die Idee. Kann ich mit Sicherheit an anderer Stelle noch einmal drauf zurückgreifen :)
Anzeige
AW: Eigene Excel-Formel: Eingabewerte per Maus wählen
04.05.2019 06:59:49
Sepp
Hallo ?,
zeig doch mal die gesamte funktion.
Beispiel
04.05.2019 07:47:46
Sepp
Hallo ?
nach deiner Beschreibung könnte die Funktion so aussehen.
 ABCDEFGHIJKLMNOPQRSTUVWXYZAAABACADAEAFAGAHAIAJAKAL
1                                      
2                                      
312345678910111213141516171819202122232425262728293031323334353616206 
4111111111111111111111111111111111111666 
5                                      
6                                      
7                                      
8                                      

ZelleFormel
AK3=formel1(A3:AJ3)
AK4=formel1(A4:AJ4)
Verwendete Systemkomponenten: [Windows (32-bit) NT 10.00] MS Excel 2016
Diese Tabelle wurde mit Tab2Html (v) erstellt. ©Gerd alias Bamberg
Public Function Formel1(Bereich As Range) As Variant
  Dim varValues As Variant
  
  'Deine Werte - Anpassen 
  varValues = Array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, _
    28, 29, 30, 31, 32, 33, 34, 35, 36)

  On Error GoTo ErrorHandler
  
  If Bereich.Count = Ubound(varValues) + 1 Then
    If Bereich.Rows.Count = 1 Then
      Formel1 = Application.SumProduct(Bereich, varValues)
    ElseIf Bereich.Columns.Count = 1 Then
      Formel1 = Application.SumProduct(Bereich, Application.Transpose(varValues))
    Else
      Formel1 = CVErr(xlErrRef)
    End If
  Else
    Formel1 = CVErr(xlErrRef)
  End If
  Exit Function
  
ErrorHandler:
  Formel1 = CVErr(xlErrValue)
End Function

VBA/HTML-CodeConverter, AddIn für Office 2002-2016 - in VBA geschrieben von Lukas Mosimann. Projektbetreuung:RMH Software & Media

Code erstellt und getestet in Office 16 - mit VBAHTML 12.6.0


Allerdings erschließt sich der Sinn einer solchen Funktion nicht, da man dieses Ergebnis auch mit der XL-Funktion SUMMENPRODUKT() erreichen kann.
Anzeige
AW: Beispiel
09.05.2019 18:21:23
Bitter
Wow! Vielen dank Sepp. Das Beispiel hat mir viel weitergeholfen.
Die Endlösung ist in der Tat sehr viel komplexer und nicht nur diese Formel. Mein Problem war generell, dass ich bisher nicht mit Arrays vertraut war.
Es hat ein wenig gedauert den Code mit meinen Kenntnissen zu verstehen, aber letztendlich konnte ich mit deiner Lösung mit ein paar Modifikationen zur gewünschten Endlösung kommen :)
Danke und VG

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige