Zeichen in Zelle einfügen

Informationen und Beispiele zu den hier genannten Dialog-Elementen:
Bild

Betrifft: Zeichen in Zelle einfügen
von: Thomas Kaiserauer
Geschrieben am: 24.04.2005 18:04:15
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
Bild

Betrifft: AW: Zeichen in Zelle einfügen
von: andre
Geschrieben am: 24.04.2005 18:15:15
Hallo Thomas,
ActiveCell.Characters(Start:=Len(ActiveCell), Length:=1).Text = "o"
Bild

Betrifft: AW: Zeichen in Zelle einfügen
von: Thomas Kaiserauer
Geschrieben am: 24.04.2005 18:23:44
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
Bild

Betrifft: Start:=Len(ActiveCell)+1 -- owT
von: Luc:-?
Geschrieben am: 24.04.2005 18:58:04

Bild

Betrifft: AW: Start:=Len(ActiveCell)+1 -- owT
von: andre
Geschrieben am: 24.04.2005 20:17:46
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
Bild

Betrifft: AW: Start:=Len(ActiveCell)+1 -- owT
von: Thomas Kaiserauer
Geschrieben am: 25.04.2005 00:44:55
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
Bild

Betrifft: AW: Start:=Len(ActiveCell)+1 -- owT
von: Hubert
Geschrieben am: 25.04.2005 00:53:48
Hi,
im Eingabemodus kann kein Code ausgeführt werden.
Makros vertrauenswürdig, siehe Hilfe Zertifikat erstellen.
mfg Hubert
Bild

Betrifft: AW: Start:=Len(ActiveCell)+1 -- owT
von: andre
Geschrieben am: 25.04.2005 22:09:43
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
Bild

Betrifft: AW: Start:=Len(ActiveCell)+1 -- owT
von: Thomas Kaiserauer
Geschrieben am: 25.04.2005 23:04:16
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
Bild

Betrifft: AW: Start:=Len(ActiveCell)+1 -- owT
von: andre
Geschrieben am: 26.04.2005 21:17:29
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

Bild

Betrifft: AW: Start:=Len(ActiveCell)+1 -- owT
von: Thomas Kaiserauer
Geschrieben am: 27.04.2005 17:15:49
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
Bild

Betrifft: AW: Start:=Len(ActiveCell)+1 -- owT
von: andre
Geschrieben am: 29.04.2005 19:51:23
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
 Bild

Beiträge aus den Excel-Beispielen zum Thema "Zeichen in Zelle einfügen"