Seite 1 von 2
Re: 10+11+7+8 sichtbar in Zelle in anderer Zelle aufaddieren
Verfasst: Sa, 13.12.2008 16:54
von Gert Seler
Hallo Elektriker,
setzte in A1 vor die 10 das = (Bspl:=10+11+7+8) und die Zahlen werden in A1 summiert (36).
Die Berechnung in B1 ist überflüssig und funktioniert nicht.
mfg
Gert
Re: 10+11+7+8 sichtbar in Zelle in anderer Zelle aufaddieren
Verfasst: Sa, 13.12.2008 18:46
von Karolus
Hallo
Falls es für dich zu schwierig ist, die Einzelwerte in
B1 mit einem vorangestellten Gleichheitszeichen einzugeben, und dir in
A1 die Formel anzeigen zu lassen :
=FORMEL(B1)
dann versuchs mal damit:
Code: Alles auswählen
Sub auswertung_in_Nachbarzelle
'berechnet den Ausdruck der selektierten Zelle in der rechten Nachbarzelle
osheet = thiscomponent.currentcontroller().activesheet
With thiscomponent.currentselection()
oformel = .string
orow = .getcelladdress.row
ocol = .getcelladdress.column
end with
osheet.getcellbyposition(ocol + 1 , orow).formula = "=" & oformel
End Sub
Gruß Karo
Re: 10+11+7+8 sichtbar in Zelle in anderer Zelle aufaddieren
Verfasst: Sa, 13.12.2008 20:38
von Karolus
Hallo Bernd
Eine Calczelle kann eben nur eine Formel enthalten und das daraus resultierende Ergebnis.
= "=" & A1
ist schon die Formel mit dem Ergebnis:
='Inhalt von A1'
Gruß Karo
Re: 10+11+7+8 sichtbar in Zelle in anderer Zelle aufaddieren
Verfasst: So, 14.12.2008 10:13
von Karolus
Hallo Bernd
Starte das Makro per Tastatur-shortcut , diese Tastenkombi nimmst du anstatt 'enter' zum Abschluss der Eingabe.
http://www.ooowiki.de/MakrosMitEinemKlick
Gruß Karo
Re: 10+11+7+8 sichtbar in Zelle in anderer Zelle aufaddieren
Verfasst: Mo, 15.12.2008 09:22
von Gert Seler
Hallo Bernd,
Karolus hat bereits erwähnt, das in 1ner Zelle nur 1Wert oder 1Formel beinhalten kann ! ! !
Du solltest uns schon einmal erklären, welche verschieden Werte Deine Formel enthält. Zum Beispiel "Länge + Breite + Höhe + Gewicht"
und was hier überhaupt berechnet wird.
Nur dann ist eine effektive Hilfe möglich.
Im Moment stochere ich jedenfalls im Nebel herum.
mfg
Gert
Re: 10+11+7+8 sichtbar in Zelle in anderer Zelle aufaddieren
Verfasst: Mi, 17.12.2008 15:21
von Charly
Hallo Elektriker!
Ich würde diese Aufgabe mit einer selbstgestrickten Funktion lösen. Dazu muss zwischen deinen Werten eine zusätzliche Spalte eingefügt werden,in der die Funktion steht. Diese Spalte kann ausgeblendet werden. Dann stört sie nicht beim Ausdruck.
Ich habe mal auf die Kürze ein Calc-Dokument in dieser Form erstellt. Vielleicht kannst du damit leben.
Die Funktion lautet =rechnen(gewünschte Zelle).
Der Code der Funktion ist:
Code: Alles auswählen
function Rechnen(Inhalt)
Doc = ThisComponent
Teil = split(Inhalt, "+")
Z = ubound(Teil)
Summe = 0
For I =0 to z
Summe = Summe + Val(Teil(I))
next
Rechnen = Summe
End function
gruß
charly
Re: 10+11+7+8 sichtbar in Zelle in anderer Zelle aufaddieren
Verfasst: Mi, 17.12.2008 22:27
von Charly
Hallo Elektriker!
Elektriker hat geschrieben:
Kann deine Funktion nicht so abgeändert werden.
Schleife solange Spaltennummer größer 2 (dort steht die Positionsnummer und die Bezeichnung)
Berechne Zelleninhalt
Addiere Zelleninhalt zum vorherigen Ergebnis
nächsten Zelleninhalt bearbeiten (Schleifenanfang)
Dieser Wunsch ist schwer zu erfüllen. Das Problem ist, dass man bei der benutzerdefinierten Funktion nur den Inhalt eines Objektes, nicht aber das Objekt selbst mitgeben kann. Das heißt bei der Abarbeitung der Funktion, weiß man nicht auf welchem Tabellenblatt und in welcher Zeile man sich befindet. Dies müsste man alles als Text-Parameter mitgeben. Das wiederum macht Probleme beim Kopieren der Function, da sich diese nicht an die aktuelle Zeile anpassen.
Elektriker hat geschrieben:
und wie rufe ich eine Funktion in einer Zelle auf ? (=function meine_Berechnung)
Eine benutzerdefinierte Function wird mit "=" "dem Funktionsname" und in Klammern "die Parameter".
In unserem Fall, wenn deine Zahlen in der Zelle "B2" stehen wie folgt: =Rechnen(B2)
Wenn du meine Beispieldatei im vorigen Beitrag herunterlädst und die entsprechenden Spalten einblendest, kannst du das sehen.
Gruß
Charly
Re: 10+11+7+8 sichtbar in Zelle in anderer Zelle aufaddieren
Verfasst: Do, 18.12.2008 09:39
von Charly
Hallo Elektriker!
Ich habe mir die Sache nochmals überlegt und versucht deinen Vorschlag zu verwirklichen.
Ich brauche jetzt keine Spalten mehr zwischen den Daten. Dafür brauche ich aber 3 Hilfspalten nach der Gesamtsumme, die aber auch ausgeblendet werden können.
In der anhängenden Calcdatei, sind die Daten auf die Spalten C bis H verteilt. Das Gesamtergebnis steht in der Spalte I. Die Hilfsspalten sind die Spalten J bis L.
Meine Funktion benötigt vier Parameter: der abzuarbeitende Bereich; Spaltenindex; Zeilenindex und Tabellenindex. Der Index bezogen auf die Zelle der Gesamtsumme. Bei meiner Funktion habe ich voraussgesetzt, dass die Daten immer in der Spalte C beginnen, sonst brauche ich noch einen 5. Parameter.
Wenn ich also die Zeile 2 abarbeiten will steht dort folgendes:
Zelle I2: =Rechnen(C2:H2;J2;K2;L2)
Zelle J2: =Spalte(I2)
Zelle K2: =Zeile(I2)
Zelle L2: =Tabelle(I2)
Schau dir die anhängende Datei, ob sie besser für deine Anforderung passt.
Gruß
Charly
Re: 10+11+7+8 sichtbar in Zelle in anderer Zelle aufaddieren
Verfasst: Do, 18.12.2008 13:59
von Gert Seler
Hallo Elektriker Bernd,
es wäre natürlich wichtig zu wissen, ob das Format DIN A4 "Hoch" oder "Breit" sein soll. Wieviel Werte sind in 1er Zelle 3,4,5 oder mehr ?
Ebenso solltest Du Kabelgruppen wie z.B. Indoor, Outdoor, Feuchtraum usw bilden und entsprechende Vorlagen.
hab mal ne Vorlage erstellt in der jeder Wert in einer Zelle steht.
mfg
Gert
Re: 10+11+7+8 sichtbar in Zelle in anderer Zelle aufaddieren
Verfasst: Do, 18.12.2008 14:07
von Gert Seler
Sorry,
so geht' s wenn man das Datei_speichern vergisst.
Hier neue Datei.
mfg
Gert
Re: 10+11+7+8 sichtbar in Zelle in anderer Zelle aufaddieren
Verfasst: Do, 18.12.2008 19:25
von otto normal
Hallo Charly
ich bekomme beim Aufruf eine Fehlermeldung (#WERT!)
ansonnsten siehts gut aus.
Hallo Gert
Ich nutze das Querformat
In einer Zelle ist mal kein Wert und mal 50 Werte.
Durch den Automatischen Zeilenumbruch und die automatische Zellenhöhe passt sich das Aussehen an.
Ich Hänge mal eine Tabelle an
Die letzte rote Zeile sollte berechnet werden
PS
Musste mich leider mit anderem Namen registrieren um die Datei hochzulagen
Danke und Gruss
Bernd
Re: 10+11+7+8 sichtbar in Zelle in anderer Zelle aufaddieren
Verfasst: Fr, 19.12.2008 00:12
von MrMurphy
Hallo,
Das verdoppelt meine Anzahl der Seiten
Das verstehe ich jetzt nicht. Du willst 2 Spalten, in Spalte A die Formel im Klartext und in Spalte B das Ergebnis. Mit der vorgeschlagenen Lösung musst du doch nur noch etwas flexibel sein und gibst die Zahlen in Spalte B statt in Spalte A ein. Also:
In der Zelle A1 die Formel: "=TEIL(FORMEL(B1);2;(LÄNGE(FORMEL(B1))-1))"
und
in Zelle B1 dann deine Zahlen, die berechnet werden sollen, also "=10+11+7+8"
Als Ergebnis stehen in Spalte A die Zahlen "10+11+7+8" und in Spalte B das Ergebnis "36".
Und wenn du die Spalte A schon mit Formeln auffüllen willst, bei leeren Zellen in Spalte B aber keine Fehlermeldung erscheinen soll, nimmst du die erweiterte Formel:
=WENN(B1="";"";TEIL(FORMEL(B1);2;(LÄNGE(FORMEL(B1))-1)))
und trägst die so weit wie erforderlich in Spalte A ein. Also die Formel in Zelle A1 kopieren und dann die Zelle runterkopieren, damit die Formel sich an die jeweilige Zeile anpasst. Dadurch wird in der Spalte A erst etwas angezeigt, wenn in der gleichen Zeile der Spalte B etwas eingetragen ist.
In solchen Fällen hinterlege ich die Zellen der Spalte A, die bereits eine Formel enthalten, mit einer hellen Farbe, z. B. beige, damit ich sehe, welche Zellen bereits mit Formeln hinterlegt sind.
Gruss
MrMurphy
Re: 10+11+7+8 sichtbar in Zelle in anderer Zelle aufaddieren
Verfasst: Fr, 19.12.2008 07:28
von Charly
Hallo Bernd!
Wenn ich nachher Zeit habe werde ich mich an deiner Liste versuchen.
Allerdings müssten wir vorher das klären.
otto normal hat geschrieben:
ich bekomme beim Aufruf eine Fehlermeldung (#WERT!)
Ich habe mein Dokument an zwei verschiedenen Computern getestet. Da hat alles funktioniert. Allerdings habe ich noch die 2.4 Version, während du bereits die 3.0 Version hast.
Ich weiß nicht, ob es daran liegt oder kann es sein, dass bei deinem OpenOffice die Makrosicherheit auf "hoch" oder "sehr hoch" eingestellt ist. In diesem Fall würde die Funktion deaktiviert werden. Sie funktioniert nur bei der Einstellung Mittel.
mfg
Charly
Re: 10+11+7+8 sichtbar in Zelle in anderer Zelle aufaddieren
Verfasst: Fr, 19.12.2008 13:44
von otto normal
Hallo Mr Murphy
Es geht beim Aufaddieren nicht nur um eine Zelle sondern um mehrere, daher funktioniert deine Lösung nicht.
Hallo Charly
Das mit den Sicherheitseinstellungen war das Manko
Vielen Dank für den Hinweis.
Deine Lösung funktioniert so. Die 3 Zellen kann ich ausblenden
Gruss und Danke
Bernd
Re: 10+11+7+8 sichtbar in Zelle in anderer Zelle aufaddieren
Verfasst: Fr, 19.12.2008 14:04
von Charly
Hallo Bernd!
Es freut mich, dass das Makro jetzt klappt.
Ich habe es jetzt auch in deine Liste eingebaut. Allerdings habe ich die Funktion umschreiben müssen. Die alte Version hat bei Kommabeträgen falsch gerechnet. Gleichzeitig habe ich den Anfang und das Ende des zu berechnenden Bereiches nicht mehr fest hinterlegt, sondern die Funktion liest die Daten aus der Funktionszelle aus.
Hinweis: Ich habe deine manuelle Summen-Berechnung zum Vergleich gelassen und eine weitere Spalte angefügt, die mir die Differenz zwischen deinen Werten und den Funktionswerten anzeigt. Diese beiden Spalten können natürlich gelöscht werden.
In Zeile 166 habe ich eine Differenz von 0,5. Weiter unten kommt es noch zu Differenzen, weil deine Vergleichsspalte dort als Text formatiert ist.
Ich hoffe jetzt ist alles in Ordnung. Ansonsten melde dich wieder.
Gruß
Charly