Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1844to1848
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

Summen Formel mit Zeilenumbruch

Summen Formel mit Zeilenumbruch
07.09.2021 09:09:06
Herrmann
Hallo liebe Community,
nach der Frage, weshalb meine Datei ziemlich schleppend, langsam und hängend arbeitet ist der Klaus M. auf folgendes Problem gestoßen: (danke noch einmal!)
https://www.herber.de/forum/messages/1846414.html
Die ganze Formel dazu: https://www.herber.de/forum/messages/1846416.html
Die Beispieldatei: https://www.herber.de/bbs/user/147929.xlsm
Leider habe ich keine andere Formel finden können die eine/mehrere Zellen zusammen addiert die ein Zeilenumbruch beinhalten oder auch nicht. Im Prinzip ist es nur eine Zeile welches auf mehrere Zellen kopiert wurde.
Gibt es eine andere Möglichkeit das zusammen zu fassen ?
Gruß

21
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Summen Formel mit Zeilenumbruch
07.09.2021 09:56:11
Klaus
Wie ich schon schrieb: Ich würde das komplett über VBA lösen. Zeilenumbrüche müsste man mit einem relativ simplem suchen&ersetzen (Makrorekorder, STRG+F) weg bekommen, das glätten kann ebenfalls VBA übernehmen.
Ich hab leider gerade nicht die Kapazität, um in das Thema einzusteigen, darum lasse ich den Thread offen.
LG,
Klaus M.
AW: Summen Formel mit Zeilenumbruch
07.09.2021 10:19:35
Herrmann
Hallo Klaus,
vielen Dank bis hier hin! Leider übersteigt das mein Level bezüglich VBA um das lösen zu können.
Ich hoffe auf Unterstützung :)
Gruß
AW: Summen Formel mit Zeilenumbruch
07.09.2021 10:19:10
peterk
Hallo Hermann
Probiers mal mit eine UDF (in ein globales Modul)

Function UDFSumme(ParamArray CellRef() As Variant) As Long
Dim myCell As Variant
UDFSumme = 0
For Each myCell In CellRef
If Trim(myCell.Value)  "" Then
UDFSumme = UDFSumme + Evaluate("+" & Replace(myCell.Value, Chr(10), "+"))
End If
Next myCell
End Function
Beispiel Zelle M4: =UdfSumme(N4;Q4;T4;W4;Z4) (ich hab nicht alle Zellen reingeschrieben ;-) )
Peter
Anzeige
Danke!
07.09.2021 10:24:57
Herrmann
Hallo Peter,
Danke, es hat funktioniert, muss ich mal in die Orginaldatei einbauen und schauen ob die Datei sich immer noch aufhängt.
Gruß
noch nicht ganz..
07.09.2021 11:01:24
Herrmann
Hallo nochmal Peter,
ich habe es nun auf die Orginaldatei übernommen, manche werte werden summiert, manche wiederrum erscheint #WERT!
Gruß
AW: noch nicht ganz..
07.09.2021 11:28:20
Daniel
Hi
wenn #Wert drin steht, dann steht in den Zellen wahrscheinlich nicht nur Zahl + Zeilenumbruch, sondern irgendwo ein Text mit drin.
oder du hast noch einen Zeilenumbruch am Ende, den kann das Evaluate auch nicht berechnen.
Hast du dir schon mal meinen Vorschlag mit dem Namen angeschaut?
Feedback dazu würde mich freuen, zumal das ohne VBA auskommt.
Gruß Daniel
Anzeige
AW: noch nicht ganz..
07.09.2021 11:53:00
peterk
Hallo Hermann
Wie Daniel schon geschrieben hat könnte in der Zelle kein Zahl stehen.Benutze FORMEL FORMELAUSWERTUNG in der Zelle mit #Wert um zu sehen bei welcher Spalte es zu einem Problem kommt.
Des weiteren: Deine Mousehooks werden nicht sauber gelöscht, nach "Eingabe" befindet sich das Programm im Endlos Loop. Dies könnte zu Deinen Abstürzen bzw. Verlangsamung führen.
Peter
AW: noch nicht ganz..
07.09.2021 12:06:23
Klaus
Da sein Programm immer "nach der Eingabe" hängen bleibt, müsstest du hier eine ganz heiße Spur haben Peter.
Bei meiner Annahme dass die Killerformel Schuld ist spricht dagegen, dass Excel dann ja auch VOR der Eingabe hängen müsste (die Formel rauszunehmen macht aus Performance Sicht natürlich trotzdem Sinn).
Ich gebe ja zu dass ich selbst mir die Mousehooks nicht weiter angesehen habe.
LG,
Klaus M.
Anzeige
Maushook
07.09.2021 12:26:27
Herrmann
Hallo Peter,
hast du eventuell eine Lösung dazu? Ich glaube, dass ich das von Nepumuk übernommen hatte.
Gruß
AW: Maushook
07.09.2021 12:30:49
peterk
Hallo Hermann
Bin noch am suchen ....
Peter
Gefahr erkannt, Gefahr gebannt
07.09.2021 12:46:42
peterk
Hallo Herman
In der Prozedure HookMouse hast Du vergessen die Variable "lblnHook" zu setzen!
Richtig:

If Not lblnHook Then
llngMouseHook = SetWindowsHookExA(WH_MOUSE_LL, AddressOf MouseProc, lngHinstance, 0&)
lblnHook = True
End If
Peter
Danke
07.09.2021 12:58:33
Herrmann
Hallo Peter,
mega gut, danke dir !!
Gruß
AW: Summen Formel mit Zeilenumbruch
07.09.2021 10:19:46
Daniel
das ist schon ne Monsterformel.
zunächst aber eine Bitte, wenn du Beispieldateien hier hochlädst, dann entferne doch bitte jeden Schutz oder Login-Abfragen.
Da du hier nichts bezahlen musst, sollte es eigenlich selbstverständlich sein, dass du es den potentiellen Helfern so einfach wie möglich machst und man sich nicht erst durch irgendwelche Anmeldeprozeduren quälen muss.
zum Thema:
die Aufgabe lässt sich tatsächlich vereinfachen, allerdings mit einer versteckten Funktion.
Diese nennt sich AUSWERTEN und ist in der Lage, einen Text, der wie eine Formel aussieht, als Formel zu berechnen (also quasi ein Indirekt für Formeln)
allerdings ist diese Funktion nicht direkt zugänglich, sondern nur innerhalb von NAMEN anwendbar (es handelt sich um eine alte Excel4Makro-Funktion, die mit Einführung von VBA aus dem Funktionskanon entfernt wurden, aber über Namen noch verfügbar sind).
wenn man deine Zellwerte zusammensetzt und jeden Zeilenumbruch durch ein "+" ersetzt, hätte man so einen Text, den man mit Auswerten berechnen kann.
gehe so vor:
1. markiere die Zelle M37 (also die, wo die Summe erscheinen soll, ich hab Zeile 37 genommen, weil da Werte zum berechnen vorhanden sind)
2. gehe dann in den Namensmanager und lege den Namen "SummeSpezial" (kannst du natürlich ändern) an, mit folgender Formel bei "bezieht sich auf".
beachte, dass die relativen Zellbezüge immer passend für die aktive Zelle geschrieben werden, dann kannst du den Namen auch in anderen Zeilen verwenden:

=AUSWERTEN(WECHSELN(GLÄTTEN(WECHSELN(Beispiel!O37&ZEICHEN(10)&Beispiel!R37&ZEICHEN(10) &Beispiel!U37&ZEICHEN(10)&Beispiel!X37&ZEICHEN(10)&Beispiel!AA37;ZEICHEN(10);" "));" ";"+")) 
Achtung, ich hab jetzt nicht alle Zellen verknüpft (war zu faul), dh du musst diesen Formelteil noch erweitern, sollte aber kein Problem sein.
3. Schreibe dann in die Zellen der Spalte M die Formel: =SummeSpezial
wenn du diesen Namen auch auf anderen Blättern mit gleicher Spaltenstruktur einsetzen willst, dann lass in der Formel den Blattnamen "Bespiel" weg, lass aber das ausrufezeichen stehen. Dann wird hier immer das aktive Blatt in den Namen eingesetzt.
Gruß Daniel
Anzeige
nur mal so...
07.09.2021 10:26:48
Oberschlumpf
Hi Daniel,
Zitatauszug:
"...dann entferne doch bitte jeden Schutz oder Login-Abfragen..."
Grundsätzlich hast du recht, ich bin auch kein Freund von PW- sonstwie geschützten Bsp-Dateien.
Aber in diesem Fall ist die gezeigte Starttabelle wohl Bestandteil von Herrmanns eigtl Datei.
Und so denk ich, dass es in diesem Fall ok ist, wenn diese Tabelle mit PW-Schutz auch in der Bsp-Datei enthalten ist.
Ciao
Thorsten
Danke
07.09.2021 11:29:46
Herrmann
Hallo Daniel,
danke für deine Bemühung, hat funktioniert.

zunächst aber eine Bitte, wenn du Beispieldateien hier hochlädst, dann entferne doch bitte jeden Schutz oder Login-Abfragen...
wie Thorsten schon sagte, es war Bestandteil der Datei
Gruß
Anzeige
AW: Danke
07.09.2021 12:36:43
Daniel
ja, aber du musst die Datei ja sowieso überarbeiten, wenn du sie hier hochlädst (Namen anonymisieren usw)
da kann man auch das löschen, was nicht benötigt wird.
Zumindest hast du mal die Zugangsdaten angegeben, dass man das tun muss, ist auch nicht immer allen Fragestellen klar.
Gruß Daniel
AW: Summen Formel mit Zeilenumbruch
07.09.2021 10:23:31
Rudi
Hallo,
UDF:

Function SummeUmbruch(Bereich As Range, Schritt As Integer)
Dim arr
Dim i As Integer, j As Integer, tmp
arr = Bereich.Value
arr = Application.Transpose(Application.Transpose(arr))
For i = LBound(arr) To UBound(arr) Step Schritt
tmp = Split(arr(i), vbLf)
For j = LBound(tmp) To UBound(tmp)
If IsNumeric(tmp(j)) Then
SummeUmbruch = SummeUmbruch + tmp(j) * 1
End If
Next j
Next i
End Function
Im Blatt z.B.: =SummeUmbruch(O4:AZ4;3)
Gruß
Rudi
Anzeige
AW: Summen Formel mit Zeilenumbruch
07.09.2021 11:03:22
Herrmann
Hallo Rudi,
danke im vorab für deine Bemühung! Ich habe dein Lösungsvorschlag auf meine Orgnaildatei übernommen, leider erscheint bei allen Zeilen (anders als bei Peter's Beitrag mein Antwort "noch nicht ganz..") #WERT!
Gruß
Korrektur
07.09.2021 11:08:12
Herrmann
Hallo nochmal,
tut mir leid, der Fehler lag bei mir, es funktioniert alles. Danke!
Ein kleiner Hacken, er zeigt mir das kleine grüne Zeichen oben links in der Zelle dass die Formel ungültig sei. Wie umgehe ich diese so dass es gültig ist?
Gruß
AW: Korrektur
07.09.2021 12:09:54
Rudi

Wie umgehe ich diese so dass es gültig ist?
Datei-Optionen-Formeln: Fehlerüberprüfung
Anzeige
Danke an Alle!
07.09.2021 13:00:35
Herrmann
Hallo alle zusammen,
ich wollte noch einmal mein herzlichen Dank aussprechen für all eure Hilfen. Ich war echt kurz davor die Datei neu zu erstellen.. puh, gut davon gekommen.
Schönen Tag noch und bleibt gesund!
Gruß

304 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige