Registriert seit: 09.08.2016
Version(en): 2010
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
Registriert seit: 06.12.2015
Version(en): 2016
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:1 Nutzer sagt Danke an Fennek für diesen Beitrag 28
• radkappe
Registriert seit: 09.08.2016
Version(en): 2010
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
Registriert seit: 11.04.2014
Version(en): Office 2007
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
Registriert seit: 09.08.2016
Version(en): 2010
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
Registriert seit: 11.04.2014
Version(en): Office 2007
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
Registriert seit: 09.08.2016
Version(en): 2010
Hallo.
Hat sich nicht verändert.
Spalte B verändert sich nicht.
Gruß radkappe
Registriert seit: 11.04.2014
Version(en): Office 2007
29.08.2016, 09:49
(Dieser Beitrag wurde zuletzt bearbeitet: 29.08.2016, 09:49 von Steffl.)
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
Registriert seit: 21.07.2016
Version(en): 2007
29.08.2016, 09:55
(Dieser Beitrag wurde zuletzt bearbeitet: 29.08.2016, 10:26 von IchBinIch.)
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
Registriert seit: 09.08.2016
Version(en): 2010
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
|