HERBERS Excel-Forum - das Archiv
Formel via VBA
Sophie

Hallo ihr lieben,
ich habe eine Frage zum Thema Formeln in VBA. Ich habe eine Datenübersicht aus der ich mit dieser Formel meine Werte ziehe :
-> { = WENN([@[RG_NR1]]<0;"";WENN(ISTNV(INDEX(HardcopyMG!G:G;VERGLEICH([@MediaCode]&[@REF]; HardcopyMG!B:B&HardcopyMG!C:C;0)));"";INDEX(HardcopyMG!G:G;VERGLEICH([@MediaCode]&[@REF]; HardcopyMG!B:B&HardcopyMG!C:C;0)))) }
Ich möchte die Formel nicht in der Datenübersicht und möchte auch nur, dass der Wert 1 mal berechnet wird. D.h. das Makro sucht den Wert aus "HardcopyMG" und schreibt ihn in mein Tabellenblatt1.
Ich freu mich auf euer Feedback! Danke!

AW: Formel via VBA
Raphael

Hallo Sophie,
zu welchem Zeitpunkt soll das Makro den Wert in die Zelle schreiben?
Arrayformeln kann man mit
Sheet1.Range("C2").FormulaArray = _
"=MAX(IF((($E$2:$E$10=A2)+($F$2:$F$10=B2))=1,$G$2:$G$10))"
in eine Zelle schreiben.
Gruess
Raphael

AW: Formel via VBA
Sophie

Hi Raphael,
danke für deine Antwort.
Das Marko soll zu drei verschiedenen Zeitpunkte greifen:
-das erste mal wenn ein Wert in C1 steht
-das zweite mal wenn ein Wert in G1 steht
-und das letzte mal wenn ein Wert in K1 steht
LG,
Sophie

AW: Formel via VBA
Sophie

Hi Raphael,
danke für deine Antwort.
Das Marko soll zu drei verschiedenen Zeitpunkte greifen:
-das erste mal wenn ein Wert in C1 steht
-das zweite mal wenn ein Wert in G1 steht
-und das letzte mal wenn ein Wert in K1 steht
LG,
Sophie

AW: Formel via VBA
Raphael

Hallo Sophie,
somit könntest du folgende Code nutzen, Formel musst du selber anpassen.
Dieses Code im betroffenen Worksheet speichern.

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$C$1" Or Target.Address = "$G$1" Or Target.Address = "$K   $1" Then
With Sheets("Tabelle1").Range("A1")
.FormulaArray = "Deine Arrayformel"
.Value = .Value
End With
End If
End Sub
Gruess
Rapahel

Formel via VBA
Sophie

Hallo ihr lieben,
ich habe eine Frage zum Thema Formeln in VBA. Ich habe eine Datenübersicht aus der ich mit dieser Formel meine Werte ziehe :
-> { = WENN([@[RG_NR1]]<0;"";WENN(ISTNV(INDEX(HardcopyMG!G:G;VERGLEICH([@MediaCode]&[@REF]; HardcopyMG!B:B&HardcopyMG!C:C;0)));"";INDEX(HardcopyMG!G:G;VERGLEICH([@MediaCode]&[@REF]; HardcopyMG!B:B&HardcopyMG!C:C;0)))) }
Ich möchte die Formel nicht in der Datenübersicht und möchte auch nur, dass der Wert 1 mal berechnet wird. D.h. das Makro sucht den Wert aus "HardcopyMG" und schreibt ihn in mein Tabellenblatt1.
Ich freu mich auf euer Feedback! Danke!

AW: Formel via VBA
Raphael

Hallo Sophie,
zu welchem Zeitpunkt soll das Makro den Wert in die Zelle schreiben?
Arrayformeln kann man mit
Sheet1.Range("C2").FormulaArray = _
"=MAX(IF((($E$2:$E$10=A2)+($F$2:$F$10=B2))=1,$G$2:$G$10))"
in eine Zelle schreiben.
Gruess
Raphael

AW: Formel via VBA
Sophie

Hi Raphael,
danke für deine Antwort.
Das Marko soll zu drei verschiedenen Zeitpunkte greifen:
-das erste mal wenn ein Wert in C1 steht
-das zweite mal wenn ein Wert in G1 steht
-und das letzte mal wenn ein Wert in K1 steht
LG,
Sophie

AW: Formel via VBA
Sophie

Hi Raphael,
danke für deine Antwort.
Das Marko soll zu drei verschiedenen Zeitpunkte greifen:
-das erste mal wenn ein Wert in C1 steht
-das zweite mal wenn ein Wert in G1 steht
-und das letzte mal wenn ein Wert in K1 steht
LG,
Sophie

AW: Formel via VBA
Raphael

Hallo Sophie,
somit könntest du folgende Code nutzen, Formel musst du selber anpassen.
Dieses Code im betroffenen Worksheet speichern.

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$C$1" Or Target.Address = "$G$1" Or Target.Address = "$K   $1" Then
With Sheets("Tabelle1").Range("A1")
.FormulaArray = "Deine Arrayformel"
.Value = .Value
End With
End If
End Sub
Gruess
Rapahel

Bewerten Sie hier bitte das Excel-Portal