Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1308to1312
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
Formel mit VBA anpassen
23.04.2013 22:43:46
alexa
Hallo Zusammen
Ich habe eine Frage, weis nicht ob das funktioniern kann oder nicht.
Ich möchte mit VBA folgende Formel in eine Zelle schreiben.:
=SUMMENPRODUKT(TEILERGEBNIS(3;INDIREKT("C"&ZEILE(2:999)))*(C2:C999="X"))
Das ist kein Problem. Nun soll aber da die Spalte automatisch angepasst werden.
Es soll also in die Splate C1 diese Formel rein, in Spalte D1 ebenso jedoch müsste da dann
=SUMMENPRODUKT(TEILERGEBNIS(3;INDIREKT("D"&ZEILE(2:999)))*(D2:D999="X"))
stehen.
und so weiter. dies sol solange kopiert und angepasst werden werden bis auf der Zeile 8 ein leeres Feld kommt.
Ist das möglich? Wen ja, wie? =)
Vielen dank für eure Hilfe
Gruss Alexa :)

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Warum so kompliziert?
24.04.2013 00:29:10
Erich
Hi Alexa,
reicht das aus?

Option Explicit
Sub ZaehlFormel1()
Dim cc As Long
cc = Evaluate("MIN(IF(C8:XFD8="""",COLUMN(C8:XFD8)))")
If cc > 3 Then
Range(Cells(1, 3), Cells(1, cc - 1)).FormulaLocal = _
"=ZÄHLENWENN(INDEX(2:999;;SPALTE());""X"")"
End If
End Sub
' oder noch einfacher
Sub ZaehlFormel2()
Dim cc As Long
cc = Evaluate("MIN(IF(C8:XFD8="""",COLUMN(C8:XFD8)))")
If cc > 3 Then
Range(Cells(1, 3), Cells(1, cc - 1)).FormulaLocal = _
"=ZÄHLENWENN(C2:C999;""X"")"
End If
End Sub
Rückmeldung wäre nett! - Grüße aus Kamp-Lintfort von Erich

Anzeige
AW: Warum so kompliziert?
24.04.2013 07:26:27
alexa
hi
erstmal Danke. Damit komme ich aber nicht weiter, weil die Formel dynamisch sein muss.
Gruss Alexa

AW: Versuch
24.04.2013 08:10:51
hary
Hallo
Teste mal dieses Makro.
Sub Formel_eintragen()
Dim i As Long
Dim spalte As String
Application.Calculation = xlCalculationManual
With Worksheets("Tabelle1") 'Name der tabelle anpassen
For i = 3 To .Cells(8, .Columns.Count).End(xlToLeft).Column 'SpalteC(3) bis letzte belegte  _
in Zeile 8
spalte = Application.Substitute(.Cells(1, i).Address(False, False), 1, "")
.Cells(1, i).FormulaLocal = "=SUMMENPRODUKT(TEILERGEBNIS(3;INDIREKT(""" & spalte & """ & _
ZEILE(2:999)))*(" & spalte & "2:" & spalte & "999=""X""))"
Next
End With
Application.Calculation = xlCalculationAutomatic
End Sub

gruss hary

Anzeige
wie dynamisch?
24.04.2013 09:20:14
Erich
Hi Alexa,
"weil die Formel dynamisch sein muss" - Was genau meinst du damit?
Wo sollen mit VBA welche Formeln hingeschrieben werden?
Rückmeldung wäre nett! - Grüße aus Kamp-Lintfort von Erich

noch eine Frage
24.04.2013 13:11:11
Erich
Hi Alexa,
da du hier mit INDIREKT arbeitest:
Was steht bei dir in den betrachteten Zellen C2:X999 (X=letzte belegte Spalte in Zeile 8)?
Was z. B. steht in D2? Steht da eine Zelladresse? Was ist das Ergebnis von =INDIREKT("D2")?
Rückmeldung wäre nett! - Grüße aus Kamp-Lintfort von Erich

299 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige