Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
980to984
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
980to984
980to984
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Umlaute in Userform - bei nichtdeu. Exc

Umlaute in Userform - bei nichtdeu. Exc
Werner

Hallo, liebe Forumsmitglieder!
Vor einiger Zeit erhielt ich in diesem Forum den Vorschlag, Umlaute mit Hilfe ihres Codes über die numeri-
sche Tastatur einzugeben. Das schien mir dann aber ziemlich umständlich, und so habe ich das folgende
Programm ersonnen und hochgeladen:
https://www.herber.de/bbs/user/52724.xls
Es wandelt Umlautersatzlaute nach der Übertragung des Inhalt eines Textfelds einer Userform aus der
Userform in eine Tabelle nachträglich in Umlaute um (die zu bearbeitende Tabellenzelle muss als Parameter eingegeben werden).
Ausserdem schreibt es den übertragenen Inhalt des Textfeldes fett, wenn im Textfeld der Userform ein entsprechendes Sonderzeichen an erster Stelle steht (Einzelheiten siehe Kommentare innerhalb der upgeloadeten Datei). (Das Sonderzeichen geht auf einen Vorschlag von Rudi vor einigen Wochen zurück.)
Vielleicht hilft dieser Makro einigen von Euch, die Probleme mit nichtdeutschen Excel-Versionen haben,
weil sie damit über Userforms deutsche Texte eingeben wollen. Aber bitte Vorsicht: Ich weiß nicht, ob
der Code in allen Fällen richtig läuft. Rückmeldungen und Verbesserungsvorschläge sind daher erwünscht.
Frage: Insbesondere ist mir nicht ganz klar, wie ich den Makro dazu bringen könnte, dass er die in die Tabellenzelle hineingebrachten Umlaute nun auch selbständig und automatisch in die Userform zurückschreibt (hauptsächlich aus optischen Gründen, zwangsläufig notwendig ist das nicht).
Werner R.

AW: Umlaute in Userform - bei nichtdeu. Exc
31.05.2008 20:45:48
MichaV
Hallo,
die Mappe enthält keine Userform. Es ist nicht ersichtlich was Du mit dem Code bezwecken willst.
Gruß- Micha
PS: Rückmeldung wäre nett.

OT: @Micha
01.06.2008 00:40:00
Luc:-?
Schön, dass das jetzt auch fkt!
Ja, die Statistik: Von Irgendwas muss so ein Titel ja kommen... ;-)
Allerdings hatte ich auch nach uns gesehen (sehr "mickrig" für dich und ausreichend für mich). Demggüber hat eine gew. Neueinsteigerin im gleichen ZR (0706-0805) fast 4000. Ist es nicht schön, dass es auch so etwas noch gibt (zumal die meistens gehaltvoller waren)... Vive la Suisse! :-)
Zum Thema des Fragers sag ich nichts. Da verlasse ich mich ganz auf dich... ;-)
Gruß Luc :-?

Anzeige
Makro braucht keine Userform
Werner
Hallo Micha,
die Mappe enthält keine Userform, weil sie das nicht braucht. Wenn du die Kommentare innerhalb des
upgeloadeten Makros liest, dann stellst du fest, dass dieser Makro Umlautersatzlaute innerhalb einer Tabellenzelle und nicht innerhalb einer Userform in Umlaute umwandelt. Die jeweilige Tabellenzelle muss als Parameter zu Beginn dieses Makro angegeben werden. Innerhalb der Userform verbleiben zunächst einmal die Umlautersatzlaute, doch in dem aus der Userform (oder auch von anderswoher) übertragenen Zelleninhalt werden die Laute dann mit diesem Makro umgewandelt.
Die Methode besteht also darin, Umlautersatzlaute in eine Userform einzugeben und dann in der Tabelle
Umlaute zu erhalten.
Deshalb lautete ja auch meine Frage am Schluss meines gestrigen Beitrags, wie man die umgewandelten Umlaute dann als Umlaute
in die Userform zurückschreiben kann. Dieses Problem ist noch ungelöst, doch immerhin bietet dieser
Makro die Möglichkeit, Umlaute automatisch schon einmal in eine Tabelle hineinzubringen. Und ich brauche nicht das umständliche Verfahren über die numerische Tastatur zu wählen. Außerdem lässt sich eine Tastenkombination wie "#a" für "ä" auch recht leicht behalten.
Analoges gilt für den Fettdruck.
Werner R.

Anzeige
AW: Makro braucht keine Userform
01.06.2008 16:04:06
MichaV
Hallo Werner,
sorry, das ist wirklich nicht meine erste Excel- Tabelle, die ich vor mir sehen, aber ich kriege Dein Marko nicht zum Laufen. Wozu schreibst Du so viel über UserForms, wenn das Makro keine braucht? Ich schreibe lksd#aa in eine Zelle aber wie starte ich das Makro? Und wozu zum Teufel schreibst Du 2 A4 Seiten Code, wenn es doch 7 Replace- Befehle auch machen würden? 10 Zeilen würden ausreichen um das zu machen, was Du da vorhast. Und das nennst Du ein nicht umständliches Verfahren? Sorry, aber das nehme ich Dir nicht ab.
Gruß- Micha

...zumal es da ja auch noch Unicode gibt,...
01.06.2008 17:39:16
Luc:-?
...bei dem man mit Replace und ChrW gut arbeiten kann... ;-)
Muss dann eben alles als UniCode-Schriftart formatiert sein.
Gruß Luc :-?
PS: Ich mache so etwas mit speziellen udFktt...

Anzeige
AW: ...zumal es da ja auch noch Unicode gibt,...
01.06.2008 19:16:00
MichaV
Hallo Luc,
hier gehts um die "deutschen" Umlaute äüö, die auf "fremdsprachigen" Rechnern eingegeben werden sollen. Da brauchst Du kein Unicode oder udf/Makros. Ich sag, das geht am Besten über Ziffernblock, lasse mich aber gerne Erhellen, wenn Werner mir einen Code zeigt, der auch ohne das Durchlesen sämtlicher Kommentarzeilen funktioniert.
Gruß- Micha

Umlaute in Userform zurückschreiben
Werner
Hallo MichaV, Hallo Luc!
Bei den meisten Anwendungen ist es wohl am wichtigsten, die Umlaute in die Tabelle hineinzubringen.
Ob sie auch in der Userform erscheinen, ist zweitrangig (mehr eine optische Angelegenheit).
Aber man kann sie sicherlich aus der Tabelle in die Userform zurückschreiben, und zwar durch eine weitere Subroutine, nachdem der CommandButton zur Übertragung in die Tabelle gedrückt wurde. Dieses Feature habe ich bisher allerdings noch nicht programmiert oder ausprobiert.
Meinen Code baut man am besten direkt unter der Subroutine ein, die die Daten aus der Userform in die
Tabelle überträgt, und zwar, indem man den Parameter der jeweils gefüllten Zelle weitergibt. (Man kann ihn ggf. auch direkt in der Subroutine verwenden). Diese
Übertragungsprozedur fällt von Anwendung zu Anwendung verschieden aus, deshalb kann man sie
nicht allgemeingültig formulieren.
Werner R.

