Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Zahl eingeben- Text erhalten

Forumthread: Zahl eingeben- Text erhalten

Zahl eingeben- Text erhalten
24.11.2016 08:46:35
David
Hallo, ich habe mal wieder eine Frage an euch Profis. Ich will gerne, dass wenn ich eine Zahl (1-4) in eine Zelle eingebe, ein bestimmter Text in dieser Zelle erscheint. Hatte es bisher mit zwei Spalten gelöst und einer entsprechenden WENN Funktion. Nun würde ich das gerne anderst lösen, da mich die zweite Spalte stört.
Danke schonmal im Voraus.
MfG, David
Anzeige

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zahl eingeben- Text erhalten
24.11.2016 09:00:16
hary
Moin David
Code in den Code der Tabelle.
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
If Target.Address(False, False) = "A1" Then '

gruss hary
AW: Zahl eingeben- Text erhalten
24.11.2016 09:01:43
Uwe
Hallo David,
der Code kommt in das schon vorhandene VBA-Modul des entsprechenden Tabellenblattes.
Im Beispiel wird die Zelle B8 abgefragt:
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ß Uwe
Anzeige
AW: Zahl eingeben- Text erhalten
24.11.2016 09:34:47
David
Erstmal vielen Dank euch beiden. Also in der ersten Zelle funktioniert das ganze jetzt, aber wie bekomme ich es hin, dass es nicht nur in Zelle N2 sondern von N2 bis N184 funktioniert?
Gruß David
AW: Zahl eingeben- Text erhalten
24.11.2016 09:42:13
hary
Moin
Dann so.
Private 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

gruss hary
Anzeige
AW:korrektur
24.11.2016 09:44:29
hary
Moin
Schreibfehler eingeschlichen.
Statt: Is noting
muss es: Is nothing
heissen.
gruss hary
AW: AW:korrektur
24.11.2016 09:50:02
David
Das funktioniert leider nicht. Fehler: 1004 Die Methode range für das Objekt _Worksheet ist fehlgeschlagen.
AW:siehe Thread "mit 2 Spalten" gruss owt
24.11.2016 09:54:16
hary
.
Anzeige
AW: Zahl eingeben- Text erhalten
24.11.2016 09:42:55
David
Achso ja und der Spalte daneben hätte ich gerne dasselbe Spiel nur mit anderen Texten. Wenn ich nun aber das ganze nochmals einfüge und ausführen will, bekomme ich die Fehlermeldung "Fehler beim Kompilieren: Mehrdeutiger Name: Worksheet_Change"
Sorry dass ich euch nerve, aber ich kapiers einfach nicht anders.
Anzeige
AW: mit 2 Spalten
24.11.2016 09:50:54
hary
Moin
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

gruss hary
Anzeige
AW: mit 2 Spalten
24.11.2016 09:53:40
David
Jetzt funktioniert es. Vielan Dank, du hast mir wirklich sehr weiter geholfen.
Gruß David
Anzeige

Infobox / Tutorial

Excel: Zahl eingeben und Text erhalten


Schritt-für-Schritt-Anleitung

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:

  1. Öffne Excel und die gewünschte Arbeitsmappe.
  2. Drücke ALT + F11, um den VBA-Editor zu öffnen.
  3. Suche im Projekt-Explorer das entsprechende Tabellenblatt.
  4. Doppelklicke darauf, um das Codefenster zu öffnen.
  5. Füge den folgenden Code ein:
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
  1. Schließe den VBA-Editor und kehre zu deinem Excel-Dokument zurück.
  2. Teste die Funktionalität, indem du eine Zahl zwischen 1 und 4 in die Zellen von N2 bis N184 eingibst.

Häufige Fehler und Lösungen

  • Fehler 1004: Die Methode range für das Objekt _Worksheet ist fehlgeschlagen.

    • Stelle sicher, dass der Bereich korrekt definiert ist. Verwende Range("N2:N184") anstelle von Range("N2 bis N184").
  • Fehlermeldung: "Fehler beim Kompilieren: Mehrdeutiger Name: Worksheet_Change"

    • Dieser Fehler tritt auf, wenn der gleiche Subname mehrmals im gleichen Modul verwendet wird. Achte darauf, dass du den Subnamen nur einmal verwendest.

Alternative Methoden

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.


Praktische Beispiele

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:

  • Wenn du 1 eingibst, wird die Zelle den Text "Ich war eine Eins." anzeigen.
  • Wenn du 2 eingibst, wird der Text "Ich war eine Zwei." erscheinen.
  • Für 3 und 4 gelten die entsprechenden Texte.

Tipps für Profis

  • Nutze die Application.EnableEvents = False und Application.EnableEvents = True Befehle, um zu verhindern, dass das Ereignis während der Wertänderung erneut ausgelöst wird.
  • Du kannst die Funktionalität erweitern, indem du mehr Bedingungen hinzufügst oder die Ausgabe auf andere Zellen anpasst.
  • Denke daran, deine VBA-Makros zu speichern, um sicherzustellen, dass deine Arbeit nicht verloren geht.

FAQ: Häufige Fragen

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.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige