Microsoft Excel

Herbers Excel/VBA-Archiv

Fehler, wenn Variable in Funktion

Betrifft: Fehler, wenn Variable in Funktion von: Burghard
Geschrieben am: 10.07.2008 10:52:40

Hallo,

weiß jemand Rat? Ich habe ein Makro, dass im nachfolgenden Code auch funktioniert.

Nun wollte ich

- die Zellbezüge etwas anders schreiben (dann funktioniert das Makro nicht mehr)

- und den Zellbezug der letzten Zeile durch eine Variable, die die letzte Zeile abfragt, ersetzen (dann funktioniert das Makro ebenfalls nicht mehr)

Weiß jemand, woran das liegt bzw. wie das Makro geändert werden muss?

Schönen Gruß

Burghard

===================================

Diese Makro funktioniert:

Sub Auswertung()
'

Dim letzte As Long
    Dim letztezeile
    letzte = Range("a65536").End(xlUp).Rows
    letztezeile = ActiveSheet.Cells(65536, 3).End(xlUp).Row

    Range("C3").Select
        ActiveCell.FormulaR1C1 = _
            "=ROUND(IF(RC[-2]=1,R2C3*13%,MAX(10.5,R2C3*0.5%)+POWER((MAX(R3C1:R26C1)-RC[-2]),2) / _
SUMPRODUCT(POWER((MAX(R3C1:R26C1)-R3C1:R26C1)*(R3C1:R26C1<>1),2))*(R2C3*87%-MAX(10.5,R2C3*0.5%) *(COUNT(R3C1:R26C1)-SUMPRODUCT(--(R3C1:R26C1=1))))),2)"
        Range("C3:C26").Select
        Selection.FillDown
    Range("C2").Select
    
    
End Sub



======================================

Fehler, wenn ===> RC[-2] durch ==> A3 ersetzt wird.

Sub Auswertung()
'

Dim letzte As Long
    Dim letztezeile
    letzte = Range("a65536").End(xlUp).Rows
    letztezeile = ActiveSheet.Cells(65536, 3).End(xlUp).Row

    Range("C3").Select
        ActiveCell.FormulaR1C1 = _
            "=ROUND(IF(A3=1,R2C3*13%,MAX(10.5,R2C3*0.5%)+POWER((MAX(R3C1:R26C1)-RC[-2]),2) / _
SUMPRODUCT(POWER((MAX(R3C1:R26C1)-R3C1:R26C1)*(R3C1:R26C1<>1),2))*(R2C3*87%-MAX(10.5,R2C3*0.5%) *(COUNT(R3C1:R26C1)-SUMPRODUCT(--(R3C1:R26C1=1))))),2)"
        Range("C3:C26").Select
        Selection.FillDown
    Range("C2").Select
    
    
End Sub



========================================

Fehler, wenn ===> R26C1 durch ==> $A$" & letzte & " ersetzt wird.

Sub Auswertung()
'

Dim letzte As Long
    Dim letztezeile
    letzte = Range("a65536").End(xlUp).Rows
    letztezeile = ActiveSheet.Cells(65536, 3).End(xlUp).Row

    Range("C3").Select
        ActiveCell.FormulaR1C1 = _
            "=ROUND(IF(RC[-2]=1,R2C3*13%,MAX(10.5,R2C3*0.5%)+POWER((MAX(R3C1:$A$" & letzte & ")- _
RC[-2]),2) /SUMPRODUCT(POWER((MAX(R3C1:R26C1)-R3C1:R26C1)*(R3C1:R26C1<>1),2))*(R2C3*87%-MAX(10.5,R2C3*0.5%) *(COUNT(R3C1:R26C1)-SUMPRODUCT(--(R3C1:R26C1=1))))),2)"
        Range("C3:C26").Select
        Selection.FillDown
    Range("C2").Select
    
End Sub


  

Betrifft: AW: Fehler, wenn Variable in Funktion von: Specke
Geschrieben am: 10.07.2008 11:08:40

Hallo Burghard,

schau mal, ob dass Dir weiterhilft:


Sub Auswertung()

Dim i, letzte As Long

letzte = Worksheets("Tabelle1").Range("a65536").End(xlUp).Row

For i = 3 To letzte
  Cells(i, 3).FormulaR1C1 = "=ROUND(IF(R3C1=1,R2C3*13%,MAX(10.5,R2C3*0.5%)+POWER((MAX(R3C1:R" &  _
letzte & "C1)- RC[-2]),2) /SUMPRODUCT(POWER((MAX(R3C1:R" & letzte & "C1)-R3C1:R" & letzte & "C1)*(R3C1:R" & letzte & "C1<>1),2))*(R2C3*87%-MAX(10.5,R2C3*0.5%) *(COUNT(R3C1:R" & letzte & "C1)-SUMPRODUCT(--(R3C1:R" & letzte & "C1=1))))),2)"
Next i
Range("C2").Select

End Sub



Gruß Specke


  

Betrifft: AW: Problem gelöst! von: Burghard
Geschrieben am: 11.07.2008 12:09:03

Hallo Specke,

vielen Dank für Deine Hilfe! Ich konnte mittlerweile alle Probleme lösen.

Schönen Gruß

Burghard


 

Beiträge aus den Excel-Beispielen zum Thema "Fehler, wenn Variable in Funktion"