![Ich möchte ein Zeichen durch eine bestimmte Zahl ersetzen. Welche Formel muss ich hierfür eingeben?](https://rvso.com/image/1628435/Ich%20m%C3%B6chte%20ein%20Zeichen%20durch%20eine%20bestimmte%20Zahl%20ersetzen.%20Welche%20Formel%20muss%20ich%20hierf%C3%BCr%20eingeben%3F.png)
Wenn ich also beispielsweise den Buchstaben „W“ eingebe, möchte ich, dass die Zelle automatisch durch die Zahl 4.000 ersetzt wird, und wenn ich den Buchstaben „B“ eingebe, möchte ich, dass die Zelle durch die Zahl 3.000 ersetzt wird. Wenn ich dann den Buchstaben ändere, möchte ich, dass die Zelle automatisch die neue Zahl eingibt.
Antwort1
Sie können diesen Code versuchen:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Cells.Count > 1 Or IsEmpty(Target) Then Exit Sub
If Target.Columns.Count = 1 Then
If Target.Value = "W" Then
Target.Value = 4000
ElseIf Target.Value = "X" Then
Target.Value = 5000
ElseIf Target.Value = "Y" Then
Target.Value = 6000
End If
Endif
End Sub
Wie es funktioniert:
- Drücken Sie entwederAlt+F11.
- OderRKlicken Sie mit der rechten Maustaste auf die Registerkarte „Tabelle“ und dann im Popup-Menü aufVCode anzeigen.
Sie erhalten das Fenster des VBA-Editors.
Copy &Paste diesen Code.
Drücken SieCtrl+s zum Speichern.
Jetzt drückenAlt+Q, um zum Blatt zurückzukehren.
Sobald Sie nun entweder W, X oder Z in Spalte A eingeben, wird dieser Code durch die zugewiesene Nummer ersetzt.
Achtung
- Sie können weitere Bedingungen hinzufügen.
- Alphabete und entsprechende Zahlen sind editierbar.
- Sie können die Spalte mithilfe der Codezeile anpassen.
If Target.Columns.Count = 1 Then
Hier steht 1 für eine beliebige Spalte.
Es sollte auch sein,,
If Target.Columns.Count >= 1 And Target.Columns.Count <= 5 Then
Wenn Sie nur in Spalte A arbeiten möchten, verwenden Sie besser diesen Code.
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Application.Intersect(Target, Me.Range("A:A")) Is Nothing Then
If Target.Cells.Count > 1 Or IsEmpty(Target) Then Exit Sub
If Target.Value = "W" Then
Target.Value = 4000
ElseIf Target.Value = "X" Then
Target.Value = 5000
ElseIf Target.Value = "Y" Then
Target.Value = 6000
End If
End If
End Sub
Achtung
- Dies
Me.Range("A:A"))
ist editierbar und sollteMe.Range("A:C"))
oderMe.Range("A1:A100"))
auch. - Speichern Sie die Arbeitsmappe unterMAcro aktivieren (.xlsm).