Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
552to556
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
552to556
552to556
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Formel aus VBA einfügen - Problem

Formel aus VBA einfügen - Problem
22.01.2005 11:12:52
Peter
Liebe Forumsteilnehmer,
ich habe folgendes Problem: Ich möchte in eine Zelle eine Formel einfügen, die an sich einwandfrei funktioniert, aber wenn sie aus VBA kommt, dann erst mal nicht. Zur Verdeutlichung:
zaehler = 2
Worksheets("Frequenzlisten").Cells(zaehler, 3).Formula = "=ROUND(R[0]C[-1]/SUM(B:B)*100,1)"
ergibt in Excel als Formel in C2:
=RUNDEN(B2/SUMME(B:B)*100;1)
Also werden die englischen Formeln zu deutschen, und das Komma wird zum Strichpunkt. Das ist ja soweit alles korrekt. Trotzdem zeigt mir Excel einen "#Name?"-Fehler an, und wenn ich mir zeigen lasse, wo, dann zeigt er auf die beiden B in SUMME(B:B).
Was mich jetzt nur völlig irritiert: Wenn ich auf die Zelle mit dem "#NAME?"-Fehler gehe, dann oben in die Formelzeile und einmal die Eingabetaste drücke, dann funktioniert die Formel plötzlich. Ich ändere gar nichts an der Formel. Wie kann ich die Formel dazu bringen, von Anfang an zu funktionieren?
Beste Grüße und vielen Dank!
Peter

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Formel aus VBA einfügen - Problem
Tina
Hi Peter,
vielleicht so:
=ROUND(R[-3]C[-1]/SUM(C[-1])*100,1)
Gruß Tina
AW: Formel aus VBA einfügen - Problem
22.01.2005 11:25:53
Peter
Liebe Tina,
vielen Dank für die schnelle Hilfe!!! Es funktioniert tatsächlich so. Nur verstehe ich nicht ganz warum :-(
Ich hab' ein ähnliches Problem nämlich nochmal:
Worksheets("Frequenzlisten").Cells(zaehler, 2).Formula = "=COUNTIF(Daten!A2:A2000,R[0]C[-1])"
Da macht mir Excel so einfache Anführungszeichen um A2 und A2000:
=ZÄHLENWENN(Daten!'A2':'A2000';A2)
Und ich kriege wieder den #Name?-Fehler. Kann ich Ranges nie in diesem Format angeben, wenn ich R1C1-Befehle gleichzeitig verwende?
Viele Grüße
Peter
Anzeige
AW: Formel aus VBA einfügen - Problem
Tina
Hi Peter,
vielleicht so:
"=COUNTIF(Daten!R[-11]C[-2]:R[1987]C[-2],R[-11]C[-2])"
Ein kleiner Tip von mir:
ich schreibe die Formel in Excel, kopiere die Formel ohne "="
Dann starte ich den Makrorecorder, gehe in eine Zelle schreibe "=" und füge mit strg und v die kopierte Formel ein. Dann gehe ich auf Makro bearbeiten und schnapp mir die Formel übersetzt in VBA.
Ist zwar total unprofessionell, aber es klappt ;-)
Gruß Tina
AW: Formel aus VBA einfügen - Problem
22.01.2005 11:37:55
Matthias
Hallo Peter,
scheinbar nicht.
aber so geht es:
.FormulaR1C1 = "=COUNTIF(Daten!" & Range("A2:A2000").Address(0, 0, xlR1C1) & ",R[0]C[-1])"
Gruß Matthias
Anzeige
AW: Formel aus VBA einfügen - Problem
22.01.2005 11:54:53
Peter
Liebe Tina, lieber Matthias,
find' ich toll, dass Ihr Euch so um mich kümmert!
Leider machen beide Vorschläge nicht das, was ich will. Ich hab' glaub' ich nicht deutlich genug beschrieben, was passieren soll:
Ich möchte in Zelle B2 des Arbeitsblatts "Frequenzlisten" folgende Formel haben:
=ZÄHLENWENN(Daten!A2:A2000;A2)
In Zelle B3 möchte ich:
=ZÄHLENWENN(Daten!A2:A2000;A3)
B4:
=ZÄHLENWENN(Daten!A2:A2000;A4)
und so weiter.
Dabei kann ich das A2, A3, A4 perfekt über R[0]C[-1] schreiben. So blöd es klingt, mein Problem dabei ist der konstante Teil A2:A2000, den mir Excel nicht frisst.
Anzeige
AW: Problem gelöst
22.01.2005 12:05:24
Peter
So, dank Eurer Hilfe hab' ich nochmal in der Hilfe die Sache mit xlR1C1 nachlesen können, und habe das Problem gelöst. Der Vorteil ist jetzt sogar, dass ich nur so viele Einträge durchgehen muss, wie da sind:
(zugegeben, es ist etwas umständlich, aber ich habe im Original eine Variable verwendet, das macht es besser lesbar)
Worksheets("Frequenzlisten").Cells(zaehler, 2).Formula = "=COUNTIF(" & Worksheets("Daten").Range("A2", Worksheets("Daten").Range("A2").End(xlDown)).Address(1, 1, xlR1C1, 1) & ",R[0]C[-1])"
AW: Problem gelöst
22.01.2005 12:24:05
Matthias
Hallo Peter,
mit Range("A2").End(xlDown) erhältst du die letzte gefüllte vord er ersten leeren Zelle Zelle ab A2.
Wenn nun aber in der Liste Leerzellen enthalten sind, die Liste darunter aber weitergeht, ist es besser, mit dieser Formel zu arbeiten:
Range("A65536").End(xlUp)
Damit bekommst du in jedem Fall die letzte beschriebene Zelle, es sei denn, die Spalte ist komplett voll oder komplett leer, dann erhältst die Zelle A1.
Gruß Matthias
Anzeige
AW: Formel aus VBA einfügen - Problem
22.01.2005 12:07:10
Matthias
Hallo Peter,
dann so:
.FormulaR1C1 = "=COUNTIF(Daten!" & Range("A2:A2000").Address(1, 1, xlR1C1) & ",R[0]C[-1])"
Grüße,
Matthias

299 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige