Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1384to1388
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Variable Eingabemeldung

Variable Eingabemeldung
15.10.2014 15:41:56
Manuel
Hallo an alle,
schon seit mehreren Tage ärgere ich mich immer wieder mit dem selben Problem. Ich bin mir sicher es fehlt nicht mehr viel zur Lösung.
Vereinfachte Problematik:
Ich möchte eine mit VBA eine variable Eingabemeldung (Daten->Datenprüfung->Eingabemeldung)erzeugen.
Wenn Zelle B1 ausgewählt dann,
Wenn Zelle A1 = 555, dann soll die Eingabemeldung "Hallo" in Zelle B1 erscheinen.
Wenn Zelle A1 = 554, dann soll die Eingabemeldung "Okay" in Zelle B1 erscheinen.
Hier mein bisheriger Ansatz:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Intersect(Target, Range("B1")) Is Nothing Then Exit Sub
With Target.Validation
.Delete
.Add Type:=xlValidateInputOnly, AlertStyle:=xlValidAlertStop,Operator:=xlBetween
.IgnoreBlank = True
.InCellDropdown = True
.InputTitle = "Eingabe:"
.ErrorTitle = ""
.InputMessage = "Hallo"
.ErrorMessage = ""
.ShowInput = True
.ShowError = True
End With
End Sub

Damit gelingt es mir eine Eingabemeldung bei Zellauswahl anzeigen zu lassen. Ich schaff es jedoch nicht die die oberhalb beschriebenen Bedingungen einzubeziehen.
Vielen Dank schon mal.
Gruß Manuel

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Variable Eingabemeldung
15.10.2014 15:54:49
Matthias
Hallo
evtl so:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim Ausgabe$
Select Case Cells(1, 1)
Case Is = 555
Ausgabe = "Hallo"
Case Is = 554
Ausgabe = "ok"
End Select
If Intersect(Target, Range("B1")) Is Nothing Then Exit Sub
With Target.Validation
.Delete
.Add Type:=xlValidateInputOnly, AlertStyle:=xlValidAlertStop, Operator:=xlBetween
.IgnoreBlank = True
.InCellDropdown = True
.InputTitle = "Eingabe:"
.ErrorTitle = ""
.InputMessage = Ausgabe
.ErrorMessage = ""
.ShowInput = True
.ShowError = True
End With
End Sub
Gruß Matthias

Anzeige
AW: Variable Eingabemeldung
15.10.2014 16:05:13
Manuel
Hi Matthias,
vielen Dank für die unglaublich schnelle Antwort.
Das löst mein Problem, genau wie ich es mir vorgestellt habe.
Danke nochmal.
Gruß Manuel

AW: Variable Eingabemeldung
16.10.2014 07:51:12
Manuel
Hallo zusammen,
ich muss den Beitrag von gestern heute doch noch einmal aufgreifen.
Da ich die Problematik etwas erweitern musste. Ich jedoch nicht weiß warum es so (siehe unterhalb) nicht funktioniert. Lediglich der erste Absatz des Codes funktioniert (wie von Matthias beschrieben).
Könnte mir zum einen jemand erklären, warum es nicht funktioniert und wie das Problem zu lösen ist?
Vielen Dank im Voraus!
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim Ausgabe$
Select Case Cells(3, 2)
Case Is = "540.20 RF"
Ausgabe = "min. 0,420 m"
Case Is = "540.20 KF"
Ausgabe = "min. 0,520 m"
Case Is = "540.31 KF"
Ausgabe = "min. 0,450 m"
Case Is = "540.40 RF"
Ausgabe = "min. 0,450 m"
Case Is = "540.40 RF"
Ausgabe = "min. 0,450 m"
End Select
If Intersect(Target, Range("B10")) Is Nothing Then Exit Sub
With Target.Validation
.Delete
.Add Type:=xlValidateInputOnly, AlertStyle:=xlValidAlertStop, Operator:=xlBetween
.IgnoreBlank = True
.InCellDropdown = True
.InputTitle = "Hinweis:"
.ErrorTitle = ""
.InputMessage = Ausgabe
.ErrorMessage = ""
.ShowInput = True
.ShowError = True
End With
Dim Ausgabe1$
Select Case Cells(3, 2)
Case Is = "540.20 RF"
Ausgabe1 = "min. 1,450 m"
Case Is = "540.20 KF"
Ausgabe1 = "min. 1,350 m"
Case Is = "540.31 KF"
Ausgabe1 = "min. 2,450 m"
Case Is = "540.40 RF"
Ausgabe1 = "min. 2,500 m"
Case Is = "540.40 RF"
Ausgabe1 = "min. 2.500 m"
End Select
If Intersect(Target, Range("D10")) Is Nothing Then Exit Sub
With Target.Validation
.Delete
.Add Type:=xlValidateInputOnly, AlertStyle:=xlValidAlertStop, Operator:=xlBetween
.IgnoreBlank = True
.InCellDropdown = True
.InputTitle = "Hinweis:"
.ErrorTitle = ""
.InputMessage = Ausgabe1
.ErrorMessage = ""
.ShowInput = True
.ShowError = True
End With
End Sub

Gruß Manuel

Anzeige
AW: Variable Eingabemeldung
16.10.2014 09:00:41
Steffi
Hallo Manuel,
der Grund warum der zweite Teil des Codes nicht funktioniert sollte diese Zeile hier sein:
If Intersect(Target, Range("B10")) Is Nothing Then Exit Sub
Sobald du die Auswahl änderst und dabei nicht B10 anwählst, bricht er an dieser Stelle wegen dem Exit Sub ab.
Probiers mal so:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim Ausgabe$
Select Case Cells(3, 2)
Case Is = "540.20 RF"
Ausgabe = "min. 0,420 m"
Case Is = "540.20 KF"
Ausgabe = "min. 0,520 m"
Case Is = "540.31 KF"
Ausgabe = "min. 0,450 m"
Case Is = "540.40 RF"
Ausgabe = "min. 0,450 m"
Case Is = "540.40 RF"
Ausgabe = "min. 0,450 m"
End Select
If Not Intersect(Target, Range("B10")) Is Nothing Then
With Target.Validation
.Delete
.Add Type:=xlValidateInputOnly, AlertStyle:=xlValidAlertStop, Operator:=xlBetween
.IgnoreBlank = True
.InCellDropdown = True
.InputTitle = "Hinweis:"
.ErrorTitle = ""
.InputMessage = Ausgabe
.ErrorMessage = ""
.ShowInput = True
.ShowError = True
End With
Exit Sub
End If
Dim Ausgabe1$
Select Case Cells(3, 2)
Case Is = "540.20 RF"
Ausgabe1 = "min. 1,450 m"
Case Is = "540.20 KF"
Ausgabe1 = "min. 1,350 m"
Case Is = "540.31 KF"
Ausgabe1 = "min. 2,450 m"
Case Is = "540.40 RF"
Ausgabe1 = "min. 2,500 m"
Case Is = "540.40 RF"
Ausgabe1 = "min. 2.500 m"
End Select
If Not Intersect(Target, Range("D10")) Is Nothing Then
With Target.Validation
.Delete
.Add Type:=xlValidateInputOnly, AlertStyle:=xlValidAlertStop, Operator:=xlBetween
.IgnoreBlank = True
.InCellDropdown = True
.InputTitle = "Hinweis:"
.ErrorTitle = ""
.InputMessage = Ausgabe1
.ErrorMessage = ""
.ShowInput = True
.ShowError = True
End With
Exit Sub
End If
End Sub

Gruß Steffi

Anzeige
AW: Variable Eingabemeldung
16.10.2014 09:13:25
Manuel
Vielen Dank für deine Antwort Steffi.
Das löst mein Problem. So einfach kann es also sein.
Könntest du mit diese geänderte Zeile kurz erklären? Was passiert dabei genau?
If Not Intersect(Target, Range("B10")) Is Nothing Then
Das wäre super!
Danke nochmal,
Gruß Manuel

AW: Variable Eingabemeldung
16.10.2014 09:33:17
Steffi
Letztendlich prüft er dort eigentlich nur ob die ausgewählte Zelle B10 ist oder nicht. Wenn sie es ist, dann werden die nachfolgenden Befehle ausgeführt, wenn nicht dann wird zu 'End If' gesprungen.
Stattdessen könnte man bspw. auch schreiben:
If Target.Address = Range("B10").Address Then
Hoffe das beantwortet deine Frage.
Gruß Steffi

Anzeige
AW: Variable Eingabemeldung
16.10.2014 09:36:50
Manuel
Ja das beantwortet meine Frage.
Danke für die Erklärung und deine kompetente Hilfe.
Gruß Manuel

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige