Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
600to604
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
600to604
600to604
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Zeichen in Zelle einfügen

Zeichen in Zelle einfügen
24.04.2005 18:04:15
Thomas Kaiserauer
Hallo,
hab ein kleines Problem mit Excel. Möchte in eine einzelne Zelle hin und wieder Sonderzeichen einfügen (z.B. umgedrehtes Fragezeichen für Spanisch-Vokabeln). Das Makro hab ich auch schon hinbekommen und mir eine eigenen Symbolleiste angelegt, nur wenn ich jetzt auf die Buttons klicke, wird bestehender Inhalt in den Zellen einfach überschrieben mit dem Sonderzeichen. Desweiteren ist die Zelle anschließend nicht mehr zum Bearbeiten aktiv.
Beispiel:
Wenn ich eingeben will: "Yo soy español"
sollte das so ablaufen:
Eingabe Yo soy espa
dann klick auf die Schaltfläche für das n mit Tilde
danach gleich weiterschreiben mit ol.
Wie muss ich dafür meinen bisher bestehenden Code erweitern?

Sub umgedrehtes_Fragezeichen()
' umgedrehtes_Fragezeichen Makro
' Makro am 24.04.2005 von katho aufgezeichnet
' Tastenkombination: Strg+ß
ActiveCell.Value = "¿"
End Sub


Sub n_mit_Tilde()
' n_mit_Tilde Makro
' Makro am 24.04.2005 von katho aufgezeichnet
' Tastenkombination: Strg+n
ActiveCell.Value = "ñ"
End Sub

Vielen Dank schonmal im Voraus!
Gruß Thomas

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zeichen in Zelle einfügen
24.04.2005 18:15:15
andre
Hallo Thomas,
ActiveCell.Characters(Start:=Len(ActiveCell), Length:=1).Text = "o"
AW: Zeichen in Zelle einfügen
24.04.2005 18:23:44
Thomas Kaiserauer
Auf die Art und Weise ist auch kein Aktivieren des Makros während der Eingabe in eine Zelle möglich. Markiere ich eine Zelle, in der Text steht, und klicke dann auf das Symbol mit dem Sonderzeichen, wird das letzte Zeichen in der Zelle mit dem Sonderzeichen überschrieben. Die Zelle ist dann auch nicht mehr zum Bearbeiten aktiviert (muss man erst wieder mit F2 aktvieren).
Sonst noch irgendwelche Ideen?
Gruß Thomas
Start:=Len(ActiveCell)+1 -- owT
24.04.2005 18:58:04
Luc:-?
AW: Start:=Len(ActiveCell)+1 -- owT
24.04.2005 20:17:46
andre
Hallo Thomas,
Luc's Antwort löst das Problem mit der Eingabe hinterher nicht, aber der Buchstabe kommt wenigstens hintendran ;-). Wenn Du während dem Ändern einer Zelle über die Symbolleiste Deine Änderungen ausführen kannst musst Du hinterher die Zelle aktivieren und F2 senden, z.B. so:
[a1].Activate
SendKeys "{F2}"
Wenn Deine Makro's nicht starten brauchst Du z.B. ein Userform wo Du in eine Textbox schreibst und dann Deine Sonderzeichen hinzufügst. Nach dem Klick auf die Sonderzeichentaste setzt Du den Focus wieder auf die Textbox.
Grüße, Andre
Anzeige
AW: Start:=Len(ActiveCell)+1 -- owT
25.04.2005 00:44:55
Thomas Kaiserauer
Ok, hab das ganze jetzt soweit, dass die Zeichen richtig eingefügt werden, und die Zelle hinterher aktiv bleibt für weitere Tastatureingaben. Soweit, so gut.
Das einzige Problem, dass ich jetzt noch habe, dass ich die Makros bei schon aktivierter Zelle nicht starten kann. Wie soll das genau funktionieren mit der Userform? Bzw. was genau ist das? Nie gehört...
Mein Code bis jetzt:

Sub umgedrehtes_Fragezeichen()
' umgedrehtes_Fragezeichen Makro
' Makro am 24.04.2005 von katho aufgezeichnet
ActiveCell.Characters(Start:=Len(ActiveCell) + 1, Length:=1).Text = "¿"
ActiveCell.Activate
SendKeys "{F2}"
End Sub


Sub n_klein_mit_Tilde()
' n_mit_Tilde Makro
' Makro am 24.04.2005 von katho aufgezeichnet
ActiveCell.Characters(Start:=Len(ActiveCell) + 1, Length:=1).Text = "ñ"
ActiveCell.Activate
SendKeys "{F2}"
End Sub


Sub N_groß_mit_Tilde()
' N_groß_mit_Tilde Makro
' Makro am 24.04.2005 von katho aufgezeichnet
ActiveCell.Characters(Start:=Len(ActiveCell) + 1, Length:=1).Text = "Ñ"
ActiveCell.Activate
SendKeys "{F2}"
End Sub


Sub j_tiefgestellt()
' j_tiefgestellt Makro
' Makro am 24.04.2005 von katho aufgezeichnet
ActiveCell.Characters(Start:=Len(ActiveCell) + 1, Length:=1).Text = "¡"
ActiveCell.Activate
SendKeys "{F2}"
End Sub

Achja, wie schaffe ich es, dass die Makros als vertrauenswürdig eingestuft werden und beim Öffnen des Dokuments mit ausgeführt werden? Will eigentlich nur ungern meine Sicherheitsstufe was Makros betrifft runtersetzen.
Gruß Thomas
Anzeige
AW: Start:=Len(ActiveCell)+1 -- owT
25.04.2005 00:53:48
Hubert
Hi,
im Eingabemodus kann kein Code ausgeführt werden.
Makros vertrauenswürdig, siehe Hilfe Zertifikat erstellen.
mfg Hubert
AW: Start:=Len(ActiveCell)+1 -- owT
25.04.2005 22:09:43
andre
Hallo Thomas,
füge eine userform in Dein Projekt ein, (Menü Einfügen | Userform). Mal als grobe Anleitung:
Dort fügst Du eine Textbox, z.B. TextBox1 und 3 Schaltflächen ein. Die Schaltflächen bekommen den Änderungscode, und am Ende statt des sendkey kommt textbox1.setfocus. Und noch eine 4. Schaltfläche die den Text in das Blatt übernimmt.
Grüße, Andre
AW: Start:=Len(ActiveCell)+1 -- owT
25.04.2005 23:04:16
Thomas Kaiserauer
Ok,
die Userform hab ich jetzt erstellt, nur wie lasse ich die jetzt in meiner Vorlage anzeigen? Mit dem Übernehmen-Button hab ich auch noch so meine Probleme...
Hab die Datei jetzt mal angehängt, vielleicht kann sich's ja mal jemand anschauen. Die Symbolleiste, die ich zuerst erstellt hab, ist auch noch drin.
https://www.herber.de/bbs/user/21697.xlt
Gruß Thomas
Anzeige
AW: Start:=Len(ActiveCell)+1 -- owT
26.04.2005 21:17:29
andre
Hallo Thomas,
fast richtig. Das Userform sollte aber Schaltflächen für die spanischen Buchstaben bekommen und eine Textbox für's Schreiben.
Der Übernehmen-Button erhält folgenden code:

Private Sub CommandButton1_Click()
ActiveCell = TextBox5.Text
End Sub

Die Schaltflächen für die spanischen Buchstaben erhalten diesen code:

Private Sub CommandButton2_Click()
TextBox5.Text = TextBox5.Text & "¿"
TextBox5.SetFocus
End Sub

Die Nummern der Buttons und der Textbox ggf. anpassen.
Das userform könntest Du mit Doppelklick auf eine spanische Zelle starten, z.B. mit diesem code im codemodul der Tabelle1


Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Set isect = Application.Intersect(Range("d:f"), Target)
If isect Is Nothing Then Exit Sub
Spanisch.Show
End Sub

Anzeige
AW: Start:=Len(ActiveCell)+1 -- owT
27.04.2005 17:15:49
Thomas Kaiserauer
Hey, funktioniert prima! Habs sogar schon geschafft, dass sich die Form automatisch ausblendet, wenn ich auf Übernehmen klicke.
Eine Frage hab ich allerdings noch:
Wie kann ich es realisieren, dass der Fokus in der Userform, wenn ich sie das nächste Mal anzeigen lasse, automatisch wieder auf die Textbox springt? Beim ersten Start ist das der Fall, beim zweiten Start ist der Fokus auf dem Übernehmen-Button.
Mein Code bis hier:

Private Sub Uebernehmen_Click()
ActiveCell = TextBox1.Text
TextBox1.Value = ""
Spanisch.Hide
End Sub

Was muss ich dafür noch einfügen?
Gruß Thomas
Anzeige
AW: Start:=Len(ActiveCell)+1 -- owT
29.04.2005 19:51:23
andre
Hallo Thomas,
das geht z.B. mit dem initialize-makro. Oben über dem code sind zwei Auswahlfelder, im linken müsste userform... stehen oder der Name den Du vergeben hast. Rechts dann Initialize auswählen, ein neues Makro wird eingefügt. Dort den code
TextBox5.SetFocus
einfügen, statt 5 die entsprechende Nummer.
Grüße, Andre

308 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige