Clever-Excel-Forum

Normale Version: Excel2010: Ersetzen in Zelle eingegebenes Zeichen durch eine vorgegebene Zahl?
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
Hallo liebe community,

ich habe folgendes Problem (Excel 2010): In einer Tabelle habe ich 4 Felder, z.B.:  C5, C6, C7, C8. Wenn ich nun ein x, in das Feld C5 mache, sollte sich das automatisch in die Zahl "1" umwandeln. Für Feld C6 sollte es die "2" werden, für C7 die "3" usw...

Ich habe schon alles möglich probiert  mit der Funktion "WECHSELN" und "ERSETZEN", aber irgendwie erschließt sich mir die Syntax da nicht. Bekomme immer "Zirkelbezugfehler" udn wenn ich die Hilfe aufrufe steieg ich ganz aus...Ich bin eben kein Programmierer oder so. Sad

Kann mir wer verraten wie die korrekte Funktion/Formel dazu ist?

Danke!

VG, Peter.
Hi Peter,

wenn das x wirklich in die Zelle gesetzt werden muss, in der dann dieses in eine Zahl umgewandelt werden soll, geht das nur mit VBA (da kann ich dir nicht helfen) Sonst würde ich dir folgende Lösung vorschlagen:

Tabelle6

C
4x
51
62
73
84
Formeln der Tabelle
ZelleFormel
C5=WENN($C$4="x";ZEILE()-4;"")
C6=WENN($C$4="x";ZEILE()-4;"")
C7=WENN($C$4="x";ZEILE()-4;"")
C8=WENN($C$4="x";ZEILE()-4;"")

Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4.8
Hallo,

ich verstehe das so, dass es in der Eingabezelle passieren soll.
Das ginge nur per VBA z. B. so:


Code:
Private Sub Worksheet_Change(ByVal Target As Range)
 If Not Intersect(Target, Range("C5:C8")) Is Nothing Then
   If LCase(Target.Text) = "x" Then
     Application.EnableEvents = False
     Target = Target.Row - 4
     Application.EnableEvents = True
   End If
 End If
End Sub

Rechtsklick auf den Tabellenreiter, im aufklappenden Kontextmenü Code anzeigen wählen und den Code in das sich öffnende große Fenster einfügen.
Beim Speichern der Mappe, diese als .xlsm , mit Makros speichern
(10.02.2016, 10:38)WillWissen schrieb: [ -> ]Hi Peter,

wenn das x wirklich in die Zelle gesetzt werden muss, in der dann dieses in eine Zahl umgewandelt werden soll, geht das nur mit VBA (da kann ich dir nicht helfen) Sonst würde ich dir folgende Lösung vorschlagen:

Tabelle6

C
4x
51
62
73
84
Formeln der Tabelle
ZelleFormel
C5=WENN($C$4="x";ZEILE()-4;"")
C6=WENN($C$4="x";ZEILE()-4;"")
C7=WENN($C$4="x";ZEILE()-4;"")
C8=WENN($C$4="x";ZEILE()-4;"")

Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4.8

Hi,

leider klappt das mit der Formel nicht, bekomme immer einen "Zirkelbezugsfehler". :(

VG, P.
(10.02.2016, 10:48)atilla schrieb: [ -> ]Hallo,

ich verstehe das so, dass es in der Eingabezelle passieren soll.
Das ginge nur per VBA z. B. so:


Code:
Private Sub Worksheet_Change(ByVal Target As Range)
 If Not Intersect(Target, Range("C5:C8")) Is Nothing Then
   If LCase(Target.Text) = "x" Then
     Application.EnableEvents = False
     Target = Target.Row - 4
     Application.EnableEvents = True
   End If
 End If
End Sub

Rechtsklick auf den Tabellenreiter, im aufklappenden Kontextmenü Code anzeigen wählen und den Code in das sich öffnende große Fenster einfügen.
Beim Speichern der Mappe, diese als .xlsm , mit Makros speichern

Hi Attila,

habe den Code in das entsprechende  Tabellenblatt reingebaut. Aber wie aktiviere ich den? Habe ich jetzt eine neue Funktion "Worksheet_Change" oder wird der Code automatisch "scharfgeschalten" wenn ich das Dokument öffne?

VG, P.
Hallo,

der Code reagiert auf Änderungen im Bereich C5:C8 automatisch.
(10.02.2016, 11:08)atilla schrieb: [ -> ]Hallo,

der Code reagiert auf Änderungen im Bereich C5:C8 automatisch.

Achja, sorry. Steht ja im Code. ::)

Danke!

VG, P.
Ok, funktioniert alles! Jetzt kann ich mir 4 Funktionen bauen, für jedes Feld eine. Danke!

VG, P.
Warum setzt du kein 1,2,3,4 in C5, C6, C7, C8 ?

Warum ist "x" 'bessser' als 1,2,3,4 ??
Hallo Attila, hallo Günter,

habe jetzt eine für mich funktionierende Lösung gebaut und beschreibe die hier kurz, evtl. gibt's ja noch mehr Nutzer die so etwas suchen :)


Aufgabenstellung: Eine Tabelle für eine Umfrage. Für jede Frage (Zeile)  soll ein Feld für den Wert 1 ("Überhaupt nicht"), 2 ("Etwas"), 3 ("Eher") 4 ("Total") angekreuzt ("x") werden.

[
Bild bitte so als Datei hochladen: Klick mich!
]


Die Kreuze sollen sich nach der Eingabe automatisch in den entsprechenden Zahlenwert "umwandeln", so dass diese Zahlenwert dann durch verschiedene Formeln weiterverarbeitet werden kann.


Umsetzung Für Excel 2010: Automatische Umwandlung eines "x" in einem Feld in einen vorgegebenen Zahlenwert, der dann in der Zelle erscheinen soll.


Lösung: VBA-Script:

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
 If Not Intersect(Target, Range("D4:D6")) Is Nothing Then
   If LCase(Target.Text) = "x" Then
     Application.EnableEvents = False
     Target = Target.Row - Target.Row + 1
     Application.EnableEvents = True
   End If
 End If
 
 If Not Intersect(Target, Range("E4:E6")) Is Nothing Then
   If LCase(Target.Text) = "x" Then
     Application.EnableEvents = False
     Target = Target.Row - Target.Row + 2
     Application.EnableEvents = True
   End If
 End If
 
   
 If Not Intersect(Target, Range("F4:F6")) Is Nothing Then
   If LCase(Target.Text) = "x" Then
     Application.EnableEvents = False
     Target = Target.Row - Target.Row + 3
     Application.EnableEvents = True
   End If
 End If
 
 If Not Intersect(Target, Range("G4:G6")) Is Nothing Then
   If LCase(Target.Text) = "x" Then
     Application.EnableEvents = False
     Target = Target.Row - Target.Row + 4
     Application.EnableEvents = True
   End If
 End If

Ergebnis:


[
Bild bitte so als Datei hochladen: Klick mich!
]

Viele Grüße,
P.
Seiten: 1 2