Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

VBA FOR EACH Schleife
#1
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
Antworten Top
#2
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
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
[-] Folgende(r) 1 Nutzer sagt Danke an RPP63 für diesen Beitrag:
  • Topology
Antworten Top
#3
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,


Angehängte Dateien
.xlsm   Versuch For Each.xlsm (Größe: 22,59 KB / Downloads: 2)
Antworten Top
#4
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
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
[-] Folgende(r) 1 Nutzer sagt Danke an RPP63 für diesen Beitrag:
  • Topology
Antworten Top
#5
Ja hab ich versucht klappt auch nicht=(


oder habe ich was falsch gemacht?


siehe Anhang


Angehängte Dateien
.xlsm   Versuch Range.xlsm (Größe: 22,79 KB / Downloads: 4)
Antworten Top
#6
-----
Antworten Top
#7
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
Gruß

Edgar

Meine Antworten sind freiwillig und ohne Gewähr!
Über Rückmeldungen würde ich mich freuen.
[-] Folgende(r) 1 Nutzer sagt Danke an BoskoBiati für diesen Beitrag:
  • Topology
Antworten Top
#8
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.
[-] Folgende(r) 1 Nutzer sagt Danke an Rabe für diesen Beitrag:
  • Topology
Antworten Top
#9
Thumbs Up 
Heart Heart Heart Heart Heart Heart Heart

VIELEN DANK

Klappt einwandfrei =D


liebe Grüße aus Südtirol=)

Angel Angel Angel
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste