Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Excel VBA: Auswahl aus Gültikkeitsliste verbieten wenn...
#1
Hallo zusammen,

vielleicht könnte Ihr mir wieder mal auf die Sprünge helfen.

Ich möchte in dieser Tabelle die Auswahl "closed" aus der Gültigkeitsliste in Zellen der Spalte "E" so lange verhindern, solange die Werte in den Zellen der Spalten  A & B nicht identisch sind und daraus resultierend der Wert in Spalte "C" nicht auf "Null" steht. Gleichzeitig soll eine Meldung (Eintrag in Spalte "C" unvollständig) hochpoppen die darauf hinweist dass der Wert in der Zelle in Spalte "B" fehlt oder noch nicht korrekt ist.


Tabelle3
ABCDE
1volumepartial deliveryopenLieferdatumStatus
21118.01.2016closed
32219.01.2016closed
43320.01.2016closed
54421.01.2016open
65522.01.2016open
76623.01.2016cancel
Excel-Inn.de
Hajo-Excel.de
XHTML-Tabelle zur Darstellung in Foren, einschl. der neuen Funktionen ab Version 2007
Add-In-Version 21.08 einschl. 64 Bit

Mit freundlichen Grüßen / Best regards
                          //
----------o00o---°(_)°---o00o----------------------

Erich
Antworten Top
#2
In E2


PHP-Code:
=If(A2=B2;"closed";"open"
Antworten Top
#3
Hallo,

in E2 ist eine Gültigkeitsliste hinterlegt....!? Da kann ich doch keine Formel eintragen....wenn ich mich nicht irre?
Mit freundlichen Grüßen / Best regards
                          //
----------o00o---°(_)°---o00o----------------------

Erich
Antworten Top
#4
Hier brauchst du doch gar kein Gültigkeitsliste ?
Antworten Top
#5
Das ist mir schon klar. Leider muss die Gültigkeitsliste aber unangetastet bleiben.
Die Zeilen werden auch noch in Abhängigkeit der Gültigkeitsliste durch eine Bedingte Formatierung eingefärbt.

Deshalb wäre mir eine VBA-Lösung wichtig.

Trotzdem vielen Dank!
Mit freundlichen Grüßen / Best regards
                          //
----------o00o---°(_)°---o00o----------------------

Erich
Antworten Top
#6
Hallo,

man könnte dann das Auswählen der Zelle verhindern:


Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
 If Target.Column = 5 And Target.Row > 1 Then
   If Target.Offset(, -4) <> Target.Offset(, -3) Then
     MsgBox "Splate B nicht korrekt!"
     Application.EnableEvents = False
     Target.Offset(, -3).Select
     Application.EnableEvents = True
   End If
 End If
End Sub
Gruß Atilla
[-] Folgende(r) 1 Nutzer sagt Danke an atilla für diesen Beitrag:
  • sharky51
Antworten Top
#7
Zitat:Die Zeilen werden auch noch in Abhängigkeit der Gültigkeitsliste durch eine Bedingte Formatierung eingefärbt.
Dass stimmt nicht.

Zitat:Deshalb wäre mir eine VBA-Lösung wichtig.
Bedingte Formatierung hat nichts mit VBA zu tun, weder VBA mit Gültigkeitsliste.
Antworten Top
#8
Hallo attila,

das ist schon mal nicht schlecht.

Mann soll aber die Zelle in Spalte 5 aber schon anwählen können, egal ob die Werte in den vorherigen Zellinhalte, ungleich oder gleich sind.
Nur wenn keine Übereinstimmung herrscht und "closed" ausgewählt werden soll, darf "closed" nicht gesetzt werden und es soll gemeckert werden.
Mit freundlichen Grüßen / Best regards
                          //
----------o00o---°(_)°---o00o----------------------

Erich
Antworten Top
#9
(13.02.2016, 16:18)snb schrieb:
Zitat:Die Zeilen werden auch noch in Abhängigkeit der Gültigkeitsliste durch eine Bedingte Formatierung eingefärbt.
Dass stimmt nicht.

Zitat:Deshalb wäre mir eine VBA-Lösung wichtig.
Bedingte Formatierung hat nichts mit VBA zu tun, weder VBA mit Gültigkeitsliste.

Sorry, ja das weiß ich....eine längere Beschreibung warum, wieso, weshalb ich eine VBA-Lösung bevorzuge würde den Rahmen sprengen.
Trotzdem vielen Dank für Deine kurze und knackige Lösung! Werde sicher mal auf sie zurückgreifen.
Mit freundlichen Grüßen / Best regards
                          //
----------o00o---°(_)°---o00o----------------------

Erich
Antworten Top
#10
Hallo,

dann das Change Ereignis so:



Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 5 And Target.Row > 1 Then
   If Target.Offset(, -4) <> Target.Offset(, -3) Then
     If Target.Text = "closed" Then
       MsgBox "Splate B nicht korrekt!"
       Application.EnableEvents = False
       Application.Undo
       Application.EnableEvents = True
     End If
   End If
 End If
End Sub
Gruß Atilla
[-] Folgende(r) 1 Nutzer sagt Danke an atilla für diesen Beitrag:
  • sharky51
Antworten Top


Gehe zu:


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