Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
348to352
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
348to352
348to352
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Pop Up Fenster einblenden lassen

Pop Up Fenster einblenden lassen
11.12.2003 11:12:04
Fred
Hallo Leute,
ich habe mal folgendes Problem:
Ich habe eine Tabelle aufgebaut, bei der Excel prüfen soll ob durch einen User in eine Zelle das Merkmal "R" eingetragen wurde. Wenn dem so ist, dann soll ein Fenster eingeblendet werden, dass dem User ermöglichen soll eine ergänzende Info zu schreiben, die später als Kommentar zur Zelle gespeichert wird.

Solange der User den Eintrag manuell vornimmt funktioniert es auch. Ich habe für die Tabelle jedoch die Funktion der Daten-Gültigkeitskriterien eingerichtet, so dass der User alternativ auch aus einer Liste die Eintragungsmöglichkeiten für die Zelle auswählen kann. Nutzt der User diesen Weg - was eigentlich Standard sein soll -, dann wird das von mir programmierte Fenster zur ergänzenden Info nicht hochgeblendet.

Kann mir da jemand weiterhelfen?
Hier meine VBA Routine:


Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range(Cells(7, 6), Cells(372, 25))) Is Nothing Then
If Target.Count = 1 Then
If Target = "R" Then
Zelle = Target.Address
UserForm1.Show
Else
ActiveSheet.Unprotect
With Target.Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:="=$FD$67:$FD$72"
.InputTitle = ""
.InputMessage = ""
End With
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
End If
Else
MsgBox "Mehrfachauswahl nicht gestattet. Bitte nur 1 Eintrag zurzeit löschen", 48, "Hinweis"
With Application
.EnableEvents = False
.Undo
.EnableEvents = True
End With
End If
End If
End Sub


Vielen Dank im Voraus
Fred

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

Betreff
Datum
Anwender
Anzeige
Gültigkeit und Change-Ereignis = Bug unter xl97
11.12.2003 11:41:23
Boris
Hi Fred,

das ist ein klassischer (bekannter) Bug unter xl97:
Die Auswahl aus einer Gültigkeitsliste, deren Quelle irgendwo im Tabellenblatt verankert ist, löst das Worksheet_Change_Ereignis NICHT aus.

Wenn die Listenauswahl nicht zu lang ist, dann funktioniert es, wenn die gültigen Einträge bei Daten-Gültigkeit-Liste unter "Quelle" DIREKT - mit Semikoln getrennt - eingegeben werden. Dann wird das Change-Ereignis wiederum angestoßen.

Grüße Boris
AW: Gültigkeit und Change-Ereignis = Bug unter xl97
11.12.2003 12:29:54
Fred
Hallo Boris,
ich habs versucht in der Gültigkeits-Quelle jetzt nur mal die Werte selbst hart reinzuschreiben, anstatt die Listadresse. Das hat leider zu keinem Erfolg geführt....grrr
Was mache ich da falsch?
Vor allem habe ich dann noch das Problem, dass wenn ein Eintrag mit der ENTF Taste gelöscht wurde, auch der Kommentar dazu gelöscht werden soll. Ich habe das mit dem Abschnitt

ActiveSheet.Unprotect
With Target.Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:="=$FD$67:$FD$72"
.InputTitle = ""
.InputMessage = ""
End With
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True

gelöst. Wie du sehen kannst wird hier die Gültigkeits-Liste wieder als Merkmal für die Zelle gesetzt. Wenn ich Statt der Listadresse "=$FD$67:$FD$72" die Listeinträge selbst, getrennt durch Semikolon angebe, dann erscheinen in der Listauswahl bei der Zelle keine Liste sondern z.B. U;R;AZV also genau so, wie es in der VBA Routine drinne steht...

HILFEEEEE !!!

FRed
Anzeige
Makro mal eben aufgezeichnet
11.12.2003 12:36:06
Boris
Hi Fred,

das sieht dann so aus (gültige Einträge: A,B, und C):


Sub Makro2()
With Selection.Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:="A;B;C"
.IgnoreBlank = True
.InCellDropdown = True
.InputTitle = ""
.ErrorTitle = ""
.InputMessage = ""
.ErrorMessage = ""
.ShowInput = True
.ShowError = True
End With
End Sub


Und das Change-Ereignis klappt.

Grüße Boris
AW: Makro mal eben aufgezeichnet
11.12.2003 13:38:57
Fred
Es muss wohl an meiner Excel Version liegen. Bei mir funktioniert es nicht. Die Listbox zeigt anstatt

A
B
C

bei mir dann immer

A;B;C

Shit!

Fred
Anzeige
Keine weitere Erklärung dafür...
11.12.2003 21:58:52
Boris
Hi Fred,

vielleicht nur: Nutzt du ne andere Ländereinstellung? Denn Semikolon ist woanders Punkt und umgekehrt...

Grüße Boris
AW: Keine weitere Erklärung dafür...
12.12.2003 11:29:03
Fred
Hallo Boris,
vielen Dank, dass du dir so viele Gedanken um mein Problem gemacht hast. Ich habe das jetzt mal auf einem anderen Rechner hier bei uns in der Firma ausprobiert, mit dem gleichen negativen Erfolg.
Dein Hinweis mit der Ländereinstellung ist berechtigt, trifft für mich aber leider nicht zu... snief. Daran hatte ich auch schon mal zu knapsen gehabt vor einiger Zeit.
Ich werde wohl mit diesem Makel so lange leben müssen, bis hier in unserer Firma ein neues Excel ausgerollt wird. Bei 200.000 usern wirds allerdings noch etwas dauern....
Gruß
Fred
Anzeige
noch offen
11.12.2003 11:45:45
GerdW
Das Problem ist, dass das Change- Ereignis bei Auswahl aus dem
Zelldropdown unter Excel 97 nicht auftritt. Mir ist da auch kein
workaround bekannt.

Gerd

301 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige