Clever-Excel-Forum

Normale Version: VBA FOR EACH Schleife
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo=),

Ich möchte in einer FOR EACH Schleife für jede Zelle in einem bestimmten Bereich eine Formel eingeben die sich auf die Reihe bezieht.

'Private Sub CheckBoxSizing_Click()
'Dim Zelle1
'
'
'    If CheckBoxSizing.Value = True Then
'        Worksheets(1).Range("BY:BY,CC:CC,CG:CG,CK:CK,CO:CO,CS:CS,CW:CW").Select
'        Selection.EntireColumn.Hidden = False
'            For Each Zelle1 In Range("SizingToolMatrix")
'            Zelle1.Value = "=SizingTool(BY40;CC40;CG40;CK40;CO40)"   HIER MÖCHTE ICH ANSTELLE VON 40 DIE AKTIVE REIHE PRO ZELLE EUNFÜGEN
'            Next Zelle1
'        Range("E3").Select
'    End If
'    If CheckBoxSizing.Value = False Then
'        Worksheets(1).Range("BY:BY,CC:CC,CG:CG,CK:CK,CO:CO,CS:CS,CW:CW").Select
'        Selection.EntireColumn.Hidden = True
'        Range("E3").Select
'    End If 
'End Sub

Wenn ich anstelle von der function (=SizingTool) einfach "1" eingebe funktioniert es=(
Die Funktion läuft außerhalb ohne Probleme...
Hoffe mir kann jemand helfen =)=)

Grüße,
Linda
Moin Linda!

Ich gehe mal davon aus, dass =Sizingtool() eine UDF ist.
Allgemein ist es Quatsch (weil extrem langsam), eine Funktion per For Each in jede Zelle einzeln einzutragen.
Man schreibt sie gleich in den gesamten Bereich.

Natürlich ungetestet, weil ich die Datei nicht kenne:

Code:
Range("SizingToolMatrix").Formula = "=SizingTool(BY40;CC40;CG40;CK40;CO40)"

Ansonsten:
Her mit der Datei!

Gruß Ralf
Hey vielen Dank, :):):)

Hab mal eine vereinfachte Version hochgeladen.

Es geht vor allem darum das in jeder Zeile ja eine andere Formel steht,
bzw. die Werte nimmt es aus der jeweiligen Zeile.

Wenn ich nur einen Text hineinschreibe klappts



Grüße,
Die Datei hat ja nicht allzu viel mit dem Problem zu tun.
Hast Du den Code aus meinem letzten Post überhaupt ausprobiert?  Undecided

Da in der Funktion weder Spalten noch Zeilen per Dollar $ fixiert sind, passt sich die Formel automatisch an die jeweilige Zeile an!

Nix Schleife oder so …

Gruß Ralf
Ja hab ich versucht klappt auch nicht=(


oder habe ich was falsch gemacht?


siehe Anhang
-----
Hi,

da Du ja einen Namen definiert hast, reicht das:


Code:
Private Sub CheckBox1_Click()


    If CheckBox1 Then
        Worksheets(1).Range("E:E").EntireColumn.Hidden = False
        Range("MATRIX").FormulaLocal = "=Funktion(B4;C4)"
    Else
        Worksheets(1).Range("E:E").EntireColumn.Hidden = True
        Range("MATRIX") = "keine Formel"
    End If
    Range("A1").Select
End Sub
Hi,l

was sollte dieser Beitrag bezwecken?

Teste mal dieses Makro:
Option Explicit

Private Sub CheckBox1_Click()
Dim Zell

   If CheckBox1.Value = True Then
       Worksheets(1).Range("E:E").Select
       Selection.EntireColumn.Hidden = False
       Range("MATRIX").FormulaLocal = "=Funktion(B4;C4)"
'            For Each Zell In Range("MATRIX")
'            Zell.Value = "1" '"=Funktion(B4;C4)"
'            Next Zell
       Range("A1").Select
   End If
   If CheckBox1.Value = False Then
       Worksheets(1).Range("E:E").Select
       Selection.EntireColumn.Hidden = True
       For Each Zell In Range("MATRIX")
           Zell.Value = "keine Formel"
           Next Zell
       Range("A1").Select
   End If
End Sub

Ooh, zu spät! Edgars Lösung ist besser.
Heart Heart Heart Heart Heart Heart Heart

VIELEN DANK

Klappt einwandfrei =D


liebe Grüße aus Südtirol=)

Angel Angel Angel