Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Nur eine Eingabe pro Zeile möglich

Nur eine Eingabe pro Zeile möglich
10.04.2005 20:28:03
Dieter.G
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

Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Nur eine Eingabe pro Zeile möglich
10.04.2005 20:45:40
Ramses
Hallo
x = Application.WorksheetFunction.CountA(Range("A1:E10"))
If x &gt= 1 Then
oder
Application.WorksheetFunction.CountIf(Range("A1:E10"), LCase("X")) &gt= 1
Gruss Rainer
AW: Nur eine Eingabe pro Zeile möglich
10.04.2005 21:14:27
Dieter.G
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

Anzeige
AW: Nur eine Eingabe pro Zeile möglich
10.04.2005 22:22:11
Ramses
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
Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

Nur eine Eingabe pro Zeile in Excel ermöglichen


Schritt-für-Schritt-Anleitung

Um in Excel sicherzustellen, dass in einem bestimmten Bereich (z.B. A1:E10) nur eine Eingabe pro Zeile möglich ist, kannst Du das folgende VBA-Makro verwenden. Folge diesen Schritten:

  1. Öffne Excel und drücke ALT + F11, um den Visual Basic for Applications (VBA) Editor zu öffnen.
  2. Wähle im Projektfenster das Arbeitsblatt aus, auf dem Du die Regel anwenden möchtest.
  3. Kopiere den folgenden Code in das Codefenster:
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim rng As Range
    Set rng = Range("A1:E10")

    If Not Intersect(Target, rng) Is Nothing Then
        If Application.WorksheetFunction.CountA(Rows(Target.Row)) > 1 Then
            MsgBox "In jeder Zeile darf nur ein Wert eingegeben werden!", vbExclamation, "Hinweis"
            Application.EnableEvents = False
            Application.Undo
            Application.EnableEvents = True
        End If
    End If
End Sub
  1. Schließe den VBA-Editor und teste die Funktionalität in Deinem Arbeitsblatt.

Häufige Fehler und Lösungen

  • Fehler: Das Makro funktioniert nicht, wenn Du mehrere Zeilen gleichzeitig bearbeitest.

    • Lösung: Das Makro ist so konzipiert, dass es nur auf Änderungen in einer Zeile reagiert. Überprüfe, ob Du nur eine Zelle pro Zeile änderst.
  • Fehler: Fehlermeldungen erscheinen, obwohl nur ein Wert eingegeben wurde.

    • Lösung: Stelle sicher, dass der Bereich korrekt definiert ist. Überprüfe auch, ob das Makro im richtigen Arbeitsblatt gespeichert ist.

Alternative Methoden

Falls Du kein VBA verwenden möchtest, kannst Du die Datenüberprüfung in Excel nutzen:

  1. Wähle den Bereich A1:E10 aus.
  2. Gehe zu Daten > Datenüberprüfung.
  3. Wähle Benutzerdefiniert aus und verwende die folgende Formel:
=ZÄHLENWENN(A1:E1;"<>""")<=1

Diese Methode ist weniger flexibel, bietet jedoch eine einfache Möglichkeit, Eingaben zu beschränken.


Praktische Beispiele

Angenommen, Du hast in Zeile 1 bereits einen Eintrag in Zelle A1. Wenn Du versuchst, in Zelle B1 ebenfalls einen Wert einzugeben, wird eine Warnung angezeigt, dass nur ein Wert pro Zeile zulässig ist. Das Makro sorgt dafür, dass keine doppelten Eingaben in einer Zeile existieren.


Tipps für Profis

  • Experimentiere mit den Bedingungen im VBA-Code, um andere Einschränkungen wie z.B. die Anzahl der maximalen Eingaben pro Zeile zu implementieren.
  • Nutze Debug.Print innerhalb des Codes, um Fehler leichter zu identifizieren und den Code während der Entwicklung zu testen.

FAQ: Häufige Fragen

1. Frage
Wie kann ich das Makro für einen anderen Bereich anpassen?
Ändere einfach die Zeile Set rng = Range("A1:E10") im Code, um den gewünschten Bereich festzulegen.

2. Frage
Was passiert, wenn ich das Arbeitsblatt schließe?
Das Makro bleibt aktiv, solange Du die Datei im XLSM-Format speicherst (Makro-fähige Arbeitsmappe).

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige