expertenaustausch > microsoft.* > microsoft.excel

Boas Steiner (30.05.2006, 18:28)
Hallo zusammen

Ich möchte die Eingabe von immer den gleichen Wörter vereinfachen.

Wenn in A1 "Herr" und A2 "Frau" steht, dann muss ich in A3 nur noch "h" oder
"f" schreiben, dann füllt es mir die Zelle gerade während dem Schreiben aus.

Gibt es für dies ein Code, damit man keine Zellen darüber setzen muss?

Gibt es ein anderer Code als:
If Range("A3") = f Then
Range("A3") = "Frau"
If Range("A3") = h Then
Range("A3") = "Herr"

Ich bitte um Hilfe.
Besten Dank
Solaiman Ghaus (30.05.2006, 18:47)
Hallo Boas,

Boas Steiner schrieb:
> Hallo zusammen
> Ich möchte die Eingabe von immer den gleichen Wörter vereinfachen.
> Wenn in A1 "Herr" und A2 "Frau" steht, dann muss ich in A3 nur noch "h" oder
> "f" schreiben, dann füllt es mir die Zelle gerade während dem Schreiben aus.


normalerweise wird es per Autovervollständigen ausgefüllt. Dazu muß
unter Menü [Extras - Optionen - Bearbeiten - "AutoVervollständigen für
Zellwerte aktivieren" bzw. "AutoEingabe für Zellwerte aktivieren"] aktiv
sein.
Außerdem darf zwischen den Zellen keine leere Zelle vorhanden sein.

Wenn du aber z. B. so eine Tabelle hast

Herr
Frau
Herrlich
Frau Otto

Was soll denn bei der Eingabe von f bzw. h passieren? Soll f/h durch
Frau/Herr ersetzt werden?

Du könntest auch mal mit Extras - Autokorrektur versuchen. Ich weiss
aber nicht, ob es für dich in Frage kommt?

> Gibt es für dies ein Code, damit man keine Zellen darüber setzen muss?
> Gibt es ein anderer Code als:
> If Range("A3") = f Then
> Range("A3") = "Frau"
> If Range("A3") = h Then
> Range("A3") = "Herr"


Ansonsten hier ein Beispiel, wie es per Code funktionieren könnte:

'-----------------------------------------------------------------
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column > 1 Then Exit Sub 'Wenn Eingabe in Spalte A.

If Target = "f" Then
Target = "Frau"
ElseIf Target = "h" Then
Target = "Herr"
End If

End Sub
'-----------------------------------------------------------------

Code im Arbeitsblatt einfügen, wo die Eingaben erfolgen.

> Ich bitte um Hilfe.
> Besten Dank


Gruß
Solaiman
Melanie Breden (30.05.2006, 18:48)
Hallo Boas,

Boas Steiner schrieb:

> Ich möchte die Eingabe von immer den gleichen Wörter vereinfachen.
> Wenn in A1 "Herr" und A2 "Frau" steht, dann muss ich in A3 nur noch "h" oder
> "f" schreiben, dann füllt es mir die Zelle gerade während dem Schreiben aus.
> Gibt es für dies ein Code, damit man keine Zellen darüber setzen muss?
> Gibt es ein anderer Code als:
> If Range("A3") = f Then
> Range("A3") = "Frau"
> If Range("A3") = h Then
> Range("A3") = "Herr"


du kannst das Change-Ereignis der Tabelle verwenden:

Private Sub Worksheet_Change(ByVal Target As Range)
With Target
If .Count > 1 Or .Column <> 1 Then Exit Sub

Application.EnableEvents = False
Select Case .Value
Case "f"
.Value = "Frau"
Case "h"
.Value = "Herr"
End Select
Application.EnableEvents = True

End With
End Sub

Mit freundlichen Grüssen
Melanie Breden
Claus Busch (30.05.2006, 18:51)
Hallo Boas,

Am Tue, 30 May 2006 09:28:01 -0700 schrieb Boas Steiner:

> Ich möchte die Eingabe von immer den gleichen Wörter vereinfachen.
> Wenn in A1 "Herr" und A2 "Frau" steht, dann muss ich in A3 nur noch "h" oder
> "f" schreiben, dann füllt es mir die Zelle gerade während dem Schreiben aus.
> Gibt es für dies ein Code, damit man keine Zellen darüber setzen muss?
> Gibt es ein anderer Code als:
> If Range("A3") = f Then
> Range("A3") = "Frau"
> If Range("A3") = h Then
> Range("A3") = "Herr"


dazu benötigst du keinen Code. Gehe auf "Optionen => Bearbeiten" und
aktiviere dort "AutoEingabe für Zellwerte aktivieren"
Solaiman Ghaus (30.05.2006, 18:59)
Hallo nochmal,

[..]
> End Sub
> '-----------------------------------------------------------------
> Code im Arbeitsblatt einfügen, wo die Eingaben erfolgen.


Vollständigkeitshalber hier der Code, wenn zwischen
Groß-/Kleinschreibung nicht geachtet werden sollte:

'-----------------------------------------------------------------
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column > 1 Then Exit Sub 'Wenn Eingabe in Spalte A.

If LCase(Target) = "f" Then
Target = "Frau"
ElseIf LCase(Target) = "h" Then
Target = "Herr"
End If

End Sub
'-----------------------------------------------------------------

Gruß
Solaiman
Boas Steiner (02.06.2006, 20:23)
Besten Dank für eure Hilfe.
Ähnliche Themen