Danke schonmal im Voraus.
MfG, David
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
If Target.Address(False, False) = "A1" Then 'Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$B$8" Then
On Error Resume Next
Application.EnableEvents = False
Select Case Target.Value
Case 1
Target.Value = "Ich war eine Eins."
Case 2
Target.Value = "Ich war eine Zwei."
Case 3
Target.Value = "Ich war eine Drei."
Case 4
Target.Value = "Ich war eine Vier."
End Select
Application.EnableEvents = True
On Error GoTo 0
End If
End Sub
Gruß UwePrivate Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
If Not Intersect(Target, Range("N2 bis N184")) Is noting Then
Application.EnableEvents = False
Select Case Target
Case 1: Target = "hier Text 1"
Case 2: Target = "hier Text 2"
Case 3: Target = "hier Text 3"
Case 4: Target = "hier Text 4"
Case Else: Target = ""
End Select
End If
Application.EnableEvents = True
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
If Not Intersect(Target, Range("N2:O184")) Is Nothing Then
Application.EnableEvents = False
Select Case Target
Case 1: Target = IIf(Target.Column = 14, "hier Text1 SpalteN", "hier Text1 SpalteO")
Case 2: Target = IIf(Target.Column = 14, "hier Text2 SpalteN", "hier Text2 SpalteO")
Case 3: Target = IIf(Target.Column = 14, "hier Text3 SpalteN", "hier Text3 SpalteO")
Case 4: Target = IIf(Target.Column = 14, "hier Text4 SpalteN", "hier Text4 SpalteO")
Case Else: Target = ""
End Select
End If
Application.EnableEvents = True
End Sub
Um in Excel eine Zahl einzugeben und den entsprechenden Text zu erhalten, kannst du folgenden VBA-Code verwenden. Dieser Code wird in das VBA-Modul des entsprechenden Tabellenblattes eingefügt:
ALT + F11, um den VBA-Editor zu öffnen.Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
If Not Intersect(Target, Range("N2:N184")) Is Nothing Then
Application.EnableEvents = False
Select Case Target.Value
Case 1: Target.Value = "Ich war eine Eins."
Case 2: Target.Value = "Ich war eine Zwei."
Case 3: Target.Value = "Ich war eine Drei."
Case 4: Target.Value = "Ich war eine Vier."
Case Else: Target.Value = ""
End Select
Application.EnableEvents = True
End If
End Sub
Fehler 1004: Die Methode range für das Objekt _Worksheet ist fehlgeschlagen.
Range("N2:N184") anstelle von Range("N2 bis N184").Fehlermeldung: "Fehler beim Kompilieren: Mehrdeutiger Name: Worksheet_Change"
Falls du keine VBA-Lösungen nutzen möchtest, kannst du auch die WENN-Funktion in Excel verwenden. Diese Methode ist jedoch weniger flexibel und erfordert eine zusätzliche Spalte:
=WENN(A1=1;"Ich war eine Eins.";WENN(A1=2;"Ich war eine Zwei.";WENN(A1=3;"Ich war eine Drei.";WENN(A1=4;"Ich war eine Vier";""))))
Die Verwendung von VBA ist jedoch oft die bessere Wahl, wenn du die Eingabe von Zahlen in den Zellen optimieren möchtest, ohne zusätzliche Spalten zu benötigen.
Um die Funktion zu testen, gebe einfach eine Zahl in die Zellen N2 bis N184 ein. Hier sind einige Beispiele für Eingaben und die erwarteten Ausgaben:
1 eingibst, wird die Zelle den Text "Ich war eine Eins." anzeigen.2 eingibst, wird der Text "Ich war eine Zwei." erscheinen.3 und 4 gelten die entsprechenden Texte.Application.EnableEvents = False und Application.EnableEvents = True Befehle, um zu verhindern, dass das Ereignis während der Wertänderung erneut ausgelöst wird.1. Wie kann ich den Text für andere Zahlen anpassen?
Du kannst die Texte im Select Case-Block anpassen, indem du die bestehenden Texte durch deine eigenen ersetzt.
2. Funktioniert dieser VBA-Code in jeder Excel-Version? Ja, der Code sollte in Excel 2010 und späteren Versionen funktionieren, solange die VBA-Funktionalität aktiviert ist. Achte darauf, dass Makros in deiner Arbeitsmappe erlaubt sind.