Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1072to1076
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

Worksheet_Change

Worksheet_Change
04.05.2009 17:22:19
Peter
Hallo Excel-Profis,
mein kleines Problem ist vermutlich mit einer Ereignis-Prozedur (siehe Betreff) zu bewältigen.
Ich krieg' sie aber nicht so schnell zusammen:
Wenn im Bereich C5:AD369 meines Tabellenblattes etwas anderes als ein Kreuz ( x )
eingefügt wird, soll eine Msgbox aufgehen.
Für Experten, schätze ich, kein Problem. Für mich schon.
Bitte um Support.
Gruß,
Peter F.

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Worksheet_Change
04.05.2009 17:26:59
Hajo_Zi
Hallo Peter,
mache es ganz ohne VBA über Daten, Gültigkeit.
Sheet1
 C
30 
31 
32 
33 
34 

Daten, Gültigkeit
Zelle Zulassen Daten Wert1 Wert2 Leere Zellen ignorieren Zellendropdown Titel Eingabemeldung Eingabemeldung Titel Fehler Fehlermeldung
C30BenutzerdefiniertZwischen"X"     Wahr            
C31BenutzerdefiniertZwischen"X"     Wahr            
C32BenutzerdefiniertZwischen"X"     Wahr            
C33BenutzerdefiniertZwischen"X"     Wahr            
C34BenutzerdefiniertZwischen"X"     Wahr            

Tabellendarstellung in Foren



Anzeige
AW: Worksheet_Change
04.05.2009 17:34:32
Raist10
Probiere es mal so:

Private Sub Worksheet_Change(ByVal Target As Range)
Dim chkBereich As Range
Set chkBereich = Range("C5:AD369")
If Not Intersect(Target, chkBereich) = IsNothing Then
If Target  "x" Then
MsgBox "Bitte nur ein Kreuz für jeden"
Application.EnableEvents = False
Application.Undo
Application.EnableEvents = True
End If
End If
End Sub


Habe Dir noch eine Undo-Funktion reingepackt, falls eben kein Kreuz wird die Eingabe rückgängig gemacht.
Gruß
Rainer

AW: Worksheet_Change
04.05.2009 17:43:48
Raist10
Oops ... Fehler gebaut ... hier korrekt:

Private Sub Worksheet_Change(ByVal Target As Range)
Dim chkBereich As Range
Set chkBereich = Range("C5:AD369")
If Intersect(Target, chkBereich) Is Nothing Then
Exit Sub
ElseIf Target  "x" Then
MsgBox "Bitte nur ein Kreuz für jeden"
Application.EnableEvents = False
Application.Undo
Application.EnableEvents = True
End If
End Sub


Gruß
Rainer

Anzeige
AW: Worksheet_Change
04.05.2009 19:13:17
Peter
Allen Dank, die einen Beitrag brachten. Rainers Vorschlag war am geeignetsten. Das mit der Gültigkeit war mir bekannt, hatte ich aber schon mit einer anderen Funktion für Teilbereiche des Gesamtbereiches belegt.
Gruß,
Peter F.
AW: Danke für die Rückmeldung, aber
04.05.2009 19:24:19
Daniel
es wäre hilfreich gewesem in deiner Frage darauf hinzuweisen, daß einzelne Lösungsmöglichkeiten aus bestimmten Gründen nicht in frage kommen.
Allerdings würde mich schon interessieren, wie deine andere Gültigkeit mit diesem Makro zusammenspielt.
Gruß, Daniel
AW: Danke für die Rückmeldung, aber
04.05.2009 19:26:06
Hajo_Zi
Hallo Daniel,
Daten, Gültigkeit spielt bei Makro doch keine Rolle.
Gruß Hajo
Anzeige
AW: in diesem Fall sind bestimmte
04.05.2009 19:51:53
Daniel
Wechselwirkungen nicht auszuschließen.
könnte ja sein, daß die Gültigkeit nur Zahlen zulässt und das Makro nur das "x"
ich kann mir grad keinen Fall vorstellen, auf einen Zellbereich, in dem ich per Makro nur die Eingabe von "x" zulassen will, noch eine andere Gültigkeitsprüfung bestehen zu lassen und bin neugierig auf die Situation, wo das sinnvoll ist.
Gruß, Daniel
AW: in diesem Fall sind bestimmte
04.05.2009 20:42:54
Hajo_Zi
Hallo Daniel,
wir sehen das vielleicht zu kompliziert.
Er hat vielleich bei Daten Gütigkeit Zahlen zugelassen und im Change Ereignis nur X.
Jetzt hat er die Gültigkeit überlistet. Bei Eingabe einer Zahl sagt Gültigkeit ok und das Change Ereignis Nein.
Gruß Hajo
Anzeige
AW: in diesem Fall sind bestimmte
05.05.2009 09:56:22
Peter
Hallo Daniel, hallo Hajo,
ich möchte Euren Mutmaßungen ein Ende bereiten. Ich habe wahrscheinlich in meiner Excel-/VBA-Unbedarftheit ein banales Problem auf einem zu hohen Level angesiedelt.
Ohne auf Einzelheiten einzugehen: Es handelte sich um einen Urlaubsplan für 2010, in welchem MA durch Kreuze in entsprechenden Datumsfeld ihren Urlaubswunsch dokumentieren sollten. Bei Zeichen x sollte eine Fehlermeldung kommen. Das habe ich mit Daten / Gültigkeit erschlagen. Jetzt kamen noch die Felder für Wochenenden und Feiertage. Dort sollten keine Einträge möglich sein, bzw. bei einem solchen Versuch eine andere Fehlermeldung kommen. Das war schon alles !
Ich weiß, dass es andere und vermutlich auch elegantere Möglichkeiten gibt, die Zielvorgabe zu erreichen, aber ich wollte es auf diesem Wege lösen.
Danke für Euer Interesse.
Gruß,
Peter F.
Anzeige
Besser mit DATEN - GÜLTIGKEIT
04.05.2009 17:42:54
Daniel
Hi
für diese Funktionalität brauchst du kein Makro:
- Zellbereich markieren
- DATEN - GÜLTIGKEIT klicken
- im Reiter "Einstellungen" bei "Zulassen" den Wert "Liste" auswählen und bei "Quelle" ein "x" eintragen.
- im Reiter "Fehlermeldung" kannst du den Text der Meldung eingeben, die bei Falscheingabe erscheinen soll
Gruß, Daniel

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige