Microsoft Excel

Herbers Excel/VBA-Archiv

Wie Formel in VBA umsetzen

Betrifft: Wie Formel in VBA umsetzen von: Udo Kowalleck
Geschrieben am: 31.08.2014 13:01:35

Hallo Freunde,
wie setze ich die Formel:
=INDEX($G$4:$G$309;VERGLEICH(1&$K4;$C$4:$C$309&$D$4:$D$309;0))
in VBA um?
In Exel selbst funktioniert sie. Nur an der Programierung in VBA scheitre ich.
Sicherlich kennt ihr die Lösung.
Gruß
Udo

  

Betrifft: AW: Wie Formel in VBA umsetzen von: Hajo_Zi
Geschrieben am: 31.08.2014 13:03:42

Hallo Udo,

schreibe die Formel in eine Zelle, füge ein neues Tabellenblatt Internationale Makro Vorlage ein und kopiere die Formel dort hin.

GrußformelHomepage


  

Betrifft: AW: Wie Formel in VBA umsetzen von: Udo Kowalleck
Geschrieben am: 31.08.2014 13:14:40

Hallo Hajo,
danke für deine schnelle Antwort. Mit der Antwort weiß ich als Anfänger überhaupt nichts anzufangen.
Ein neues Tabellenblatt geht überhaupt nicht, denn die Formel ist ein Bestandteil einer umfangreichen Progamierung in VBA in einem Tabellenblatt. Es sollen Daten von einer Zelle in einer anderen Zelle auf den gleichen Blatt übertragen werden.
Gruß
Udo


  

Betrifft: AW: Wie Formel in VBA umsetzen von: Daniel
Geschrieben am: 31.08.2014 13:47:39

Hi

Was möchtest du tun?
A) die Formel per VBA in eine Zelle schreiben.
B) in VBA das Ergebnis der Formel erhalten, ohne diese Formel selbst verwenden zu müssen.

Die Vergleichsformel sieht für mich etwas seltsam aus, indem du hier zwei Zellbereiche mir & verbindet.
Ist das eine Matrixformel?

Gruß Daniel


  

Betrifft: AW: Wie Formel in VBA umsetzen von: Udo Kowalleck
Geschrieben am: 31.08.2014 14:06:16

Hallo Daniel,
Ich möchte A, also diese Formel in VBA Code umwandeln.
Gruß
Udo


  

Betrifft: AW: Wie Formel in VBA umsetzen von: robert
Geschrieben am: 31.08.2014 14:09:33

Hi,

dann mach das, was Hajo dir geschrieben hat in einer neuen Datei,
dann siehst du die Formel im VBA-Code.

Gruß
robert


  

Betrifft: AW: Wie Formel in VBA umsetzen von: Udo Kowalleck
Geschrieben am: 31.08.2014 14:23:04

Hallo Robert,
die Lösung wäre einfach. Ein Makro aufzeichnen und dann den Code ansehen. Funktioniert leider nicht.
Jetzt bin ich ganz ratlos. Ich habe das komplette Tabellenblatt 1:1 kopiert. Beim Original funkt es, bei der Kopie bekomme ich die Fehlermeldung: Formel enthält einen Fehler.


  

Betrifft: AW: Wie Formel in VBA umsetzen von: Udo Kowalleck
Geschrieben am: 31.08.2014 14:14:35

Ps. Diese Frage habe ich schon von dir beantwortet bekommen. Das ist deine Formel die funkt. Allerdings nicht in VBA sondern ganz normale Formeleingabe in Exel.


  

Betrifft: AW: Wie Formel in VBA umsetzen von: Daniel
Geschrieben am: 31.08.2014 14:31:50

Hi
Kannst du mal eine Beispieldatei hoch laden, welche die funktionierende Formel enthält, außerdem noch deine nicht funktionierenden Codeversuche?
Gruß Daniel


  

Betrifft: AW: Wie Formel in VBA umsetzen von: Udo Kowalleck
Geschrieben am: 31.08.2014 14:35:05

Hallo Daniel,
ja, mache ich. Hatte es sowieso vor, denn in Erklärungen bin ich nicht der Stärkste. Kann aber etwa 30 Minuten dauern.


  

Betrifft: AW: Wie Formel in VBA umsetzen von: Udo Kowalleck
Geschrieben am: 31.08.2014 15:18:32

So, hier die beiden Dateien:
https://www.herber.de/bbs/user/92411.xlsx
https://www.herber.de/bbs/user/92412.xlsm
Das dieses ein absoluter Anfänger zusammen gebastelt hat, sieht man wohl.
Die Datentenbänke habe ich nicht hochgeladen. Sie sind auch nicht für den Programmablauf nötig.
Die Frage bezieht sich auf das Tabellenblatt "Ausrechnung" Spalten M5:AB22

Ich hoffe ihr kommt damit weiter.


  

Betrifft: AW: Wie Formel in VBA umsetzen von: Daniel
Geschrieben am: 31.08.2014 15:41:15

Hi
Nach Anfänger sieht das nicht aus.
Da die Formel eine Matrixformel ist, musst du sie so in die Tabelle eintragen:

with sheets("Ausrechnung")
    .range("m4").FormulaArray = "=INDEX($G$4:$G$309,MATCH(M$3&$K4,$C$4:$C$309&$D$4:$D$309,0))"
    .range("m4").copy .range("m5:ac21")
    .range("m4").Copy .range("n4:ac4")
End with

Gruß Daniel


  

Betrifft: AW: Wie Formel in VBA umsetzen von: Udo Kowalleck
Geschrieben am: 31.08.2014 16:37:58

Vielen Dank, Daniel, für deine Mühe.
Leider funkt es bei mir nicht.
bevor ich dir Romane schreibe, füge die Formel doch einfach bei dir ein. Die Datei hast du ja.
Udo


  

Betrifft: AW: Wie Formel in VBA umsetzen von: Daniel
Geschrieben am: 31.08.2014 19:25:39

Hab ich gemacht, hat funktioniert.
Ich habe aber in deinem Makro nichts gefunden wo du diese Formeln schreibst und da ich mich in deinem Code nicht auskennt, wollte ich es auch nicht irgendwo einfügen, deswegen habe ich es in einem kleinen Testmakro ausprobiert und da geht es.
Gruß Daniel


  

Betrifft: Das funktioniert doch ... von: Matthias L
Geschrieben am: 31.08.2014 20:49:02

Hallo

Das funktioniert doch ...
https://www.herber.de/bbs/user/92415.xlsm

Gruß Matthias


  

Betrifft: AW: Das funktioniert doch ... von: Udo Kowalleck
Geschrieben am: 31.08.2014 23:48:00

Hallo Daniel, Hallo Matthias
das der Code von Daniel korrekt ist, daran habe ich keinen Zweifel. Ich wollte, ich hätte schon euer Fachwissen. Vielen Dank das ihr euch überhaupt diese Mühe macht mein Problem zu lösen.
Trotzdem funkt es bei mir nicht. Die Ursache könnte sein, das der Code an der falschen Stelle im Programm
erscheint; oder,oder,oder.
Es ist fast unverschämt von mir zu bitten, setzt den Code an letzter Stelle in meinem Programm ein und ihr müsst Zwangsläufig das gleiche Ergebnis haben. Ansonsten weiß ich auch nicht weiter.
Sinn und Zweck meines Programms ist die Sportwette. Wie viele Tore fallen im Spiel von Mannschaft A gegen B nach Wahrscheinlichkeit. Um die Wahrscheinlichkeit zu errechnen, brauche ich den Durchschnitt der erzielten Tore je Mannschaft in Heim- und Auswärtsspielen. Die Tendenz ergibt sich aus den gespielten Spiele (meiner Meinung). Das ist die Kurzform. Nur das ihr wisst um was es bei mir geht.
mit freundlichen und so
Udo


  

Betrifft: AW: Das funktioniert doch ... von: Daniel
Geschrieben am: 01.09.2014 00:25:25

Dein Code sieht nicht nach Anfänger aus.
Da du den Code geschrieben hast, solltest du am besten wissen, wo was passiert und an welcher stelle ed am sinnvollsten ist, die Formeln einzufügen.
Das ist eigentlich nur erforderlich, wenn du das Blatt neu aufbaust.
An welcher stelle passiert das im Code?
Gruß Daniel


  

Betrifft: AW: Das funktioniert doch ... von: Daniel
Geschrieben am: 01.09.2014 01:17:42

Dein Code sieht nicht nach Anfänger aus.
Da du den Code geschrieben hast, solltest du am besten wissen, wo was passiert und an welcher stelle ed am sinnvollsten ist, die Formeln einzufügen.
Das ist eigentlich nur erforderlich, wenn du das Blatt neu aufbaust.
An welcher stelle passiert das im Code?
Gruß Daniel


  

Betrifft: AW: Das funktioniert doch ... von: Udo Kowalleck
Geschrieben am: 01.09.2014 18:29:19

Buh-geschafft.
Der von mir eingesetzte Code:
i = 1
spalte = 13
For spalte = 13 To Anzahl + Anzahl - 8
For zeile = 5 To Anzahl + 4
Cells(zeile, spalte).Select
Selection.FormulaArray = _
"=INDEX(R5C7:R310C7,MATCH((" & i & ")&RC11,R5C3:R310C3&R5C4:R310C4,0))"
Next zeile
zeile = 5
i = i + 1
Next spalte

Ohne die Hilfe von Daniel hätte ich noch Tage herumgewurstelt. Noch einmal Dankeschön.
Bis zur nächsten Frage
Udo


 

Beiträge aus den Excel-Beispielen zum Thema "Wie Formel in VBA umsetzen"