Anzeige
Aha! @Micha: Unicode hat auch eine Option...
02.06.2008 09:59:00
Luc:-?
...mit der man alle möglichen diakritischen Zeichen auf ziemlich viele Buchstaben schreiben kann (wie ´`^), u.a. auch das Trema. Bei einem fremdsprachigen PC müssen die normal gecodeten Zeichen, die in west- und mitteleuropäischen Zeichensätzen mit ÄäÖöÜü belegt sind, nicht unbedingt auch so belegt sein. Kann mich erinnern, dass auch im Original-ASCII-Satz hier andere Sonderzeichen standen (s.a. anglo-amerikanische Tastaturbelegung). Mit Unicode ist man da stets auf der sicheren Seite.
Gruß Luc :-?

Unicode, wie in Userform?
Werner
Hallo Luc-:? !
dass der Unicode sehr mächtig ist, ist mir bekannt. Doch das Problem von MichaV und mir bestand
darin, dass man Umlaute nicht so ohne weiteres in die Userform hineinbekommt. MichaV löste das
Problem mit der numerischen Tastatur, mein Vorschlag besteht darin, eine Buchstabenkombination
in die UF einzugeben, das Textfeld in eine Tabelle zu schreiben und dann dort erst umzuwandeln.
Wie ich einen Unicode in eine Userform hineinbekommen soll, ist mir unklar. Werner R.

Anzeige
AW: Unicode, wie in Userform?
03.06.2008 17:34:00
MichaV
Hi Werner,
bin ganz Deiner Meinung. Bin gespannt wie Luc das löst :o)
Vielleicht mit einer udF?
Aber nochmal: was hat die UserForm damit zu tun? Das gleiche Problem gibts bei einer Excelzelle, Word oder Notepad. Die Eingabe von Zeichen, die nicht auf der Tastatur stehen, ist das Problem. Ob die Zeichen dann in einer UF oder in irgendeiner anderen Anwendung erscheinen ist doch nebensächlich. Du grenzt das auf einen sehr speziellen Fall ein, Eingabe in Userform und dann Umwandlung während des Transfers in eine Excelzelle. Darum habe ich anfangs auch nicht verstanden warum Du für einen sehr speziellen Fall einen Code als scheinbar allgemeingültige Lösung ins Forum stellst. Die allgemeinste Lösung ist die Eingabe über den Ziffernblock, Du hast eine spezielle Lösung entwickelt, mal sehen was Luc in der Tasche hat.
Gruß- Micha
(Hochsommerliche Temperaturen hier oben, teilweise schon über 25 Grad :o)

Anzeige
Nachtrag zu meinem Programmcode
Werner
Hallo MichaV,
mich interessiert hauptsächlich, was nachher in der Tabelle steht. Eine Userform
ist doch eigentlich nur ein Mittel zum Zweck, wenn man sie bloss zur Dateneingabe verwendet. Natürlich
hat Deine Lösung den Vorteil, dass sie schöner aussieht.
Meine Makro lässt sich am besten als Subroutine in einen anderen Makro einbauen, der die Daten von
der Userform zur Tabelle überträgt. Also z.B.

Sub Uebertragen()
Dim i As Integer
Worksheets("Tabelle1").Activate
For i = 1 To 10
Cells(i + 1, 1).Value = frmBeispielUF.Controls("txtTextfeld" & CStr(i))
Call xxx(Cells(i  + 1, 1))
Next i
End Sub


Dabei ist "frmBeispielUF" der Name der Userform. Diese hat in diesem Beispiel zehn Textfelder, die hinten
von 1 bis 10 durchnumeriert sind ("txtTextfeld1"..."txtTextfeld10". Durch obige For-Schleife werden ihre Inhalte in Spalte A der Tabelle mit dem Namen "Tabelle1" übertragen. Anschliessend wird mein Unterprogramm (hier mit "xxx" abgekürzt) aufgerufen, dem als Parameter der Name der Zelle, in die gerade Daten übertragen worden sind, hinzugefügt wird.
Vorteil dieses Verfahrens: Man braucht jedesmal nur zwei Anschläge, um einen Umlaut als
Umlautersatzlaut in die Userform einzugeben. Dann drückt man die Befehlsschaltfläche mit obigem Programm (das natürl. an die jeweilige Programmumgebung angepasst werden muss) und den Rest
erledigt Excel von alleine. Als eine besonders spezielle Lösung würde ich diese Lösung nicht bezeichnen.
Allerdings ist es natürlich eine VBA-Lösung!
Voraussetzung ist hier natürlich auch, dass die Userform bereits geöffnet ist.
Werner R.

Anzeige
Also, da ihr mich hier wohl etwas herausfordern...
04.06.2008 12:50:23
Luc:-?
...wollt, Micha & Werner,
sage ich nur, dass ich mich eigentlich nicht so sehr engagieren wollte... ;-)
Ich habe nämlich schon eine "allgemeingültige" Lösung als Ersatz der MS-Zeichentabelle in Form von xlTabellen aller UniCode-Zeichen sowie einer mittleren und einer Kurzauswahl daraus. Da könnte eigentlich schon kopiert werden, aber ich habe noch 2 Lupen in je 2 Varianten (Textfelder) beigefügt. 1 davon ist stark vergrößernd (2.2), eine andere (1.2) mit einer UF verbunden, deren Position an der des Textfeldes ausgerichtet wdn kann (die TF-Position richtet sich nach der TabZelle). Während aus Lupe2.1 und 2.2 nur direkt kopiert wdn kann (^C), hat man mit Lupe1 die Möglichkeit, auf ButtonClick das Zeichen, das Format oder eine Formel (mit udF zur Zeichenerzeugung) zu kopieren. Bei Lupe1.2 kann in der UF auch das Ziel des Vorgangs (also Datei, Blatt u.Bereich) angegeben wdn.
Die udFktt, die ich hier benutze, hatte ich wohl schon entwickelt, bevor mir auffiel, dass es auch ChrW gibt... Deshalb und wg interner Benutzung weiterer udFktt habe ich sie noch nicht veröffentlicht. Sie wdn wohl auch noch nicht in meinem udF-Paket enthalten sein...
In meinem xl ist natürlich ein Permalinkbefehl zu dieser Datei enthalten, deren Schriftart (für die UC-Zeichen) sich übrigens auch einstellen lässt, denn da gibt es (auch bei UC-Schriftarten!) durchaus Unterschiede, die nicht nur die Zeichenform betreffen...
Gruß Luc :-?
PS @Micha: Na dann schwitz mal schön! Hier waren es fast 35°! Heute endlich etwas kühler - 29°...

Anzeige
Versteh ich nicht!
Werner
Hallo Luc-:?
Ich muss gestehen, dass ich deine Unicode-Lösung nach wie vor leider nicht verstehe. Was sind "Lupen"?
Werner R.

...? - AW: Von EventProcs u.Subroutinen...
05.06.2008 16:06:00
Luc:-?
...gesteuerte Textfelder, die stets da erscheinen, wo sie benötigt wdn, Werner...
Der Wechsel zwischen den "Lupen" (hab ich so genannt, weil Lupe2 in bd Varianten eine analoge grafische Form - auch transparent - hat und beide Lupen die Zeichen in größerer Schriftart wiedergeben, damit man bspw die Striche der chinesischen Zeichen besser erkennen kann)
Im Folgenden zeige ich mal Ausschnitte mit dem "Auge des Horus"...
Userbild
Anmerk: Bei Klick auf eine der 3 Schaltflächen von Lupe1.2 erscheint eine entsprechend voreingestellte UF gleicher Höhe, die auf die Lupe gezogen wdn kann und nach 1maliger Ausführung des Kopiervorgangs auch "ortsfest" (auf der Lupe) wiedererscheint (auch bei Neustart). Diese dient dem Transport der "Kopie" in die Zielzelle(n).
Mit FSS-Code ist eine udF-enthaltende Formel gemeint, die dann bereitgestellt wird und in die Zielzelle kopiert wdn kann.
Userbild
Anmerk: In diesen beiden Lupen kann nur mit ^C kopiert wdn.
Die Abb beziehen sich auf die UC-Tabelle mit dem kleinsten UC-Ausschnitt (normalerweise ausreichend).
Es lassen sich auch andere Wiedergabeformen des Zeichen-UCodes einstellen. Die 1malige Umschaltung zwischen den Varianten einer Lupe erfolgt mit RightClick, die Umschaltung zwischen den Lupentypen mit DoubleClick.
Wie gesagt, das Ganze ist schon etwas älter... ;-)
Gruß Luc :-?

Anzeige
Ist das eine Excel-Tabelle?
Werner
Hallo Luc:-?
dank f. die Erklärung, doch deine früheren Aussagen sind f. mich immer noch ein spanisches Dorf. Das mit
der Lupe verstehe ich entfernt, doch wo sich die von dir abgebildete Codetabelle , ist mir immer noch schleierhaft.
Ist das eine mit einem Makro erzeugte Excel-Tabelle für Unicode? Oder die Sonderzeichentabelle von Excel? (Einen solchen Code gibt es z. B. im Herber-Archiv) Und wie ruft man die Lupe auf? Übers Kontextmenu?
Werner R.

Um das noch zu beantworten,...
07.06.2008 03:27:22
Luc:-?
...Werner...
Ja, das ist eine xlTabelle! Die UCodes wurden bei der Erzeugung aus Vorspalte und Kopfzeile kombiniert von einer udFkt (benutzerdefinierte Makrofkt) erzeugt und diese dann mit ihrem Ergebnis als Wert überschrieben (also selbst gefertigt, nicht aus dem Herber-Archiv!). Die Lupen erscheinen durch Klick in eine der relevanten Zellen (die mit einem UC-Zeichen). Das wird mit einer Prozedur zum TabBlatt-Ereignis SelectionChange erreicht. Zwischen den Lupen wird wie beschrieben mit Rechts- bzw Doppelklick umgeschaltet.
Die UCodeDatei befindet sich irgendwo auf dem PC. Im Menü Datei habe ich einen Aufrufbefehl für sie eingerichtet (kann man auch mit einem Icon machen). Alles andere passiert in der Tabelle.
Vielleicht würde ich das Problem heute anders lösen, aber nun hab' ich ja schon lange das... ;-)
...Und außerdem 3 udFktt, die sich mit UC befassen und in TabBlättern eingesetzt wdn können.
In anderen Prozeduren verwende ich dann meist die entsprechenden vbFktt. (Inzwischen habe ich auch eine udFkt mit der vbFktt und vbVariablen bzw vbObjekteigenschaften im TabBlatt direkt ausgewertet wdn können, also auch die vbUC-Fktt.)
Das Ganze kannst du als Anregung auffassen, hier mal weiterzumachen und evtl ein nettes kleines und komfortables Tool zu basteln, das auf extra aufzurufende CodeTabb verzichten kann... ;-)
Das Gezeigte ist ja nur eine von vielen Möglichkeiten, halt mein Weg...
Gruß+schöWE!
Luc :-?

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige