Office: (Office 2016) Wert nur 1x je Spalte zulassen

Helfe beim Thema Wert nur 1x je Spalte zulassen in Microsoft Excel Hilfe um das Problem gemeinsam zu lösen; Hallo, ich habe folgendes Problem: In der angehängten Tabelle können die Werte Shuttle A sowie Shuttle B in den Kategorien "Barcodescanner"; "2D... Dieses Thema im Forum "Microsoft Excel Hilfe" wurde erstellt von Creatur, 16. Oktober 2019.

  1. Wert nur 1x je Spalte zulassen


    Hallo,

    ich habe folgendes Problem:

    In der angehängten Tabelle können die Werte Shuttle A sowie Shuttle B in den Kategorien "Barcodescanner"; "2D Scanner"; sowie "Long Range Scanner" vergeben werden.

    Ich möchte aber ereichen, dass wenn Shuttle A in einer der 3 Kategorien bereits vergeben wurde, es in den anderen beiden nicht mehr vergeben (gar nicht mehr ausgewählt) werden kann.

    Das Gleiche soll dann auch für Shuttle B gelten und zwar unabgängig von Shuttle A. Wenn z.B Shuttle A bei den Barcodescanner vergeben wurde, soll Shuttle B trotzdem noch bei den 2D- und Long Range Scannern vergeben werden können. - Aber auch falls erforderlich bei den Barcodescannern.

    In wiefern muss ich denn die Formel hierzu abändern?

    Vielen Dank im Voraus für eure Hilfe!
     
    Creatur, 16. Oktober 2019
    #1
  2. Exl121150 Erfahrener User
    Hallo,

    ich habe in der beiliegenden Excel-Datei gemäß deinen Wünschen die Dropdownlisten-Behandlung der 3 dynamischen Listenbereiche "DropdownBarcode", "Dropdown2D" und "DropdownLongRange" mittels des VBA-Makros "Sub Teste_DropDonws(TestEintrag As String)" angepasst.
    Es ist im allgemeinen Codemodul "Modul1_DD" enthalten.
    Aufgerufen wird es am Ende deiner "Private Sub Worksheet_Change(ByVal Target As Range)", wobei ich die Stelle durch Kommentar gekennzeichnet habe. Sonst habe ich an deiner Worksheet_Change-Prozedur keine Änderung vorgenommen.

    Geändert habe ich jedoch die dynamische Bereichsgrößenermittlung deiner 3 Zellbereiche der anfangs erwähnten Dropdown-Listenbereiche.

    Im Folgenden der VBA-Code für das DD-Listenhandling:
    Code:
    Option Explicit
    
    'Handelt es sich bei "TestEintrag" um einen Wert aus "arTest" ("Shuttle A", "Shuttle B"),
    'so wird dieser "TestEintrag" aus jedem der 3 Spaltenbereiche
    '  "DropDownBarcode", "DropDown2D", "DropDownLongRange"
    'entfernt.
    
    Sub Teste_DropDowns(TestEintrag As String)
      Dim arTest As Variant
      
      arTest = Array("Shuttle A", "Shuttle B")
      If UBound(Filter(arTest, TestEintrag, False)) = 0 Then
      
        'In "TestEintrag" befindet sich ein Wert aus "arTest"
        '?berpr?fe, ob dieser Wert in einer DropDown-Liste enthalten ist:
        '  - falls ja:   Entferne ihn aus der DD-Liste.
        '  - falls nein: Lasse DD-Liste unver?ndert.
        On Error GoTo Err_Tst_DDL
        Application.EnableEvents = False
          
        Modif_DropDown "DropDownBarcode", TestEintrag
        Modif_DropDown "DropDown2D", TestEintrag
        Modif_DropDown "DropDownLongRange", TestEintrag
          
    Err_Tst_DDL:
        Application.EnableEvents = True
      End If
      
    End Sub
    '
    'In "DDListe" ist der Adressbereich (als String) einer DropDown-Liste enthalten,
    'aus der der Inhalt der Stringvariablen "TestEintrag" als Listeneintrag entfernt wird:
    '
    Sub Modif_DropDown(DDListe As String, TestEintrag As String)
      Dim rngDDListe As Range, rngDD As Range
      Dim ZlDf As Long
      
      On Error GoTo Err_Mod_DD
      ZlDf = 0
      Set rngDDListe = Range(DDListe$)
      For Each rngDD In rngDDListe.Cells
        With rngDD
          If .Value = TestEintrag$ Then
            ZlDf = ZlDf - 1: .Value = ""
          Else
            If ZlDf Then
              .Offset(ZlDf, 0).Value = .Value
              .Value = ""
            End If
          End If
        End With
      Next rngDD
    Err_Mod_DD:
    End Sub
    
    
     
    Exl121150, 17. Oktober 2019
    #2
  3. Hallo,

    vielen Dank für die Antwort.
    Jedoch benötige ich noch einmal Hilfe. Ich weiß nämlich nicht an welcher Stelle ich diesen Code einfügen muss.

    Es ist das erste Mal, dass ich mit VBA in Kontakt komme.
     
    Creatur, 18. Oktober 2019
    #3
  4. Exl121150 Erfahrener User

    Wert nur 1x je Spalte zulassen

    Hallo,

    genau genommen müsste sich dieses Problem von selbst erübrigen, wenn du die Excel-Datei "Creatur_GeräteÜbersicht.xlsm", die ich am Ende meines letzten Postings hochgeladen habe, bei dir herunterlädst. Im Anschluss daran wirst du möglicherweise gefragt, ob du die Bearbeitung aktivieren möchtest bzw. ob du die Makros aktivieren möchtest. Das musst (beidesmal) natürlich bejahen.

    1) Das von mir programmierte Makro "Teste_DropDowns(TestEintrag As String)"- genau genommen sind es 2 Prozeduren - befindet sich im allgemeinen Codemodul "Modul1_DD". Ich habe es nur zur Verdeutlichung - und damit auch sonstige interessierte User es sehen können - im Code-Fenster nochmals wiedergegeben.

    2) Im Codemodul des Arbeitsblattes "Übersicht" hast du ja bereits die Prozedur "Worksheet_Change(ByVal Target As Range)" eingefügt. Diese dient der Ereignisbehandlung im Arbeitsblatt "Übersicht". Falls sich nämlich in diesem Arbeitsblatt in einer Zelle ("Target") der Inhalt ändert zB. durch Tastatureingaben, so wird diese Prozedur ausgeführt und ihr die Zelle, in der die Änderung stattfand, mit übergeben.
    3) Kurz vor Ende dieser Prozedur gibt es im Makro die Marke "Ende:", zu der du mehrmals im Makro mittels "GoTo Ende" springst. Auf diese Marke folgt die Anweisung "Application.EnableEvents = True", mit der die Ereignisverarbeitung in Excel wieder eingeschaltet wird.
    4) Zwischen dieser Anweisung und dem Prozedurende ("End Sub") habe ich zuerst 3 Zeilen Kommentar eingefügt und dann noch die Zeile "Teste_DropDowns Target.Value", mit der mein Makro aufgerufen wird. Die 3 Zeilen Kommentar beschreiben kurzgefasst, was mein Makro macht. Im folgenden Code-Fenster nochmals der Anfang und das Ende der Prozedur "Worksheet_Change(…)":
    Code:
    Option Explicit
     
    [B]Private Sub Worksheet_Change(ByVal Target As Range)[/B]
     
        
        If Target.CountLarge > 1 Then
            MsgBox "Es darf jeweils nur eine Zelle ge?ndert werden !", vbExclamation
            Exit Sub
        End If
        
        Application.EnableEvents = False
    
        'RF Scanner
        '.....
        '..... usw. …..
        '..... usw. …..
         
    [B]Ende:
        Application.EnableEvents = True[/B]
        
        'Entferne ausgewählten DropDownlisteneintrag "Shuttle A" bzw. "Shuttle B"
        'aus den DropDownlisten "DropdownBarcode", "Dropdown2D", "DropdownLongRange",
        'falls er dort noch enthalten sein sollte:
        [B][COLOR="#0000CD"]Teste_DropDowns Target.Value[/COLOR][/B]
    
    [B]End Sub
    [/B]
     
    Exl121150, 19. Oktober 2019
    #4
  5. Hallo,

    es funktioniert wie gewünscht. Jedoch habe ich noch ein Problem festgestellt:

    Wenn z.B Shuttle A einmal vergeben wurde und dieser Wert wird helöscht oder durch einen anderen ersetzt; z.B "IT", so kann "Shuttle A" in der ganzen Tabelle nicht mehr vergeben werden, da die entsprechende Formel im Tabellenblatt "Auswahl" in der Spalte "Dropdown" bei der jeweiligen Geräteart entfernt wird.

    Kann man das auch noch itgendwie beheben? Damit ich wenn zum Beispiel am Shuttle A kein "2D Scanner" mehr hängt sondern ein Barcodescanner ich das auch eintragen kann, ohne jedes Mal die Formel neu eintragen zu müssen?
     
    Zuletzt bearbeitet: 20. Oktober 2019
    Creatur, 19. Oktober 2019
    #5
  6. Exl121150 Erfahrener User
    Hallo,

    um das zu ermöglichen, habe ich zum Arbeitsblatt "Übersicht" zur bereits bestehenden Ereignisbehandlung für das Change-Event auch noch eine Behandlung des DoubleClick-Event hinzugefügt.

    1. Angenommen:
      • in Spalte I des Arbeitsblattes "Übersicht" (Standort-Spalte für den 2D-Scanner) ist "Shuttle A" eingetragen.
      • Dieser Eintrag soll von dort entfernt werden und statt dessen in eine Zelle von Spalte F (Standort für den Barcodescanner) eingetragen werden.
    2. Und so funktioniert es:
      • Einen Doppelklick auf "Shuttle A" in der Spalte I ausführen. Daraufhin beginnt ein Laufrahmen um diese Zelle herum zu laufen.
      • Danach einen Doppelklick auf die (leere) Zielzelle in Spalte F ausführen. Der Inhalt ("Shuttle A") in der Quellzelle samt Laufrahmen verschwindet und "Shuttle A" erscheint in der Zielzelle.
      • Die Punkte 2a) bzw. 2b) funktionieren nur, wenn es sich um die Standortspalten von Barcodescanner/2D-Scanner/Long-Range-Scanner handelt und zwar mit den Werten Shuttle A/Shuttle B.
     
    Exl121150, 21. Oktober 2019
    #6
Thema:

Wert nur 1x je Spalte zulassen

Die Seite wird geladen...
  1. Wert nur 1x je Spalte zulassen - Similar Threads - Wert Spalte zulassen

  2. Wenn der Wert größer ist als 10 will ich die Differenz in einer Spalte haben

    in Microsoft Excel Hilfe
    Wenn der Wert größer ist als 10 will ich die Differenz in einer Spalte haben: Hallo zusammen, auf dem Bild im Anhang ist mein Zeiterfassungssystem zusehen. Spalte E ist meine Gesamtstundenzahl, wenn diese Zahl größer ist als 10 möchte ich die Differenz daraus in Spalte I...
  3. Häufigste Wert/Text aus einer Spalte ermitteln ohne leere oder 0

    in Microsoft Excel Hilfe
    Häufigste Wert/Text aus einer Spalte ermitteln ohne leere oder 0: Hallo zusammen, versuche verzweifelt ein Lösung zu finden, wie ich die 0 ignorieren kann bei der Auswertung. Ich möchte die häufigste Wert/Text einer Spalte angezeigt bekommen. Problem sind die 0...
  4. Zeilen Nummern gleicher Werte einer Spalte ausgebenn

    in Microsoft Excel Hilfe
    Zeilen Nummern gleicher Werte einer Spalte ausgebenn: Hallo, Ich habe eine "Tabelle1" mit variabel vielen Zeilen, es können durchaus mehr als tausend sein. Wie kann ich die Zeilennummern gleicher Werte auslesen und in eine andere "Tabelle 2"...
  5. Excel VBA - Code Hilfe (Spalten, Werte kopieren etc.)

    in Microsoft Excel Hilfe
    Excel VBA - Code Hilfe (Spalten, Werte kopieren etc.): Hallo, ich benötige Hilfe für ein Problem, welches ich leider selbst schwerlich als Anfänger nicht lösen kann: Ich möchte von dem Tabellenblatt "Tabelle1" aus den Zellen B8:B14, K8:K14, B18:B25,...
  6. Wert aus Datenzeile filtern & in eigene Spalte bringen

    in Microsoft Excel Hilfe
    Wert aus Datenzeile filtern & in eigene Spalte bringen: Hallo, ich möchte anhand von Ernteerträge zu gewissen Zeitpunkten (Tagen, nach Datum sortiert) welche in einer Zeile stehen, das Datum der 1. Ernte heraussortieren. Dieses soll dann in einer...
  7. Werte in Spalten vergleichen und farbig markieren

    in Microsoft Excel Hilfe
    Werte in Spalten vergleichen und farbig markieren: Moin zusammen, ich habe eine Pivottabelle erstellt. Hier habe ich jetzt verschiedene Parameter nach meine Wünsche angepasst und habe eine Übersicht über Kunden und Umsätze 2022 und 2023 In Spalte...
  8. Gleiche Werte in separate Spalte sortieren

    in Microsoft Excel Hilfe
    Gleiche Werte in separate Spalte sortieren: Guten Abend, ich bin auf der Suche nach der richtigen Formel. Habe schon einiges ausprobiert, aber das Richtige war noch nicht dabei. Ich habe 4 Teilnehmer die gegeneinander antreten. in B3:B6...
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden