Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: In Spalte nur einen Eintrag zulassen

In Spalte nur einen Eintrag zulassen
23.01.2017 09:54:00
obelix-xxl
Hallo zusammen,
durch welchen Code / Makro kann ein zweiter Eintrag in bestimmten Spalten verhindert werden (Hinweistext ist gewünscht)?
Beispiel:
In den Spalten B, E, I und L wird mit einem x eine Auswahl getroffen. Diese Auswahl darf in dieser Spalte nur einmal vorkommen, weitere Eintragungen dürfen nicht zugelassen werden. Ein Hinweis wie z.B. "Spalte B: nur eine Auswahl erlaubt!" und z.B. "Spalte C: nur eine Auswahl erlaubt!" ... wäre hilfreich.
Der Bereich in jeder der vorgenannten Spalten ist von Zeile 7 bis 500 begrenzt.
Über eine Ünterstützung würde ich mich sehr freuen.
LG obelix
Anzeige

12
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: In Spalte nur einen Eintrag zulassen
23.01.2017 10:09:43
UweD
Hallo
Ohne Code, mit Bordmitteln...
Beispielhaft für B
- markiere B7:B500
- Daten, Datenüberprüfung
- Reiter Einstellungen: bei Zulassen: Benutzerdefiniert auswählen
- Bei Formel: =ANZAHL2($B$7:$B$500)&lt=1
- Reiter Fehlermeldung "Spalte B: nur eine Auswahl erlaubt!"
- Ok
das gleiche für die anderen Spalten wiederholen
LG UweD
Anzeige
AW: In Spalte nur einen Eintrag zulassen
23.01.2017 10:12:07
iris
Hallo!
Ich denke so sollte es klappen:
Spalte markieren
Daten
Datenüberprüfung
Zulassen: Benutzerdef.
Formel: =Anzahl(A:A)=1
Grüße, Iris
AW: In Spalte nur einen Eintrag zulassen
23.01.2017 11:50:58
obelix-xxl
Hallo UweD und iris,
das ging ja mit einer Lösung super schnell und passt so.
Danke.
Gibt es auch eine automatische Lösung als Makro? Dann müssten die Bereiche definiert werden und ein weiterer Eintrag in diese Spalten wird verhindert?
LG obelix
Anzeige
AW: In Spalte nur einen Eintrag zulassen
23.01.2017 12:02:23
iris
Hallo!
Mit VBA kenne ich mich nicht wirklich aus, leider.
Aber was wäre der Vorteil?
AW: In Spalte nur einen Eintrag zulassen
23.01.2017 12:56:37
obelix-xxl
Hallo iris,
der Vorteil wäre ein "Automatismus" der im Verborgenen arbeitet und den nicht jeder auf konventionellem Wege anpassen kann.
Jede Lösung ist sicher Geschmacksache.
Deine und die Lösung von UweD funktionieren ja auch zuverlässig.
LG obelix
Anzeige
AW: In Spalte nur einen Eintrag zulassen
23.01.2017 13:15:28
UweD
Hallo
dann so...
- Rechtsclick auf den Tabellenblattreiter
- Code anzeigen
- Diesen Code dort reinkopieren
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim RNG As Range, TMP
    Set RNG = Me.Rows("7:500")
    If Not Intersect(Me.Range("B:B,E:E,I:I"), Target, RNG) Is Nothing Then
        On Error GoTo Fehler
        If WorksheetFunction.CountA(Intersect(Columns(Target.Column), RNG)) > 1 Then
            With Application
                TMP = MsgBox("Nur eine Eingabe in der Spalte erlaubt", vbCritical, "Fehler")
                .EnableEvents = False
                .Undo
            End With
        End If
    End If
    Err.Clear
Fehler:
    Application.EnableEvents = True
    If Err.Number <> 0 Then MsgBox "Fehler: " & _
        Err.Number & vbLf & Err.Description: Err.Clear
End Sub


LG UweD
Anzeige
AW: In Spalte nur einen Eintrag zulassen
23.01.2017 17:39:02
obelix-xxl
Hallo UweD,
super, Deine Lösung funktioniert prima.
Danke!!!
Kann ich einen zweiten Code der Tabelle1 zuordnen ohne "Deinen" Code zu löschen?
LG obelix
AW: In Spalte nur einen Eintrag zulassen
23.01.2017 18:17:35
UweD
Ja, andere Events ganz problemlos.
Im Change- Event die richtigen Positionen brachen.
Lg UweD
AW: In Spalte nur einen Eintrag zulassen
23.01.2017 19:29:40
obelix-xxl
Hallo Uwe,
Deinen Hinweis habe ich nicht verstanden.
LG obelix
Anzeige
AW: In Spalte nur einen Eintrag zulassen
24.01.2017 08:39:49
UweD
Hallo
Im Codebereich der Tabelle werden Ereignisprozeduren abgelegt.
Es werden Ereignisse auf diesem Tabellenblatt überwacht, und dann entsprecherne Makros gestartet.
In dem Fall das Worksheet_Change (also wenn im Blatt eine Zelle geändert wird.
Es gibt aber jede Menge andere Ereignisse
- Worksheet_SelectionChange (wenn eine Zelle ausgewählt wird / egal ob mit Tastatur oder Maus)
- Worksheet_Activate (wenn das Blatt aktiviert wird)
- Worksheet_BeforeRightClick (wenn in einer Zelle eine Rechtsclick mit der Maus vorgenommen wird)
- usw.
Alle diese Proceduren laufen unabhängig voneinander.
Wenn du nun weiteren Code im Worksheet_Change abarbeiten lassen möchtest, dann solltest du aufpassen, wo / wie du diesen Code anordnest.
LG UweD
Anzeige
AW: In Spalte nur einen Eintrag zulassen
24.01.2017 09:35:06
obelix-xxl
Hallo Uwe,
Danke für die ausführliche Erklärung.
Heute morgen habe ich hier weitere Hinweise gefunden, das hat auch bei der Lösung geholfen:
https://msdn.microsoft.com/de-de/library/office/hh211482(v=office.14).aspx
Beide Codes habe ich jetzt der Tabelle1 zugeordnet, einmal zu Change und den zweiten Code zu selction_change. Die gewünschte Funktion ist jetzt gegeben.
Ich habe wieder etwas Neues gelernt.
Nochmals meinen Dank.
LG obelix
Anzeige
gern geschehen owT
25.01.2017 09:31:28
UweD
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

In Spalte nur einen Eintrag zulassen


Schritt-für-Schritt-Anleitung

Um in bestimmten Spalten nur einen Eintrag zuzulassen, kannst du die Funktion der Datenüberprüfung in Excel verwenden. Hier ist eine einfache Anleitung, um dies zu erreichen:

  1. Spalte markieren: Wähle den Bereich von B7 bis B500 aus.
  2. Datenüberprüfung öffnen: Gehe zu Daten > Datenüberprüfung.
  3. Einstellungen anpassen:
    • Wähle im Reiter Einstellungen unter Zulassen die Option Benutzerdefiniert.
    • Gib folgende Formel ein:
      =ANZAHL2($B$7:$B$500)<=1
  4. Fehlermeldung einstellen: Wechsle zum Reiter Fehlermeldung und gib deinen Hinweistext, z.B. "Spalte B: nur eine Auswahl erlaubt!", ein.
  5. Für andere Spalten wiederholen: Wiederhole die obigen Schritte für die Spalten E, I und L.

Mit dieser Methode kannst du sicherstellen, dass in jeder der definierten Spalten nur ein Eintrag erlaubt ist.


Häufige Fehler und Lösungen

  • Fehler: Die Fehlermeldung wird nicht angezeigt, wenn mehr als ein Eintrag gemacht wird.

    • Lösung: Stelle sicher, dass die Formel in der Datenüberprüfung korrekt eingegeben wurde. Prüfe, ob ANZAHL2 anstelle von ANZAHL verwendet wird.
  • Fehler: Der Hinweistext erscheint nicht.

    • Lösung: Überprüfe die Einstellungen unter dem Reiter Fehlermeldung und stelle sicher, dass die Option Fehlermeldung nach ungültiger Eingabe anzeigen aktiviert ist.

Alternative Methoden

Wenn du eine automatisierte Lösung bevorzugst, kannst du ein Makro verwenden. Hier ist ein Beispiel für einen VBA-Code, der verhindert, dass mehr als ein Eintrag in den Spalten B, E, I und L gemacht wird:

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim RNG As Range, TMP
    Set RNG = Me.Rows("7:500")

    If Not Intersect(Me.Range("B:B,E:E,I:I"), Target, RNG) Is Nothing Then
        On Error GoTo Fehler
        If WorksheetFunction.CountA(Intersect(Columns(Target.Column), RNG)) > 1 Then
            With Application
                TMP = MsgBox("Nur eine Eingabe in der Spalte erlaubt", vbCritical, "Fehler")
                .EnableEvents = False
                .Undo
            End With
        End If
    End If
    Exit Sub
Fehler:
    Application.EnableEvents = True
    If Err.Number <> 0 Then MsgBox "Fehler: " & Err.Number & vbLf & Err.Description: Err.Clear
End Sub

Um diesen Code zu verwenden, musst du ihn im VBA-Editor des entsprechenden Arbeitsblattes einfügen.


Praktische Beispiele

  1. Eintrag in Spalte B, E, I oder L: Wenn der Benutzer in die Spalte B ein x eingibt und versucht, ein weiteres x hinzuzufügen, wird eine Fehlermeldung angezeigt, die darauf hinweist, dass nur eine Auswahl erlaubt ist.

  2. Anwendung in anderen Bereichen: Du kannst die gleiche Logik auf andere Spalten oder Bereiche anwenden, indem du die Zellbezüge in der Formel oder im VBA-Code entsprechend änderst.


Tipps für Profis

  • Datenüberprüfung kombinieren: Du kannst mehrere Bedingungen in der Datenüberprüfung verwenden, um komplexere Eingaberegeln zu erstellen.

  • Makros optimieren: Stelle sicher, dass dein VBA-Code effizient ist, indem du unnötige Berechnungen vermeidest und den Code so einfach wie möglich hältst.

  • Schutzrechte: Überlege, ob du die Blätter oder Zellen vor unbefugtem Zugriff schützen möchtest, um die Integrität der Daten zu gewährleisten.


FAQ: Häufige Fragen

1. Kann ich die Datenüberprüfung auch für andere Datenformate verwenden?
Ja, die Datenüberprüfung kann für verschiedene Datenformate wie Zahlen, Texte und Datum konfiguriert werden.

2. Was passiert, wenn ich eine Eingabe mache, die nicht zulässig ist?
In diesem Fall wird die Fehlermeldung angezeigt, die du in den Einstellungen für die Datenüberprüfung definiert hast. Du kannst die Eingabe nicht speichern, bis sie gültig ist.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige