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

msgbox, wenn best. Ereignis

msgbox, wenn best. Ereignis
23.05.2004 21:46:26
Thomas
Hallo nochmal,
hab noch was vergessen. Ich würde gerne sobald ich in den Spalten AI,AK,AV,AY und BA einen Eintrag mache, der nur aus "j" oder "n" besteht eine msgbox erscheinen lassen, die mir sagt, daß dies eine unzulässige Eingabe ist. Ist das realisierbar?
Vielen Dank und liebe Grüße
Thomas

14
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: msgbox, wenn best. Ereignis
Reinhard
Hallo Thomas,
klicke mit rechts unten auf den Tabellennamen, dann mit links auf "Code anzeigen, F7, dann nachstehenden Code reinkopieren, VB-Editor Fenster wieder schliessen.
Gruß
Reinhard

Private Sub Worksheet_Change(ByVal Target As Range)
Select Case Target.Column
Case 35, 37, 48, 51, 53 ' A=1,B=2,...Z=26,....
If Target.Value = "j" Or Target.Value = "n" Then
MsgBox "so nich"
Target.Delete
Target.Select
End If
Case Else
Exit Sub
End Select
End Sub

AW: msgbox, wenn best. Ereignis
23.05.2004 22:08:26
Thomas
Hallo Reinhard,
schon ma danke für die blitzschnelle Antwort. Leider sagt er mir dann, beim Versuch das Makro zu starten "Fehler beim Kompilieren. Variable nicht definiert!"
Das geschieht schon ganz am Anfang bei dem Target von: "Select Case Target.Column"
oder muss ich da noch was ergänzen?
LG Thomas
Anzeige
AW: msgbox, wenn best. Ereignis
23.05.2004 22:11:50
Matthias
Hallo Thomas,
ersetze
Target.Delete
durch
Target.ClearContents
oder nimm meine Variante.
Gruß Matthias
AW: msgbox, wenn best. Ereignis
23.05.2004 22:10:18
Matthias
Hallo Reinhard, hallo Thomas,
ein kleine Abwandlung:

Private Sub Worksheet_Change(ByVal Target As Range)
Select Case Target.Column
Case 35, 37, 48, 51, 53 ' A=1,B=2,...Z=26,....
If UCase(Target.Value) = "J" Or UCase(Target.Value) = "N" Then
MsgBox "so nich"
Application.Undo
End If
Case Else
Exit Sub
End Select
End Sub

Der kleine Unterschied:
Die Zelle wird nicht gleich gelöscht ;-)
Der vorherige Inhalt wird wiederhergestellt mit Undo.
Gruß Matthias
Anzeige
AW: msgbox, wenn best. Ereignis
23.05.2004 22:13:36
Thomas
Hallo,
vielen Dank, leider das gleiche wie eben...Fehler beim Kompilieren...mach ich was falsch?
Liebe Grüße
Thomas
Welche Excel-Version? - o.T.
23.05.2004 22:16:11
Matthias
-
excel9 steht da o.T.
23.05.2004 22:20:03
Thomy
AW: excel9 steht da o.T.
23.05.2004 22:23:17
Matthias
Hallo Thomas,
hast du den Code auch in das Arbeitsblattmodul gestellt, wie Reinhard beschrieben hat?
Also nicht in ein allgemeines Modul wie z.B. "Modul1"!
-Rechtklick auf Tabellenblattnamen im Arbeitsmappenregster
-auf "Code anzeigen" klicken
-im erscheinenden Codemodul rechts Code einfügen.
Viel Erfolg,
Matthias
jetzt schon;) trotzdem nicht ganz!!
23.05.2004 22:36:46
Thomas
Hallo Matthias, hab es jetzt da drin, die Fehlermeldung kommt auch, allerdings sagt er mir, wenn ich dann auf "OK" drücke "Laufzeitfehler `424`Objekt erforderlich". Mach ich wieder was verkehrt?
LG
Thomy
Anzeige
AW: msgbox, wenn best. Ereignis
23.05.2004 22:42:45
Matthias
Hallo Thomas,
poste nochmal deinen Code, den du verwendest.
Wo genau kommt der Fehler (gelbe Markierung)?
Gruß Matthias
AW: msgbox, wenn best. Ereignis
23.05.2004 22:45:51
Thomy
Hallo Matthias,
hier der Code:

Private Sub Worksheet_Change(ByVal Target As Range)
Select Case Target.Column
Case 35, 37, 48, 51, 53 ' A=1,B=2,...Z=26,....
If Target.Value = "j" Or Target.Value = "n" Then
MsgBox "so nich"
Target.Delete
Target.Select   <Hier kommt beim Debuggen die Markierung
End If
Case Else
Exit Sub
End Select
End Sub

LG
Thomy
AW: msgbox, wenn best. Ereignis
23.05.2004 22:50:09
Matthias
Hallo Thomy,
Du solltest ja auch meinen Code nehmen ;-)

Private Sub Worksheet_Change(ByVal Target As Range)
Select Case Target.Column
Case 35, 37, 48, 51, 53 ' A=1,B=2,...Z=26,....
If UCase(Target.Value) = "J" Or UCase(Target.Value) = "N" Then
MsgBox "so nich"
Application.Undo
End If
Case Else
Exit Sub
End Select
End Sub

Der Fehler im anderen Code liegt darin, dass mit Target.Delete die Zelle (nicht nur der Inhalt) gelöscht wird, die dann mit Target.Select wieder ausgewählt werden soll. Das geht natürlich nicht.
Aber das hab ich alles weiter oben schon gepostet.
Wer lesen kann, ist klar im Vorteil ;-)
Gruß Matthias
Anzeige
Vielen Dank!! Perfekt!!!!!! :) *freu* o.T.
23.05.2004 22:57:01
Thomy
Danke, geschlossen - o.T.
23.05.2004 22:58:43
Matthias
:-)

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige