Supportnet / Forum / Tabellenkalkulation
VBA Formel
Frage
Ihr lieben...
ich möchte gerne in einem makro einer Variablen direkt eine Formel zuweisen. also keiner Zelle oder so, sondern direkt einer variablen...
bei einer Zelle (A1) muss ich das so machen:
Range("A1").FormulaR1C1="=Formel()"
wie geht das nu aber, wenn ich es direkt einer variablen zuweisen möchte (die natürlich definiert ist)
ich dachte:
x=Formel
geht aber nicht...
kann mir jmd. helfen!? Vielen Dank!
MrB
Antwort 1 von coros
Hallo MrB,
so ganz verstehe ich nicht, was Du meinst. Kannst Du mal erklären, was Du Dir als Endresultat vorstellst? Wenn möglich an einem Beispiel, damit klarer wird, was Du möchtest.
MfG,
Oliver
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du ein
Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.
so ganz verstehe ich nicht, was Du meinst. Kannst Du mal erklären, was Du Dir als Endresultat vorstellst? Wenn möglich an einem Beispiel, damit klarer wird, was Du möchtest.
MfG,
Oliver
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du ein
Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.
Antwort 2 von MrB
ok...
also es geht speziell um die formel "Zählenwenn":
im Makro (VBA) funktioniert sie, wenn ich sie so schreibe:
Range("b1"). FormulaR1C1 = "=COUNTIF(C[0]:C[0],""*.xls"")"
in A1 schreibt er dann die Anzahl der Zeilen, die in Spalte A (C[0]) ein ".xls" enthalten.
diese anzahl möchte ich aber sofort einer Variablen zuweisen und NICHT einer Zelle.
war das verständlicher!? ich weiß ist ein bissel konfus... sonst versuche ich es nochmal...
also es geht speziell um die formel "Zählenwenn":
im Makro (VBA) funktioniert sie, wenn ich sie so schreibe:
Range("b1"). FormulaR1C1 = "=COUNTIF(C[0]:C[0],""*.xls"")"
in A1 schreibt er dann die Anzahl der Zeilen, die in Spalte A (C[0]) ein ".xls" enthalten.
diese anzahl möchte ich aber sofort einer Variablen zuweisen und NICHT einer Zelle.
war das verständlicher!? ich weiß ist ein bissel konfus... sonst versuche ich es nochmal...
Antwort 3 von Saarbauer
Hallo @MrB,
aller Achtung, wenn schon @coros hier das Handtuch wirft, dann hast du es geschafft. Ich muss mich aber @ coros-Meinung anschliessen, mit deinen Vorgaben ist nichts anzufangen. Bei Besten willen kann ich mir keinen Reim auf
machen.
Gruß
Helmut
aller Achtung, wenn schon @coros hier das Handtuch wirft, dann hast du es geschafft. Ich muss mich aber @ coros-Meinung anschliessen, mit deinen Vorgaben ist nichts anzufangen. Bei Besten willen kann ich mir keinen Reim auf
Zitat:
Range("A1").FormulaR1C1="=Formel()"
Range("A1").FormulaR1C1="=Formel()"
machen.
Gruß
Helmut
Antwort 4 von MrB
Ergänzung zu meiner ersten Antwort:
... ich meine natürlich in B1 schreibt er das Ergebnis
... ich meine natürlich in B1 schreibt er das Ergebnis
Antwort 5 von coros
Hi MrB,
mit nachfolgendem Makro sollte Dir geholfen sein.Kopiere es in ein StandardModul und starte es über z.B. eine Schaltfläche.
In der Variablen "Formel" steht das Ergebnis der CountIf- Funktion.
Ich hoffe, Du kommst klar. Bei Fragen melde Dich bitte wieder.
MfG,
Oliver
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du ein
Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.
mit nachfolgendem Makro sollte Dir geholfen sein.Kopiere es in ein StandardModul und starte es über z.B. eine Schaltfläche.
Option Explicit
Sub Formel()
Dim Formel As Long
Formel = Application.WorksheetFunction.CountIf(Range("B:B"), "*.xls")
MsgBox Formel
End SubIn der Variablen "Formel" steht das Ergebnis der CountIf- Funktion.
Ich hoffe, Du kommst klar. Bei Fragen melde Dich bitte wieder.
MfG,
Oliver
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du ein
Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.
Antwort 6 von MrB
@coros:
dicker KUSS!!!! Das wars: Application.WorksheetFunction.CountIf
so fix hier die leute... respekt!
Dim azl As Long
azl = Application.WorksheetFunction.CountIf(Range("A:A"), "*.xls")
MsgBox "Alle Aufträge (jeweils: " & p & " von " & azl & ") ausgeführt für:" & vbCrLf & vbCrLf & wahl11 & vbCrLf & wahl22 & vbCrLf & wahl33 & vbCrLf & wahl44 & vbCrLf & wahl55 & vbCrLf & wahl77 & vbCrLf & wahl88, vbInformation, "Ende - Report"
dicker KUSS!!!! Das wars: Application.WorksheetFunction.CountIf
so fix hier die leute... respekt!
Dim azl As Long
azl = Application.WorksheetFunction.CountIf(Range("A:A"), "*.xls")
MsgBox "Alle Aufträge (jeweils: " & p & " von " & azl & ") ausgeführt für:" & vbCrLf & vbCrLf & wahl11 & vbCrLf & wahl22 & vbCrLf & wahl33 & vbCrLf & wahl44 & vbCrLf & wahl55 & vbCrLf & wahl77 & vbCrLf & wahl88, vbInformation, "Ende - Report"

