Anzeige
Archiv - Navigation
1096to1100
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
Inhaltsverzeichnis

Funktion in Zelle Kopieren

Funktion in Zelle Kopieren
ChrisW
Hallo Leute,
schon wieder ein Problem,
ich habe eine Function, die alle Zellen einer Farbe addiert (herzlichen Dank an Hajo)
Diesen Funktionsaufruf möcht ich in eine Zelle schreiben:
Fo14 ist in meinem Beispiel :=FarbsummeH(C9:C14;2), da ActiveCell.Row = 9 und j =14 ist. die 2 ist die farbcodierung für "weisse Zelle"
Fo14 = "=FarbsummeH (C" & ActiveCell.Row + 1 & ":C" & j & ",2)"
ActiveCell = Fo14
Wenn ich im Makro zu ActiveCell = Fo14 komme bricht Excel ab mit "application-defined or object-defined error"
Ich bekomme nicht in die Zelle den Text "=FarbsummeH(C9:C14;2)" geschrieben.
Was mache ich falsch?
Gruß Chris
AW: Funktion in Zelle Kopieren
28.08.2009 18:37:03
hary
Hallo Chris
meinst Du so?

ActiveCell.FormulaLocal = "=FarbsummeH(C9:C14;2)"

Gruss Hary
Laborierst du hier etwa immer noch an...
28.08.2009 19:14:14
Luc:-?
...deinem alten Thema, auf das du da einfach nicht mehr reagierst. Denkst du denn, wir arbeiten gern für Jemanden, der offensichtlich unfähig ist, sich mit den Forumsregeln vertraut zu machen und deshalb ständig neue Threads zum selben Thema eröffnet? Welcher Nachnutzer soll das später mühselig in Verbindung bringen?
Der bestätigungsfreudigste scheinst du jedenfalls nicht zu sein oder du hast, wenig wahrscheinl, einen Doppelgänger dieses Charakters... :-<
Luc :-?
Anzeige
AW: Formelproblem besteht leider immer noch
28.08.2009 21:20:35
ChrisW
Hallo Luc,
sorry, wenn ich etwas "bestätigungsunfreudig" erscheine, ich taumele von einem Meeting ins nächste und deshalb bin ich leider immer nur mal ne halbe Stunde zwischendurch online.
Muss zwischen den Meetings das nächste vorbereiten und soll so zwischendurch mal die eine oder andere Vereinfachung der Excelprobleme unseres Projektmanagement durchführen.
Trotzdem bin ich Euch sehr dankbar, denn meine VBA Kenntnisse sind leider nicht so weit fortgeschritten wie ich es gerne hätte und Ihr wart mir immer eine große Hilfe. Also bitte nicht böse sein.
Ich habe folgendes probiert:
wenn ich direkt die Zeile
ActiveCell = "=FarbsummeH(C9:C14,2)"
eingebe wird die Formel in die Zelle kopiert,
wenn ich aber die Formel zusammenbastele
Fo14 = "=FarbsummeH (C" & ActiveCell.Row + 1 & ":C" & j & ",2)"
und dann
ActiveCell = Fo14
ins Makro schreibe
oder ohne den Umweg über die Variable Fo14
ActiveCell = "=FarbsummeH (C" & ActiveCell.Row + 1 & ":C" & j & ",2)"
kommt es zu dem Fehler.
Ich verstehe das überhaupt nicht
Das Ergebnis müsste doch das gleiche sein. :c{
Nochmals vielen Dank für Eure Hilfe
Chris
Anzeige
AW: Formelproblem besteht leider immer noch
28.08.2009 21:39:43
Jochen
Hi,
liest du auch alle Antworten?
Fo14 = "=FarbsummeH (C" & ActiveCell.Row + 1 & ":C" & j & ",2)"
und dann
ActiveCell.FormulaLocal = Fo14
AW: Formelproblem besteht leider immer noch
28.08.2009 21:53:00
ChrisW
Hallo Jochen,
habe ich ausprobiert
Userbild
bleibt bei ActiveCell.FormulaLocal = Fo14 hängen
Chris
AW: Beispieldatei
28.08.2009 22:09:13
Daniel
hilft meistens bei der Fehlersuche.
sollte halt beide Codebeispiele enthalten.
ansonsten, welchen Text enthält Fo14, wenn der Code abbricht?
hast du schon mal mit dem Code in verschiedenen Ländervarianten rumgespielt (Semikolon, Komma)
oder das ganze mal in einer anderen Spalte getestet? bei Spalte C könnte Excel auch mit den verschiedenen Schreibweisen der Formeln durcheinanderkommen.
Gruß, Daniel
Anzeige
AW: Beispieldatei
28.08.2009 22:28:33
ChrisW
Hallo Daniel,
Wenn ich auf Fo14 gehe steht dort "=FarbsummeH(C9:C14;2)"
Ich habe auch schon mit ; und , gespielt ohne Ergebnis
Wenn ich die identische Formel als"Klartext" eingebe funktioniert es ja auch, aber eben nicht als Zusammengewürfelte Formel.
Ich habe folgendes gemacht:
Fo14 = "=FarbsummeH (C" & ActiveCell.Row + 1 & ":C" & j & ",2)"
If F014 "=FarbsummeH(C9:C9,2)" Then MsgBox (Fo14 & " ungleich " & "=FarbsummeH (C" & ActiveCell.Row + 1 & ":C" & j & ",2)")
ActiveCell.FormulaLocal = Fo14
das öffnet die folgende MSGBOX
Userbild
Für mich sieht beides identisch aus, aber ich habe ja auch nicht die Microsoft Spezialschlafbrille 8-)
Ich bin aber jetzt wieder offline - Meine Zwerge lassen mich nämlich nur kurz schlafen und ich bin ziemlich platt heute.
Wenn Euch noch etwas einfällt, ich schau morgen Früh wieder rein.
Chris
Anzeige
AW: Beispieldatei
28.08.2009 22:58:28
Daniel
Hi
wenn du wissen willst, was der Fehler sein könnte und welche Lösung vielleicht funktionieren würde, dann stell ne Frage.
wenn du wissen willst, was die Fehlerursache IST und und wie eine FUNKTIONSFÄHIGE Lösung tatsächlich aussieht, dann lad eine Beispieldatei hoch.
hier helfen alle freiwillig und unentgeltlich und je einfacher es du den Antwortern machst, um so grösser wird die Hilfsbereitschaft sein.
Da FARBSUMME z.B. keine originäre Excelformel ist, kann ich z.B. dein Beipiel gar nicht nachbauen und werde mir auch nicht die Mühe machen, ein ähnliches zu konstruieren.
ich kanns nur nochmal sagen, wenn man Code in Zellen schreibt, sollte man sich für eine Variante entscheiden (Formula, FormulaLocal, FormulaR1C1, FormulaLocalR1C1), dies Excel mitteilen und die Formel entsprechend den Regeln formulieren.
das ganze durch Weglassen (entspricht .Value) der Excelumwandlungsautomatik zu überlassen ist viel zu unsicher.
und weil ich heute freundlich bin, noch ein kleiner Hinweis:
prüf mal deine Variablenbezeichnungen, ob die wirklich durchgängig sind oder ob sich da nicht irgendwo ein Tippfehler eingeschlichen hat, oder Leerzeichen in den Strintexten, die können das ganze auch verursachen.
ohne Beispieldatei weiß ich nicht, ob das in deinem Makro auch so aussieht oder ob du dich einfach nur bei der Eingabe hier im Forum vertippt hast.
Beide Fehler kommen übrigens vor (Falsche Variablenbezeichnung und unterschiedliche Leerzeichen in beiden Strings)
Gruß, Daniel
Anzeige
Heh, Daniel, du liest doch, der Mann ist...
28.08.2009 23:12:11
Luc:-?
...völlig überarbeitet und damit "durch den Wind" und dann noch die Tücken der Formelzuweisung bei wer-weiß-was für xlEinstellungen...
Na, da wird er ja wohl auch meinen Alternativvorschlag nicht richtig umsetzen können... Übrigens, sieh dir ruhig auch mal die Antworten in den anderen bd Threads an (falls du das nicht schon getan hast)... ;-)
Für mich ist nicht ersichtlich wie er jetzt hier auf irgendwas von Hajo kommt, der doch gar nicht beteiligt war. Muss wohl schon länger zurückliegen... Und jetzt wdn alle Arbeiten gleichzeitig fällig... So geht's heute wohl in vielen Firmen zu!
Gruß+schöWE
Luc :-?
Anzeige
Hier die Beispieldatei
29.08.2009 11:34:02
ChrisW
Hallo Leute,
Sehr witzig, ich bin über Hajo's Website gestolpert, als ich andere Forenbeiträge gelesen habe und habe da genau das gefunden, was mir die Möglichkeit eröffnet (wenns denn klappen würde) um farbige Zellen zu addieren ;c)
Ich hatte auch die verschiedenen Varianten durchprobiert, aber alle mit dem gleichen Ergebnis.
(Formula, FormulaLocal, FormulaR1C1, FormulaLocalR1C1, Value).
Ich habe sogar versucht die Formel durch hinzufügen von 2 Buchstaben am Anfang der Variablen als echten Text zu kopieren
Fo14 = "QQ=FarbsummeH (C" & ActiveCell.Row + 1 & ":C" & j & ",2)"
(was geklappt hat) und dann die beiden Buchstaben "QQ" zu ersetzten mit "", aber dies war mir wieder nicht erlaubt und brachte die selben Fehlermeldung hervor wie bei direkter Variablenzuweisung.
Aber um weiteren Spekulationen vorzubeugen,
Hier ist jetzt meine Beispieldatei mit den wichtigsten Teilen der Gesamttabelle, überflüsseigen Code habe ich gelöscht.
https://www.herber.de/bbs/user/64106.xls
Also dann werde ich mich bis Montag Euren Vorschlägen widmen.
Danke, bis später,
Chris
Anzeige
AW: Hier die Beispieldatei
29.08.2009 14:04:52
Adelhorst
Hallo Chris.
Folgende Varianten funktionieren in deiner Beispieldatei:
(Einmal musste das Leerzeichen hinter FarbsummeH entfernt werden, und zum anderen war ein Semikolon für ein Komma einzusetzen:
ActiveCell = "=FarbsummeH(C9:C9,2)"
Fo14 = "=FarbsummeH(C" & ActiveCell.Row + 1 & ":C" & j & ";2)"
ActiveCell.FormulaLocal = Fo14
ActiveCell = "=FarbsummeH(C" & ActiveCell.Row + 1 & ":C" & j & ",2)"
Gruß Adelhorst
Warum arbeitest du überhpt mit Farbsummen,...
28.08.2009 22:23:35
Luc:-?
...wenn du doch so einen schönen Index hast, Chris?
Allerdings weiß ich nicht, ob du den selber machst, die Farben aber bestimmt, denn es sollte mich doch wundern, wenn das so aus SAP kommt. Ich fürchte, du verrennst dich da unnötigerweise. Im alten Thread hast du 2 Lösungen für das Problem — meine basiert auf dem Index unter Lead column, allerdings ohne Pktt ⇒ {=WECHSELN(A5:A27);".";"")}.
Falls du den Index manuell erstellst, gibt's sicher auch eine Möglichkeit, das anhand der Verteilung von Leer- und ausgefüllten Zellen automatisch bzw per Fml zu tun. Das würde dir die ganze Farbenhuddelei ersparen (die kannst du dann bei Bedarf unter xl12 per bedingter Formatierung erzeugen) und so dein Pgm stark verkürzen.
Falls die "Leerzellen" für die Summen schon aus SAP (falsch) gefüllt kommen, muss sich alles nach der Länge des Index richten. Indizes in MaxLänge sollten dann zu Primärwerten gehören, alle anderen zu (Teil-)Summen...
Übrigens, falls die Farben von vornherein über BedingtFormat (für mehr als 3 zusätzl nur ab xl12!) erzeugt wdn, können alle vorgestellten "Farbsummen"-Lösungen nicht fktn. Das würde dann wesentl komplizierter und ich glaube kaum, dass dafür hier irgendjemand 'ne echte "Farb"-Lösung hätte.
Gruß Luc :-?
Anzeige
AW: Warum arbeitest du überhpt mit Farbsummen,...
28.08.2009 23:05:19
ChrisW
Hallo Luc,
der eigentliche Index sieht anders aus, ich wollte ihn nur mit den Buchstaben andeuten, das die Baumstruktur zu erkennen ist.
Hier ein "Simuliertes" Beispiel, da ich die originaldaten nicht herausgeben darf:
Userbild
SAP liefert mir ein spreadsheet das ich selbst per Makro in ein brauchbares Excelformat umwandele.
Die Farbe sind von mir vergeben und veranschaulichen die Ebenen der Unterkontierungen, deshalb sind die Farbwerte auch eindeutig.
Zur Erstellung der Farbformatierung zähle ich die Punkte im Index und weise dann der Zeile die entsprechende Farben zu.
SAP liefert mir anstatt der Summierungsformel nur die Summierung als Zahlenwert.
Ich muss aber mit den "weißen" Unterkontierungen spielen können und dazu benötige ich die entsprechenden Formeln in den Excel Zellen.
Da diese Konten aus SAP locker 2000 Zeilen habe und ich für jedes Projekt andere Kontenstämme habe muss ein Makro her, das mir die Arbeit ein wenig erleichtert, da jede Woche aktuelle Updates gezogen werden müssen.
Es mag zwar etwas kompliziert sein die Summierung über die Farben zu wählen, aber das ist der Weg den ich bisher eingeschlagen habe.
Wenn nur die blöde Formel sich in die Zelle kopieren ließe wäre das Makro schon längst fertig, denn das Gerüst steht aber ich bekomme nicht die Zelle mit meiner Formel gefüllt und ich verstehe nicht wieso.
Wenn ich eine andere Formel erstelle funktioniert das Ausfüllen der Zellen, es kann also nur daran liegen, das die Formel einen Funktionsnamen enthält "FarbsummeH" . Wenn ich die Formel im Klartext einfügen lasse funktioniert das in die Zelle schreiben, wenn ich die zusammengesetzte variable Formel einfüge kommt es zum Abbruch und der Fehlermeldung.
Naja, wenn Du oder irgendwer eine Idee habt wie ich den Fehler beheben kann, ich bin immer dankbar.
So und nun Gute Nacht, bis morgen
Chris
Anzeige
Nun aber ab ins Bett, du weißt doch, die...
29.08.2009 00:19:06
Luc:-?
..."Zwerge" kennen kein Erbarmen, Chris... ;-)
Meine "Zwerge" sind glücklicherweise schon so erwachsen, dass sie selbst schon "Zwerge" haben könnten, die zumindest in einem Fall auch schon wieder "Zwerglein"...
Vielleicht liegt dein Problem daran, dass xl diese Fkt nicht kennt; dann würde es allerdings mit #NAME? in der Zelle antworten (anderenfalls würde die udFkt im xlFktsAssi angezeigt wdn — gib mal in irgendeine Zelle der Mappe =FarbsummeH( und anschließend Tastenkomb ^A ⇒[Strg][Ums][A] ein! Kommt da nichts, ist es so wie ich vermute.). Du müsstest dann xl mit dieser udFkt "bekannt" machen, indem du ihren Körper in der gleichen Mappe oder in einer anderen, die automatisch beim xlStart mitgeöffnet wird, speicherst. Üblicherweise macht man Letzteres in der PERSONL.xls oder mit einem per AddIn-Manager eingebundenen AddIn. Das ist ein unabhängiges Projekt, das die benötigten Prozeduren enthält, und in den Objekteigenschaften der Mappe bei IsAddIn True gesetzt wurde. Dadurch startet es bei jedem xlAufruf unsichtbar im Hintergrund, was man dann an den Meldungen der Statusleiste erkennen kann. Die dafür übl Dateiendung .xla ist fakultativ (Win will die Datei dann aber sofort in seinem AddIn-Verzeichnis ablegen!) — entscheidend ist die IsAddIn-Eigenschaft.
Wenn das alles nicht getan wurde, die udFkt aber in einer anderen Datei vorhanden ist, muss der Pfad mit angegeben wdn. Das ist wie mit verknüpften Dateien; sobald man eine solche schließt, erscheint sofort der vollständige Pfad zu derselben im Zellbezug. Genau deshalb ist es auch v.Vorteil, automatisch startende Dateien für udFktt zu verwenden — ganz schnell könnte sonst die FmlMaxLänge überschritten wdn (zumindest, wenn man benannte Fmln verwendet, denn da beträgt sie nur 255 Zeichen und Pfade zu Fremddateien wdn immer mit angegeben)... Mit einem bspw direkt im Office-Ordner Makro gespeicherten AddIn vermeidet man das (nicht Macros, der ist für Word), wenn man das AddIn auch eingebunden hat.
Du hättest ganz auf diese udFkt verzichten können (sie wird ohnehin nicht BedingtFormat-taugl sein, falls du sie mal für so etwas einsetzen wolltest), wenn du statt der Farben anhand der PkttZählung einen vernünftigen Index generiert hättest. Anhand seiner Länge hätten die mit Fmln zu überschreibenden Zellen identifiziert wdn können — sehr viel anders kann's ja auch mit der Farbgenerierung nicht fktn, nur, dass die die schlechtere Lösung ist, denn so etwas ist in xl nur Design, normalerweise nicht verarbeitungsrelevant. Außerdem kann ein anderer Nutzer eine andere Farbpalette anlegen und das war's dann mit der "Farb"-Summe... So generierst du nur unnötigerweise zukünftige Probleme — Mit- und Nach-Arbeiter wdn dir sicher ewig dankbar sein... ;-> *diabolisch*
Deshalb sollte man in Foren auch stets sein eigentl Problem schildern, sofern es "selbst-bewusst" ist, und sich nicht auf seinen eigenen Lösungsansatz versteifen! Den kann man zusätzl zwecks Info angeben. Das hätte dir und uns hier jedenfalls viel Zeit und Nerven "gespart"... ;-|
Denn nach meinem, entsprechend zu ergänzenden Vorschlag wäre das Ganze zieml simpel geworden und auch für VBA-Anfänger (unter den Kollegen) zu begreifen gewesen...
Gruß Luc :-?
AW: also ich tippe immer noch
29.08.2009 00:47:31
Daniel
auf einen Tippfehler: nämlich das Leerzeichen, daß sich in den Code reingeschlichen hat und in der einen Formel vorkommt und in der anderen nicht.
Gruß, Daniel
Das könnte auch mögl sein,...
29.08.2009 03:36:02
Luc:-?
...Daniel,
allerdings stören Leerzeichen in Formeln an unauffälliger, irrelevanter Stelle idR nicht...
Gruß Luc :-?
AW: Funktion in Zelle Kopieren
29.08.2009 10:22:10
Gerd
Hall Chris,
deine Farbsummen-Funktion kenne ich nicht.
Stattdessen habe ich eine Dummy-Funktion mit der selben Art von Argumenten genommen.
'Allgemeines Modul
Public Function FarbsummeHTest(Bereich As Range, dummy As Byte)
FarbsummeHTest = Application.Sum(Bereich) * dummy
End Function

Sub a()
Dim Fo14 As String
Dim j As Integer
j = 7 ' Zeilenermittlung wurde nicht gezeigt.
Fo14 = "=FarbsummeHTest((C" & ActiveCell.Row + 1 & ":C" & j & "), 2)"
ActiveCell.Formula = Fo14
End Sub Es ist m.E. etwas mühsam, bei 2000 Zeilen hier mit der ActiveCell u. ActiveCell.Row zu arbeiten.
Gruß Gerd
Aha, wieder mal was als Byte deklariert,...
29.08.2009 10:50:13
Luc:-?
...Gerd;
das soll lt kundiger Aussage gar nichts bringen. Da hab' ich wohl mit meiner Einschätzung von FarbsummeH "doppelt" recht... ;-)
Gruß+schöWE,
Luc :-?
AW: Vlt. solltest selbst mal...
29.08.2009 11:12:09
Gerd
....in die Kissen, Luc.
Das ist doch Pillepalle!
Viele Grüße, auch nach Kundus :-)
Gerd
Was soll der Quatsch! Du warst doch als...
29.08.2009 11:48:22
Luc:-?
..."Nachbauer" gar nicht gemeint! Naja, wem die Jacke passt... ;-)
:-?

301 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige