Microsoft Excel

Herbers Excel/VBA-Archiv

Codefehler | Herbers Excel-Forum


Betrifft: Codefehler von: WalterK
Geschrieben am: 13.02.2012 10:17:58

Hallo,

kann mir jemand sagen, was an diesem Code falsch ist. Die Fehlermeldung kommt bei der ersten Array-Formel und ich komm nicht dahinter, was falsch sein kann.

Option Explicit
Sub Formelneintragen()
    With ActiveSheet
    
        Application.ScreenUpdating = False
        .Unprotect
            
        Range(Cells(3, 22), Cells(14, 23)).ClearContents
        
        .Cells(3, 22).FormulaArray = "=INDEX(E$3:E$1000;MIN(WENN(E$3:E$1000<>"""";ZEILE(1:998))) _
)"
        .Cells(4, 22).FormulaArray = "=WENN(SUMME(ZÄHLENWENN(E$3:E$1000;V$3:V3))>=SUMME((E$3:E$ _
1000<>"""")*1);"""";INDEX(E$3:E$1000;VERGLEICH(1;(ZÄHLENWENN(V$3:V3;E$3:E$1000)=0)*(E$3:E$1000<>"""");0)))"
        .Range(.Cells(4, 22), .Cells(14, 22)).FillDown
        
        .Cells(3, 23).FormulaArray = "=INDEX(F$3:F$1000;MIN(WENN(F$3:F$1000<>"""";ZEILE(1:998))) _
)"
        .Cells(4, 23).FormulaArray = "=WENN(SUMME(ZÄHLENWENN(F$3:F$1000;W$3:W3))>=SUMME((F$3:F$ _
1000<>"""")*1);"""";INDEX(F$3:F$1000;VERGLEICH(1;(ZÄHLENWENN(W$3:W3;F$3:F$1000)=0)*(F$3:F$1000<>"""");0)))"
        .Range(Cells(4, 23), Cells(14, 23)).FillDown
        
        Range("A1").Selecet
        
    End With
                
End Sub
Wenn ich den Code über ein Schaltfläche laufen lasse kommt der Fehler "400", wenn ich den Code mit Einzelschritten durchgehe kommt der Fehler "Anwendungs- oder objektdefinierter Fehler"

Danke und Servus, Walter

  

Betrifft: schreib mal IF und ROW von: Matthias L
Geschrieben am: 13.02.2012 10:42:07

Hi Walter

Cells(3, 22).FormulaArray = "=INDEX(E$3:E$1000,MIN(IF(E$3:E$1000<>"""",ROW(1:998))))"

Gruß Matthias


  

Betrifft: AW: schreib mal IF und ROW von: WalterK
Geschrieben am: 13.02.2012 11:03:31

Hallo Matthias

auch nach den Änderungen auf IF und ROW kommen die gleichen Fehler.

Ich kann mir gar nicht vorstellen was falsch sein kann, es handelt sich doch eigentlich um einen einfachen Kopiervorgang.

Danke und Servus, Walter


  

Betrifft: bei mir klappt das ... von: Matthias L
Geschrieben am: 13.02.2012 11:09:58

Hallo

Tabelle1

 V
30

Formeln der Tabelle
ZelleFormel
V3{=INDEX(E$3:E$1000;MIN(WENN(E$3:E$1000<>"";ZEILE(1:998))))}
Enthält Matrixformel:
Umrandende
{ } nicht miteingeben,
sondern Formel mit STRG+SHIFT+RETURN abschließen!


Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4


Probiers mal mit meiner Datei:
https://www.herber.de/bbs/user/78893.xls

Hab erst mal nur diese eine Zeile aktiviert

Gruß Matthias


  

Betrifft: AW: bei mir klappt das ... von: WalterK
Geschrieben am: 13.02.2012 12:19:14

Hallo Matthias,

in Deiner Tabelle läuft der Code auch bei mir.

Dazu habe ich 2 Fragen:

1.) Macht es einen Unterschied, ob der Code in einem eingefügten Modul steht oder direkt in der Tabelle? Es funktioniert nämlich beides.

2.) In Deinem Code sind die "Strich-Punkt-Zeichen" durch "Beistriche" ersetzt worden. Wenn ich das bei meiner nächsten Array-Formel mache, bleibt der Code wieder hängen. Auf was muss ich achten beim Ersetzen der "Strich-Punkt-Zeichen".

Danke für die Hilfe und Servus, Walter


  

Betrifft: AW: schreib mal IF und ROW von: ingoG
Geschrieben am: 13.02.2012 12:42:20

Hallo Walter,

hast Du auch die ; in , geändert?

in VBA müssen alle Formeln in der Englischen version geschrieben werden...


Gruß ingo
PS eine Rückmeldung wäre nett...


  

Betrifft: Ich habe jetzt ... von: WalterK
Geschrieben am: 13.02.2012 13:35:36

Hallo,

... alle ; durch , ersetzt und die Formeln in die Englische Version umgeschrieben und jetzt funktioniert jetzt alles.

Besten Dank an beide Helfer.

Servus, Walter


  

Betrifft: Danke für die Rückmeldung oT von: ingoG
Geschrieben am: 14.02.2012 11:58:41

.