Registriert seit: 10.02.2016
Version(en): 2010
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.  Kann mir wer verraten wie die korrekte Funktion/Formel dazu ist? Danke! VG, Peter.
Registriert seit: 10.04.2014
Version(en): Microsoft 365, mtl. Kanal
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: Tabelle6Formeln der Tabelle | Zelle | Formel | 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
Gruß Günter Jeder Fehler erscheint unglaublich dumm, wenn andere ihn begehen. angebl. von Georg Christoph Lichtenberg (1742-1799)
Registriert seit: 14.04.2014
Version(en): 2003, 2007
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
Gruß Atilla
Registriert seit: 10.02.2016
Version(en): 2010
(10.02.2016, 11: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
Formeln der Tabelle | Zelle | Formel | 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.
Registriert seit: 10.02.2016
Version(en): 2010
(10.02.2016, 11: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.
Registriert seit: 14.04.2014
Version(en): 2003, 2007
Hallo,
der Code reagiert auf Änderungen im Bereich C5:C8 automatisch.
Gruß Atilla
Registriert seit: 10.02.2016
Version(en): 2010
(10.02.2016, 12:08)atilla schrieb: Hallo,
der Code reagiert auf Änderungen im Bereich C5:C8 automatisch. Achja, sorry. Steht ja im Code. ::) Danke! VG, P.
Registriert seit: 10.02.2016
Version(en): 2010
Ok, funktioniert alles! Jetzt kann ich mir 4 Funktionen bauen, für jedes Feld eine. Danke!
VG, P.
Registriert seit: 29.09.2015
Version(en): 2030,5
10.02.2016, 12:25
(Dieser Beitrag wurde zuletzt bearbeitet: 10.02.2016, 12:26 von snb.)
Warum setzt du kein 1,2,3,4 in C5, C6, C7, C8 ?
Warum ist "x" 'bessser' als 1,2,3,4 ??
Registriert seit: 10.02.2016
Version(en): 2010
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.
|