Microsoft Excel

Herbers Excel/VBA-Archiv

Formel in Zelle schreiben ohne festen Zellbezug


Betrifft: Formel in Zelle schreiben ohne festen Zellbezug von: Oisse
Geschrieben am: 07.09.2019 11:40:31

Hallo Zusammen,
ich habe folgende Formel, um damit Zellen zu füllen:

    For i = 2 To ls_Bau
         .Cells(Zeile + 1, i).FormulaLocal = "=ZÄHLENWENN((" & Cells(4, i).Address & ":" & _
                                 Cells(Zeile - 1, i).Address & ");""*"")"
    Next i


In der Zelle steht dann Beispielsweise:
=ZÄHLENWENN(($D$4:$D$26);"*")

Ich hätte die Formel aber gerne dynamisch erstellt, sodass der Zeilenbereich erweitert werden kann und nicht jedesmal die Formel neu geschrieben werden muss.
Wie kann ich das bereits beim Erstellen der Formel in VBA erreichen?
Dankeschön
Gruß Oisse

  

Betrifft: AW: Formel in Zelle schreiben ohne festen Zellbezug von: Hajo_Zi
Geschrieben am: 07.09.2019 13:00:10

was ist daran kompliziert in der Bearbeitungsleiste 26 durch 135 zu ersetzen?

GrußformelHomepage

Beiträge von Werner, Luc, robert, J.O.Maximo und folgende lese ich nicht.
Die Beiträge werden auch ignoriert, es erfolgt keine Antwort.


  

Betrifft: AW: Formel in Zelle schreiben ohne festen Zellbezug von: Nepumuk
Geschrieben am: 07.09.2019 13:16:18

Hallo Oisse,

teste mal:

For i = 2 To ls_Bau
    .Cells(Zeile + 1, i).FormulaLocal = "=ZÄHLENWENN((" & Cells(4, i).Address(False, False) & ":" & _
        Cells(Zeile - 1, i).Address(False, False) & ");""*"")"
Next i

Gruß
Nepumuk


  

Betrifft: AW: Formel in Zelle schreiben ohne festen Zellbezug von: fcs
Geschrieben am: 07.09.2019 13:23:21

Hallo Oisse,

du kannst Parameter für Address angeben, so dass die Bezüge in der Formel nicht alle Absolut sind.

    For i = 2 To ls_Bau
        .Cells(Zeile + 1, i).FormulaLocal = _
            "=ZÄHLENWENN((" & Cells(4, i).Address(rowabsolute:=True, columnabsolute:=False, _ 
                ReferenceStyle:=xlA1) _
            & ":" & Cells(Zeile - 1, i).Address(rowabsolute:=False, columnabsolute:=False, _
                ReferenceStyle:=xlA1) & ");""*"")"
    Next i

'Alternative VBA-Anweisung zum Erstellen der Formeln
        .Range(.Cells(Zeile + 1, 2), .Cells(Zeile + 1, ls_Bau)).FormulaR1C1 = _
            "=COUNTIF((R4C:R[-2]C), ""*"")"
Die Formel sieht dann z.B. so aus:
=ZÄHLENWENN((B$4:B14); "*")
Hoffe das ist das was dir weiterhilft.

LG
Franz


  

Betrifft: Funtioniert super von: Oisse
Geschrieben am: 07.09.2019 13:49:01

Hallo Franz, hallo Nepumuk,
eure Antworten sind klasse. Bin begeistert!
Vielen herzlichen Dank
Schönes WE


  

Betrifft: sorry, Test von: hans
Geschrieben am: 08.09.2019 12:16:19




Beiträge aus dem Excel-Forum zum Thema "Formel in Zelle schreiben ohne festen Zellbezug"