Microsoft Excel

Herbers Excel/VBA-Archiv

Fehler bei Formel per Makro in Zelle eintragen | Herbers Excel-Forum


Betrifft: Fehler bei Formel per Makro in Zelle eintragen von: Born
Geschrieben am: 23.10.2008 10:15:36

Hallo Forum,
ich habe folgendes Problem:

Ich schreibe per Makro in Zellen eine Formel. Als Ergebnis bekomme ich jedoch nur die Fehlermeldung #NAME?. Wenn ich dann mit F2 in den Bearbeiten-Modus gehe und Enter drücke, kommt das richtige Ergebnis. Meine Formel scheint also richtig zu sein. Auch mit der Formelauswertung in der Detektivsymbolleiste bekomme ich die Fehlermeldung.

Hier die VBA-Befehle:
For i = 1 To Anz_Fragen
Cells(2 * i + 1, 3 + Anz_Fragen).Formula = "=ZÄHLENWENN(C2:" & Chr(65 + Anz_Fragen + 1) & 2 * Anz_Fragen & "," & Right("0" & i, 2) & ")"
Next

Und hier das (gewünschte) Ergebnis:
=ZÄHLENWENN(C2:M22;1)

Wie bekomme ich es hin, dass die Formel sofort angezeigt wird?

Vielen Dank im Voraus,
M. Born

  

Betrifft: AW: Fehler bei Formel per Makro in Zelle eintragen von: Chris
Geschrieben am: 23.10.2008 10:28:59

Servus,

woran das liegt weiß ich selbst nicht. Per makro beheben lässt sich das so:

Cells(2 * i + 1, 3 + Anz_Fragen).Select
Application.SendKeys "{F2}", True
Application.SendKeys "{Enter}", True

einfach anhängen, müsste funktionieren.

Gruß

Chris


  

Betrifft: AW: Fehler bei Formel per Makro in Zelle eintragen von: Born
Geschrieben am: 23.10.2008 10:35:43

Hallo Chris,
vielen Dank für den Workaround. Die Idee hatte ich auch schon, aber mich würde auch der Grund interessieren, warum die Formel nicht sauber interpretiert wird. Vielleicht erzeugt das Ganze ja noch weitere Effekte, die mir bisher noch nicht aufgefallen sind. Wenn also jemand anderes noch eine Lösung hat, immer her damit.

Viele Grüße,
M. Born


  

Betrifft: AW: Fehler bei Formel per Makro in Zelle eintragen von: David
Geschrieben am: 23.10.2008 10:33:59

Hallo M.

Wenn du deine Formel in der deutschen Schreibweise (z. Bsp. ZÄHLENWENN) eintragen willst, ist dafür normalerweise .FormulaLocal zuständig. Bei .Formula wäre COUNTIF richtig.
Vielleicht ist das ja schon das Problem.

Gruß
David


  

Betrifft: AW: Fehler bei Formel per Makro in Zelle eintragen von: Erich G.
Geschrieben am: 23.10.2008 10:35:19

Hallo M.,
der Fehler entsteht, weil VBA englisch arbeitet. Bei FormulaLocal kannst du Formeln deutsch schreiben.
Probier mal

Cells(2 * i + 1, 3 + Anz_Fragen).Formula = _
"=COUNTIF(C2:" & Chr(65 + Anz_Fragen + 1) & 2 * Anz_Fragen & "," & Right("0" & i, 2) & ")"

oder

Cells(2 * i + 1, 3 + Anz_Fragen).FormulaLocal = _
"=ZÄHLENWENN(C2:" & Chr(65 + Anz_Fragen + 1) & 2 * Anz_Fragen & ";" & Right("0" & i, 2) & ")"

Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort

P.S.: Von SendKeys würde ich hier die Finger lassen...


  

Betrifft: AW: Fehler bei Formel per Makro in Zelle eintragen von: Born
Geschrieben am: 23.10.2008 10:44:11

Hallo David und Erich,
ich habe Euren Vorschlag mal probiert, bekomme dann aber einen "Anwedungsfehler". Auch mein bisheriger Code und anschließend:
Cells(2 * i + 1, 3 + Anz_Fragen).FormulaLocal = Cells(2 * i + 1, 3 + Anz_Fragen).Formula
hilft nicht weiter. Ich habe auch probiert, die Zelle zu kopieren und die Formel per Pastespecial einzutragen, aber weiterhin die Name-Fehlermeldung. Irgendwie werde ich aus dem Ganzen nicht schlau....

Viele Grüße,
M. Born


  

Betrifft: AW: Fehler bei Formel per Makro in Zelle eintragen von: Erich G.
Geschrieben am: 23.10.2008 10:54:52

Hi M.,
probier mal auf einem leeren Tabellenblatt:

Sub tst()
   Dim i As Long, Anz_Fragen As Long

   Anz_Fragen = 5     ' nur ein Beispiel
   For i = 1 To Anz_Fragen
      Cells(2 * i + 1, 3 + Anz_Fragen).Formula = _
         "=COUNTIF(C2:" & Chr(65 + Anz_Fragen + 1) & 2 * Anz_Fragen & _
         "," & Right("0" & i, 2) & ")"
      
      'oder
      
   '   Cells(2 * i + 1, 3 + Anz_Fragen).FormulaLocal = _
         "=ZÄHLENWENN(C2:" & Chr(65 + Anz_Fragen + 1) & 2 * Anz_Fragen & _
         ";" & Right("0" & i, 2) & ")"
   Next i
End Sub

Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort


  

Betrifft: AW: Fehler bei Formel per Makro in Zelle eintragen von: Born
Geschrieben am: 23.10.2008 11:00:53

Hallo Erich,
komischerweise funktioniert Deine erste Formel. Warum er die deutsche Version nicht kennt, wird wohl immer ein Rätsel von Billy bleiben.

Vielen Dank,
M. Born


  

Betrifft: AW: Fehler bei Formel per Makro in Zelle eintragen von: Erich G.
Geschrieben am: 23.10.2008 11:04:21

Hallo M.,
auch die deutsche Version funzt - das ist keines von Bills Geheimnissen...

Sub tst()
   Dim i As Long, Anz_Fragen As Long

   Anz_Fragen = 5
   For i = 1 To Anz_Fragen
      Cells(2 * i + 1, 3 + Anz_Fragen).FormulaLocal = _
         "=ZÄHLENWENN(C2:" & Chr(65 + Anz_Fragen + 1) & 2 * Anz_Fragen & _
         ";" & Right("0" & i, 2) & ")"
   Next i
End Sub

Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort


  

Betrifft: AW: Fehler bei Formel per Makro in Zelle eintragen von: David
Geschrieben am: 23.10.2008 10:55:47

Hallo M.

diese beiden Varianten funzen beide in meinem Test:

Cells(2 * i + 1, 3 + Anz_Fragen).FormulaLocal = 
   "=zählenwenn(C2:" & Chr(65 + Anz_Fragen + 1) & 2 * Anz_Fragen & ";" & Right("0" & i, 2) & ")" _

Cells(2 * i + 1, 3 + Anz_Fragen).Formula = 
   "=countif(C2:" & Chr(65 + Anz_Fragen + 1) & 2 * Anz_Fragen & "," & Right("0" & i, 2) & ")"



Das Problem war, dass bei FormulaLocal hinten ein Semikolon stehen muss und bei Formula ein Komma. Dies wird auch durch die englische Schreibweise bedingt.

Gruß
David


  

Betrifft: AW: Fehler bei Formel per Makro in Zelle eintragen von: Born
Geschrieben am: 23.10.2008 11:01:54

Hallo David,
vielen Dank. Das könnte die Ursache sein.

Viele Grüße,
M. Born


Beiträge aus den Excel-Beispielen zum Thema "Fehler bei Formel per Makro in Zelle eintragen"