Betrifft: Objektvariable nicht definiert
von: Ines
Sub immer das die Objektvariable "Zelle" nicht definiert ist.
Das
Sub soll die Funktion in allen Zellen der Spalte H ausführen bis zur letzten gefüllten Zeile. _
_
Die letzte Zeile hängt ab vom Letzten Wert in Spalte A.
Kann mir jemand helfen?
Sub PreisänderungNEU()
Dim Zelle As Range
Dim Nr As Long, letzteZeile As Long
Nr = ActiveCell.Row
letzteZeile = ActiveSheet.Range("A" & Rows.Count).End(xlUp).Row
For Each Zelle In ActiveSheet.Range("H" & letzteZeile)
Zelle.FormulaLocal = "=WENN(E" & Nr & "=1;F" & Nr & "+G" & Nr & "+0,1;WENN(E" & Nr & "=2;(F" & _
_
Nr & "+G" & Nr & ")*1,2;WENN(E" & Nr & "=3;F" & Nr & "+G" & Nr & "+(WENN(F" & Nr & "<10;(F" & _
Nr & "+G" & Nr & ")*0,2;WENN(F" & Nr & ">20;0,5;(F" & Nr & "+G" & Nr & ")*0,08))))))"
Next Zelle
End Sub
Danke und VG,
ines
Betrifft: AW: Objektvariable nicht definiert
von: 1713689.html
Geschrieben am: 18.09.2019 15:40:26
Hallo,
Dim Zelle mal als Object.
Gruss Torsten
Betrifft: AW: Objektvariable nicht definiert
von: 1713690.html
Geschrieben am: 18.09.2019 15:46:00
hallo Torsten,
das hat leider nicht funktioniert :-(
LG
Betrifft: AW: Objektvariable nicht definiert
von: 1713691.html
Geschrieben am: 18.09.2019 15:51:16
Jetzt hab ichs erst realisiert. Du musst in VBA die Formel englisch schreiben. Mit FormulaLocal wird sie zwar dann in der Zelle auf deutsch eingetragen. Aber VBA kann nur englisch.
Wenn du einen Uebersetzer brauchst:
https://de.excel-translator.de/translator/
Gruss Torsten
Betrifft: AW: Objektvariable nicht definiert
von: 1713697.html
Geschrieben am: 18.09.2019 16:03:56
Hi
nein, muss man nicht.
in einem deutschen Excel kann man auch mit VBA die Formel mit .FormulaLocal mit deutschem Formeltext in die Zelle schreiben.
der Translator ist zwar nett, aber eigentlich überflüssig, weil den VBA ja schon eingebaut hat.
man schreibt die Formel so wie man sie haben will in eine Excelzelle und kann sich dann den für VBA benötigten Formeltext im Direktfenster ausgeben lassen:
?Selection.Formula
dabei kann man sich die Formel in allen vier möglichen Schreibweisen (.Formula, .FormulaLocal, .FormulaR1C1, .FormulaR1C1Local) anzeigen lassen.
wer clever ist, lässt bei Formeln mit Text auch gleich die Anführungszeichen verdoppeln, damit er das nicht von Hand machen muss.
Gruß Daniel
Betrifft: AW: Objektvariable nicht definiert
von: 1713699.html
Geschrieben am: 18.09.2019 16:05:25
Guter Tipp danke .-)
Betrifft: AW: Objektvariable nicht definiert
von: 1713702.html
Geschrieben am: 18.09.2019 16:09:03
noch ein Tipp:
lass dir die Formel mal in der Z1S1- (bzw R1C1-)-Bezugsart ausgeben.
dann siehst du, dass du in dieser Schreibweise die VAriable NR nicht benötigst und alle Zellen den selben Formeltext haben.
daraus lässt sich dann ableiten, dass man keine Schleife benötigt, sondern die Formel in alle Zellen gleichzeitig schreiben kann.
Gruß Daniel
Betrifft: AW: Objektvariable nicht definiert
von: 1713693.html
Geschrieben am: 18.09.2019 15:55:36
Hallo Ines,
ich kann die Fehlermeldung nicht nachvollziehen. Habe deinen Code 1 zu 1 laufen lassen - bringt die Fehlermeldung nicht.
Zwei Sachen:
1. Nr = ActiveCell.Row
während der Laufzeit deines Codes ändert sich die Aktive Zelle aber nicht. Ist das z.B. die Zelle A2, dann hast du in allen Formeln immer einen Verweis auf Zeile 2, ich glaube nicht, dass das dein Ansinnen ist.
2. For Each Zelle In ActiveSheet.Range("H" & letzteZeile)
Das wäre eine Schleife über eine einzelne Zelle????
Du meinst wohl eher For Each Zelle In ActiveSheet.Range("H1:H" & letzteZeile)
Wobei ich nicht weiß in welcher Zeile du beginnen willst.
Sub PreisänderungNEU()
Dim Zelle As Range, letzteZeile As Long
letzteZeile = ActiveSheet.Range("A" & Rows.Count).End(xlUp).Row
For Each Zelle In ActiveSheet.Range("H1:H" & letzteZeile)
Nr = Zelle.Row
Zelle.FormulaLocal = "=WENN(E" & Nr & "=1;F" & Nr & "+G" & Nr & "+0,1;WENN(E" _
& Nr & "=2;(F" & Nr & "+G" & Nr & ")*1,2;WENN(E" & Nr & "=3;F" & Nr & "+G" & Nr _
& "+(WENN(F" & Nr & "<10;(F" & Nr & "+G" & Nr & ")*0,2;WENN(F" & Nr & ">20;0,5;(F" _
& Nr & "+G" & Nr & ")*0,08))))))"
Next Zelle
End Sub
Gruß Werner
Betrifft: AW: Objektvariable nicht definiert
von: 1713698.html
Geschrieben am: 18.09.2019 16:04:05
Hi Werner,
ja ich versteh es auch nicht, wenn ich per Hand meinen Code angepasst hab auf deinen, dann hat wieder nichts berechnet. und die Zeile Gelb markiert, hab ich deinen Kopiert und nur bei H die Zeile 2 als Start bestimmt- dann rechnet er jetzt ohne Probleme...
Hm.. komisch, aber vielen Dank für den Gedankenanstoß
LG Ines
Betrifft: Gerne u. Danke für die Rückmeldung. o.w.T.
von: 1713717.html
Geschrieben am: 18.09.2019 17:28:23
Betrifft: AW: Objektvariable nicht definiert
von: 1713695.html
Geschrieben am: 18.09.2019 15:57:49
HI
bei mir läuft der Code ohne diese Fehlermeldung durch
allerdings läuft deine Schleife nur über die letzte Zelle und ist damit eigentlich überflüssig
die Zeilenummer für die Zellbezüge in der Formel ist immer die Zelle, welche beim Start der des Makros die aktive Zelle ist und dies ändert sich auch über die schleife nicht.
ist das so beabsichtigt?
Gruß Daniel