Herbers Excel-Forum - das Archiv

Nur eine Eingabe pro Zeile möglich

Bild

Betrifft: Nur eine Eingabe pro Zeile möglich
von: Dieter.G

Geschrieben am: 10.04.2005 20:28:03
Hallo,
dieses Makro macht es möglich, daß in jede Zeile nur ein X eingegeben werden kann!
Was muss hier verändert werden, damit in einem bestimmten Bereich z.B. A1:E10 in jeder Zeile nur eine Eingabe möglich ist?
Egal welcher Buchstabe oder Text es darf nur eine Eingabe pro Zeile möglich sein.
Danke im Voraus
Gruß Dieter
Private Sub Worksheet_Change(ByVal rngTarget As Range)
If WorksheetFunction.CountIf(Rows(rngTarget.Row), LCase("X")) > 1 Then
MsgBox "X kann nur einmal eingegeben werden!", 48, "Hinweis"
Application.EnableEvents = False
Application.Undo
rngTarget.Select
Application.EnableEvents = True
End If
End Sub

Bild

Betrifft: AW: Nur eine Eingabe pro Zeile möglich
von: Ramses
Geschrieben am: 10.04.2005 20:45:40
Hallo
x = Application.WorksheetFunction.CountA(Range("A1:E10"))
If x >= 1 Then
oder
Application.WorksheetFunction.CountIf(Range("A1:E10"), LCase("X")) >= 1
Gruss Rainer
Bild

Betrifft: AW: Nur eine Eingabe pro Zeile möglich
von: Dieter.G

Geschrieben am: 10.04.2005 21:14:27
Hallo Rainer,
bei deinem 1. Vorschlag kann im ganzen Bereich A1:E10 nur ein Wert eingegeben werden.
Es soll aber je Zeile nur eine Eingabe möglich sein!
z.B. in B1 steht Wert1, in A2 steht Wert2, in D5 steht Wert3.
jetzt dürfen in Zeile1, Zeile2 und Zeile5 keine weiteren Einträge möglich sein.
mit deinem 2.Vorschlag komm ich leider überhaupt nicht klar.
Gruss Dieter
Private Sub Worksheet_Change(ByVal rngTarget As Range)
x = Application.WorksheetFunction.CountA(Range("A1:E10"))
If x >= 2 Then
MsgBox "X kann nur einmal eingegeben werden!", 48, "Hinweis"
Application.EnableEvents = False
Application.Undo
rngTarget.Select
Application.EnableEvents = True
End If
End Sub

Bild

Betrifft: AW: Nur eine Eingabe pro Zeile möglich
von: Ramses

Geschrieben am: 10.04.2005 22:22:11
Hallo
sei mir nicht bös, aber bei "VBA-Gut" erwarte ich schon ein wenig mehr.
Reduziere den Bereich doch einfach auf die Zeile.
Sollte doch kein Problem sein
x = Application.WorksheetFunction.CountA(Rows(Target.Row))
Die zweite Variante gleich.
Die Syntax dazu findest du in der VBA-Online-Hilfe und unterscheidet sich nicht von deinem Code-Beispiel
Gruss Rainer
 Bild
Excel-Beispiele zum Thema "Nur eine Eingabe pro Zeile möglich"
Zelleingaben speichern Bei falscher Eingabe alten Wert wiederherstellen
Eingabeerleichterung bei Zeitformaten Nichtnumerische Eingaben verhindern
Eingabe in Großbuchstaben wandeln Eingaben aufaddieren
Automatisches Komplettieren einer Zelleingabe Nur numerische Eingaben zulassen
Vereinfachte Zeiteingabe Datumseingabe in Textfeld erzwingen