Begründung einer Bewertung
#1
Guten morgen zusammen.

Ich habe da ein Problem, wo ich keine Lösung zu finde. Vielleicht könnt ihr mir ja bitte mal helfen.

In Spalte A kann in jeder Zelle über eine Dropdown-Liste folgendes ausgewählt werden: "n.b., 0, 2, 4, 6, 8, 10"
- Wenn in einer Zelle "n.b." steht, dann soll in Spalte B in der gleichen Zeile automatisch "ABC" stehen.
- Wenn in einer Zelle "10" steht, dann soll in Spalte B in der gleichen Zeile automatisch "XYZ" stehen.
- Wenn in einer Zelle "0, 2, 4, 6 oder 8" steht, dann soll in Spalte B in der gleichen Zeile automatisch "Text eingeben" stehen. Wenn das der Fall ist, dann muss der Mitarbeiter einen Text dort in der Zelle eingeben. Dieser eingegebene Text soll dann aber drin stehen bleiben, auch wenn sich der Wert "0, 2, 4, 6 oder 8" in Spalte A noch einmal ändert. Nur wenn auf "n.b. oder 10" geändert wird, soll der eingegebene Text mit "ABC" oder "XYZ" wieder überschrieben werden.

Ich hoffe, ich habe es verständlich geschrieben?! Wie bekomme ich das mit einem Makro hin?

Vielen Dank im Voraus.

radkappe
Top
#2
Hallo,

versuche diesen Code:


Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column <> 1 Or Target.Count > 1 Then Exit Sub
Select Case Target.Value
Case "n.b."
Target.Offset(, 1) = "ABC"
Case 10
Target.Offset(, 1) = "XYZ"
Case 0, 2, 4, 6, 8
Target.Offset(, 1) = "Text eingeben"
End Select
End Sub

mfg
[-] Folgende(r) 1 Nutzer sagt Danke an Fennek für diesen Beitrag:
  • radkappe
Top
#3
Hallo Fennek.

Vielen Dank für deine Antwort.

Es gibt nur noch ein Problem. Wenn ich in Spalte B einen Text eingegeben habe und den Wert z.B. von 8 auf 6 ändere, überschreibt er mir meinen eingetragenen Text und macht wieder "Text eingeben". 
Wenn ich 0, 2, 4, 6 oder 8 auswähle, soll der von mir eingetragene Text aber drin stehen bleiben und nicht überschrieben werden.

Gruß radkappe
Top
#4
Hallo,

teste mal

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
   If Target.Column <> 1 Or Target.Count > 1 Then Exit Sub
   Select Case Target.Value
      Case "n.b."
         Target.Offset(, 1) = "ABC"
      Case 10
         Target.Offset(, 1) = "XYZ"
      Case 0, 2, 4, 6, 8
         If IsEmpty(Target.Value) Then Target.Offset(, 1) = "Text eingeben"
   End Select
End Sub
Gruß Stefan
Win 10 / Office 2016
Top
#5
Hallo Steffl.

Vielen Dank für deine Antwort.

Den eingegebenen Text überschreibt er nicht mehr. Das funktioniert.
Aber es wird nicht bei der ersten Auswahl einer Zahl kein "Text eingeben" eingetragen. Der Inhalt der in Spalte B stand bleibt bestehen.

Gruß radkappe
Top
#6
Hallo,

und so?
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
   If Target.Column <> 1 Or Target.Count > 1 Then Exit Sub
   Select Case Target.Value
      Case "n.b."
         Target.Offset(, 1) = "ABC"
      Case 10
         Target.Offset(, 1) = "XYZ"
      Case 0, 2, 4, 6, 8
         If IsEmpty(Target.Offset(, 1).Value) Then Target.Offset(, 1) = "Text eingeben"
   End Select
End Sub
Gruß Stefan
Win 10 / Office 2016
Top
#7
Hallo.

Hat sich nicht verändert.  Huh

Spalte B verändert sich nicht.

Gruß radkappe
Top
#8
Hallo,

und jetzt?

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
   If Target.Column <> 1 Or Target.Count > 1 Then Exit Sub
   Select Case Target.Value
      Case "n.b."
         Target.Offset(, 1) = "ABC"
      Case 10
         Target.Offset(, 1) = "XYZ"
      Case 0, 2, 4, 6, 8
         If IsEmpty(Target.Offset(, 1).Value) Or Target.Offset(, 1) = "ABC" Or Target.Offset(, 1) = "XYZ" Then Target.Offset(, 1) = "Text eingeben"
   End Select
End Sub
Gruß Stefan
Win 10 / Office 2016
Top
#9
Hallo,

dann vielleicht so?


Code:
Private Sub Worksheet_Change(ByVal Target As Range)
   If Target.Column <> 1 Or Target.Count > 1 Then Exit Sub
   Select Case Target.Value
      Case "n.b."
         Target.Offset(, 1) = "ABC"
      Case 10
         Target.Offset(, 1) = "XYZ"
      Case 0, 2, 4, 6, 8
         If Target.Offset(, 1).Value <> "Text eingeben" then

        Else
        Target.Offset(,1) = "Text eingeben"
         End If
  End Select
End Sub

Gruß
Ich
[-] Folgende(r) 1 Nutzer sagt Danke an IchBinIch für diesen Beitrag:
  • radkappe
Top
#10
Hallo.

Vielen Dank! Jetzt hat es funktioniert.

Aber mir ist gerade noch ein neues Problem aufgefallen.

Ich habe mir 2 Buttons ins Tabellenblatt gebaut. Wenn der eine Button angeklickt wird, dann sollen alle Zellen auf 10 gesetzt werden. Bei dem anderen Button sollen alle Zellen auf n.b. gesetzt werden. Das funktioniert ja auch soweit. (Die Makros habe ich im Modul1 stehen) Nur ändern sich die Texte in Spalte B nicht automatisch! 

Wenn ich über die Dropdown-Liste gehe und jede Zelle einzeln auswähle, funktioniert das Makro (ist im Tabellenblatt gespeichert) wie Steffl mir geschrieben hat. Mache ich das über die Button passiert in Spalte B gar nichts.

Wo ist der Haken?

Gruß radkappe
Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste