Anzeige
Archiv - Navigation
1476to1480
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

Nicht nur Rechnen, sondern auch Text stehen lassen

Nicht nur Rechnen, sondern auch Text stehen lassen
02.03.2016 19:05:52
Erik
Hallo,
Ein kleiner Funktion, der mir hilft Arbeitszeit zu berechnen. Nun kann es aber sein, das statt Zahlen den Text „Urlaub“ oder „Krank“ in der Zelle eingetragen werden und dann muss natürlich diese Funktion nicht beginnen rechnen zu wollen ...
Wie könnte das eingebaut werden? Function rechL(s As Variant) As Variant If Len(s)

17
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Nicht nur Rechnen, sondern auch Text stehen lassen
02.03.2016 19:10:28
Michael
Hi Erik,
Function rechL(s As Variant) As Variant
If Len(s) 
Schöne Grüße,
Michael

AW: Nicht nur Rechnen, sondern auch Text stehen lassen
02.03.2016 19:29:43
Erik
Hi Michael,
Du bist verblüffend schnell!
Danke!
Frühlingsgrüße
Erik

AW: Nicht nur Rechnen, sondern auch Text stehen lassen
02.03.2016 19:34:51
Michael
Hi Erik,
reiner Zufall...
Trotzdem a) gerne und b) naja, wenn ich aus dem Fenster sehe, erst Mal schöne Grüße,
Michael

Ich hätte das wie folgt gemacht, ...
02.03.2016 21:13:23
Luc:-?
…Folks,
wenn ich solch eine unnötig spezielle UDF hätte schreiben wollen:
Function rechL(s As Variant) As Variant
If Len(s) > 2 And IsNumeric(s) Then
rechL = -Evaluate(Replace(Replace(s, " ", "+"), ",", "."))
Else: rechL = s
End If
End Function
Ich würde aber die bereits im Archiv vorhandene UDF TxEval vorziehen, weil man so etwas öfter (ge-)brauchen kann. Dann ist allerdings eine etwas längere Fml erforderlich. Hier mal beide UDFs im Vgl (die obige rechL, bei Original & Korrektur sähe das anders aus, denn Michaels Variante lässt eben nicht Texte stehen, sondern ersetzt sie durch LeerText):
 ABC
1DatenrechLTxEval
2krankkrankkrank
32 5-7-7
4xxxxxx
522-2
63,3-3,3-3,3
7UrlaubUrlaubUrlaub
83 6,4 1-10,4-10,4
9alfaalfaalfa
105 7 2 6-20-20
11-444444
12B2[:B11]:=rechL(A2)
13C2[:C11]:=WENNFEHLER(-TxEval(WECHSELN(WECHSELN(A2;",";".";1);" ";"+"));A2)
Man könnte die Teile der Fml ja auch um den jeweiligen OriginalText herumlegen. Dann bliebe der zwar ebenfalls erhalten, würde von den anderen rechL-Versionen* aber nicht ausgegeben und damit auch nicht angezeigt.
Hinweis bzgl IsNumeric: Jeder Text gilt VBA als numerisch, wenn er nur aus Zahlen, Leerzeichen, max 2 Plus- bzw MinusZeichen u/o bestimmten Buchstaben (A,D,E,P) an richtiger Position besteht (Dezimal- und TsderTrenner ebenfalls, in Kombi und letztere mehrfach nur lokale).
* Len(s) > 2 habe ich drin gelassen, ist aber ggf problematisch, wie man im obigen Vgl sehen kann.
Feedback erwünscht! Gruß, Luc :-?
Besser informiert mit …

Anzeige
AW: Ich hätte das wie folgt gemacht, ...
03.03.2016 14:35:42
Michael
Hi zusammen,
@Luc :-?: vielen Dank für die Optimierungen und insbesondere den Hinweis mit IsNumeric: das war mir nicht klar...
Allerdings kann Erik das so nicht recht verwenden, weil max. 3 Wertepaare mit entsprechend vielen "-" vorkommen können.
Das ist natürlich "Hintergrundwissen", das Dir zu dem Zeitpunkt nicht vorlag.
@Erik: nochmal die Anregung: alles mit WorksheetChange triggern (wenn Zeiten eingegeben werden alle nötigen Felder in der Zeile füllen) und raus mit den ganzen UDFs: bei vielen Tabellenblättern kosten die nur Rechenzeit.
Juckt ja eigentlich nicht wirklich, aber wenn man sich überlegt: je mehr die CPU macht, desto mehr Saft verbraucht sie, was wiederum in Wärme umgesetzt wird: wenn man ALLE Makros bzw. Formeln optimieren würde, die irgendwo sinnlos Strom verbrauchen, könnte man damit... Ja, keine Ahnung, ein, zwei AKWs vom Netz nehmen? Kühlaggregate für Eisbären aufstellen? Einmal zum Mond fliegen?
Schöne Grüße,
Michael
P.S. @Luc :-? Sag, wo hast Du die nette Tabellenansicht her? Selber programmiert?

Anzeige
Bitte sehr, Michael, und Ja zum PS! orT
03.03.2016 20:12:28
Luc:-?
Übrigens, weit oben hat Erik neue Anforderungen!
Gruß, Luc :-?

@Luc:-? wg PS
04.03.2016 00:47:03
Michael
Schön - ich frage deshalb, weil ich mir schon länger überlege, so was zu programmieren, derweil mir die Sachen, die ich mir bislang angesehen habe, zu viel Code erzeugen: es muß ja nicht auf den µ genau sein...
Magst Du es weitergeben?
Schöne Grüße zurück,
Michael

Das ist mein altes Pgm und kann vieles nicht, ...
04.03.2016 02:12:46
Luc:-?
…Michael;
es ist also nie ganz fertig geworden. Es ist auch ziemlich lang, aber trotzdem sehr schnell. Ich hatte etwas besseres angefangen, das ZellBereiche/Tabellen ziemlich realistisch darstellt; dessen letzte Version befindet sich leider auf einer Crash-HD. Es lief auch deutlich länger und war so lang, dass ich es teilen musste. Dazu gehörte nämlich noch eine komplette Rück­Kopierung* als .xls per JavaScript mit vielen Einstellungen, die üblicherweise bei Tabb zur Anwendung kommen können, u.a. Rahmen und BedingtFormate (inkl Fmln) für Xl-Versionen <12/2007. Dabei war mein Prinzip, dass jeder eine solche Tab komplett rückkopieren können muss, aber nur Besitzer des Gene­rierungsPgms die HTML-Tab erzeugen können (wahlfrei mit/ohne Rück­KopierPgm). Beim Hajo/Beverly-Tool gilt das für beides, die anderen enthalten keine derartige Fktionalität.
So, wie das alte Pgm jetzt ist, ist es Bestandteil eines AddIns mit noch vielen anderen Bestandteilen, auf die ggf vom Pgm auch rückgegriffen wird (allgemeine UDFs und spezielle Fktt). Es wäre also nach meinem Verständnis nicht iO, wenn ich das hier, noch dazu halbfertig, einstellen würde.
Aber vielleicht hilft dir ja schon ein Blick in den QuellCode eines TabBsps nach der neueren Version. Dabei ist allerdings zu beachten, dass die Browser den immer etwas umformen, obwohl ich dem mit Ergebnis­Nachbehandlung schon etwas rechnung getragen hatte. Ich hatte schon im alten Pgm eine andere Form der FmlDarstellung gewählt als alle anderen Tools und das im neuen noch stärker ausgebaut, weil mich die mitunter Endlos-Zusatz-Fml-/-Format- und -Sonstwas-Listen gestört haben.
Dieses Bsp für die neuere Version enthält maus-sensitive Zellen! Der gesamte HTML-Text ist in einer Zeile angeordnet, damit es im Forum so dargestellt wdn kann (wird hier automatisch in umschließende spezielle Tags eingebettet, wobei harte ZeilenUmbrüche stören. Ein anderer Forums­Software-Automatismus verbietet auch die Benutzung von VBS im HTML-Code (abgesehen mal davon, dass die meisten Browser das nicht unterstützen). Umschließende <HTML>/</HTML>-Tags wurden/wdn von der Forums­Software entfernt. Auf einer separaten Seite, per WordPad erzeugt, stören die Lesbarkeit erhöhende ZeilenUmbrüche aber nicht (wdn idR automatisch erzeugt). Sowohl die alte als auch die neuere Version können HTML-Tabb mit oder ohne ZeilenUmbrüche ausgeben (manche Foren akzeptieren auch ersteres).
Hier noch ein Bsp mit ZellFarbVerlauf, bei dem damals und evtl auch noch heute jeder potenzielle Browser mit eigener Befehlszeile vertreten sein muss(te).
Interessant könnte für dich evtl auch noch das dort inzwischen gelöschte CodeProjekt-Forum sein, das zum nächsten Scan-ZeitPkt von webArchive.org ein Pgm für vertikale VerbundZellen enthielt (alles unter Loki).
* Bei Kopieren in eine separate HTML-Seite mit MS-IExplorer — andere Browser unterstützen keine ActiveX-Elemente und in diesem Forum kann das generell nicht aktiviert wdn.
Gruß, Luc :-?
PS: Apropos Genauigkeit — da ist ohnehin der jeweilige Browser vor. Die RückKopie sollte es aber schon sein.

Anzeige
AW: Das ist mein altes Pgm und kann vieles nicht, ...
04.03.2016 17:22:17
Michael
Hi Luc :-?,
vielen Dank erst Mal für die Info.
Ich habe mir die Beispiele mal zur Brust genommen, komme aber erst morgen darauf zurück - muß aus dem Haus...
Gruß,
Michael

@Luc :-? Nachlese HTML
05.03.2016 18:33:36
Michael
Hi Luc :-?,
das sind schon "interessante" Sachen, aber für meinen Geschmack ist die Geschichte im lfd. Thread die beste: simpel und miminales HTML!
Genau so hätte ich es auch programmiert (haben wollen).
Ich bin eher faul und an Minimal-Lösungen interessiert; das mag an der Erinnerung an Modem-Zeiten liegen: wozu 1000e, wenn nicht 10000e Bytes an HTML, wenn es ein paar 100 tun? Wenn ich mir hin & wieder mal nen Quellcode ansehe und 1000e Zeilen für ein paar Bytes "interessanten" Inhalt sehe, kommt mir das Grausen - natürlich ist mir klar, daß das die Zeichen der Zeit sind, d.h. daß sich alle möglichen (auch die seriösen) Anbieter nur durch Werbung, Tracking usw. über Wasser halten können.
Ich persönlich würde mich bei HTML-Tables auf ein paar Farben und Formatierungen beschränken und bitte das nicht als Kritik an Deiner Arbeit zu verstehen - das MouseOver ist schon schick!
Was aber mal ne Idee wäre: die wichtigen Zellen in ein verschachteltes Table setzen, damit man den Inhalt ohne die lästigen Zeilennummern rauskopieren kann...
Also etwa so: https://www.herber.de/bbs/user/104130.htm
Es sollte doch kein allzu großer Aufwand sein, das zu implementieren?
Also, das Essen ruft: erst Mal schöne Grüße,
Michael

Anzeige
Aha, HTML-Länge war gemeint, ...
06.03.2016 04:38:33
Luc:-?
…Michael;
das könnte bei Bamberg oder gar der PHschen Jeanie auch so sein (Hajo hat immer noch die für seine RückKopierungsmethode benötigte US-Variante dabei), aber den Quelltext im DOM des Browsers nicht mit dem tatsächlich erzeugten verwechseln. Der vom alten 723-Zeilen-Pgm erzeugte ist nämlich unter Garantie länger, der Browser optimiert den dann.
Minimal?! Na gut, aber da wirst du schnell merken, dass du vieles nicht darstellen kannst und dann doch auf Bilder oder Dateien zurückgreifen musst (wie gelegentlich auch ich, weshalb ich eine realistische TabDarstellung anstrebe). Es gibt aber mindestens ein Forum, in dem nichts hochgeladen wdn kann, HTML-Tabb aber möglich sind!
Wenn du die HTML-Tab einfach nur kopierst, hast du die dann genauso (mit Kopf & Vorspalte) in Xl. Ich weiß (noch!) nicht, ob man in HTML das Kopieren bestimmter Zeilen/Spalten verhindern kann, aber deine Idee (s.unten) wäre ein Weg, wobei das automatische RückSchreiben per ActiveX und JScript diese ohnehin weglässt.
Die neuere Version hat übrigens alle verwendeten Farben in das Pgm geschrieben, um sie genauso wiederherstellen zu können (das war nur bis Xl11/2003 wichtig, hatte aber Grenzen). Das Beschränken auf nur wenige Farben bringt (ab Xl12/2007) keinen Vorteil, die wdn wie sie sind einfach in #rrggbb umgerechnet.
Für's Herber-Forum müsste dein Bsp ungefähr so aussehen (schau mal in den QText des DOM!):
 ABC
1
A1B1C1
A2B2C2
A3B3C3
2
3
Sieht aber leider nicht realistisch aus…
Morrn, Luc :-?

Anzeige
Du verwirrst mich
06.03.2016 15:44:14
Michael
Hi Luc :-?,
ist doch klar, daß das nicht so aussieht, wie es soll - ich wollte nur die Idee mit der Verschachtelung transportieren.
Aber das "automatische Rückschreiben" kapiere ich nicht recht: meinst Du mit einem Button zum Kopieren in die Zwischenablage? Denn beim Markieren der Tabelle habe ich immer die Zeilennummern beim Einfügen ins Tabellenblatt dabei.
Schöne Grüße,
Michael

Nee, das war nicht gemeint, ...
07.03.2016 03:15:16
Luc:-?
…Michael;
es fktioniert zwar noch, aber leider nicht mehr so wie ursprünglich, da es ja für XlVss vor 12/2007 gedacht war. Am Anfang der eingebetteten HTML-CodeZeile mit der Tabelle steht ein JScript-Pgm, das eine Xl-Tabelle erzeugt. Diese HTML-Zeile muss also in eine TextDatei kopiert wdn, die als .htm zu speichern ist, wobei Codierung auf Unicode gestellt wdn muss. Diese Datei muss dann mit dem IE geöffnet wdn, wobei geblockte Inhalte zugelassen wdn müssen. Das Rahmenfeld mit dem Ring links oben zeigt bei MouseOver auch einen entsprd HinweisText. Klickt man jetzt da drauf, erscheint die Frage, ob die Tätigkeit eines ActiveX-Elements zugelassen wdn soll, die zu bejahen ist. Anschließend wird gefragt, ob der Fortschritt der DateiGenerierung gezeigt wdn soll (Anzeige erst der fertigen Tab ist unter Xl14/2010 und Win10 auch kaum schneller). Die verlinkte Tabelle wird dann zwar generiert, ist aber nicht vollständig formatiert, weil das eine Vorversion war. Das ist bei dieser Variante zwar anders, nur fktioniert die FarbRegie unter Xl14/2010&Win10 nicht mehr (unter Xl12/2007&Win7 war das mE noch besser). Du müsstest das also möglichst unter Xl9-11 testen, wenn auch Farben und BedingtFormate stimmen sollen.
Ich werde also irgendwann mal das völlig neu pgmmieren müssen, falls ich überhaupt noch Lust dazu habe (dann würde ich auch mal über deinen Vorschlag als Variante in Kombi mit HTML-Ausgabe ohne JScript-Pgm nachdenken)…
Morrn, Luc :-?

Anzeige
aha, verstehe,
07.03.2016 18:38:28
Michael
Luc :-?,
ich habe den link angesehen, mag den IE aber nicht extra anwerfen... Jetzt hat's aber auch mit dem JS geschnackelt. Hätte mir die Datei mal mit httpRequest ansehen sollen.
Abgesehen davon stellst Du Dir ja selbst die Frage, ob es Sinn macht - ich bin eigentlich nur hier zugange, und hier kann ich ja xls(x) hochladen...
Ich hab mal Dein HTML geklaut und in mein Gerüst eingebaut:

 ABC
1
DatenrechLTxEval
krankkrankkrank
2 5-7-7
2
3

Aha, jetzt weiß ich auch, was Du mit den Zeilenumbrüchen meinst. Hier lesbar MIT: https://www.herber.de/bbs/user/104168.htm
Eigentlich müßtest Du beim Generieren nur a) ermitteln, wie viele Zeilen und Spalten da sind, klar, für das -span, und die Tabelle-in-Tabelle nach dem ersten Zeilenkopf einfügen - und die anderen Z-Köpfe unten anhängen. Naja, die Höhe der ZKe ist anscheinend etwas tricky, aber für mich persönlich geht Funktion vor Design (ich denke, ein Anwender kann auch mit Farbfehlern leben, Hauptsache, er bekommt die angezeigten Daten schnell in die Tabelle).
Das sind für Leute wie uns doch nur ein paar Handgriffe, oder? Wenn der Generator schon vorhanden ist?
Ich helfe natürlich auch gerne, wenn Du selber keine Lust hast - falls Du mir Deinen "alten" Generator anvertrauen möchtest...
Schöne Grüße,
Michael
P.S.: Vielleicht bin ich manchmal etwas blauäugig (oder mir sind irgendwelche Geheimnisse zwischen HTML und Excel entgangen), jedenfalls wird die T-in-T in X2007 stdmßg als Text eingefügt oder als Inhalte ohne Formatierung - wenn von links oben nach rechts unten markiert. Bei Markierung von ru nach lo stdmßg als Tabelle mit Formatierung - es ist immer wieder nicht so einfach, wie ich erwarten würde...
Da sollst nicht die Lust verlieren!

Anzeige
Zum PS: Unter Xl10 ist die Markierungsrichtung ...
08.03.2016 02:12:36
Luc:-?
…egal, Michael,
es wird in beiden Fällen formatiert eingefügt.
Ansonsten wirst du durchaus recht haben und das wäre ein einfach gangbarer Weg, zumal das in deinem Bsp schon deutlich besser aussieht.
Was das alte Pgm betrifft, muss ich mal sehen, ob das machbar ist; deine eMail-Adresse hab' ich ja. Ich würde mich dann bei dir melden, aber das kann noch (etwas) dauern, weil ich grad kaum Zeit dafür habe. ;-)
Gruß und Dank für deinen (fast beschwörungshaften) Wunsch! ;-)
Luc :-?

ok, schau mer mal, dann sehng mer scho,
08.03.2016 13:27:17
Michael
Luc :-?,
vielleicht sollten wir uns Excelbeschwörer nennen...
Viele Grüße,
Michael

Anzeige
Ja, irgendwie schon... ;-) Gruß owT
08.03.2016 13:43:53
Luc:-?
:-?

306 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige