Office: Gültigkeitsprüfung "Liste" bei Änderung aktualisie

Helfe beim Thema Gültigkeitsprüfung "Liste" bei Änderung aktualisie in Microsoft Excel Hilfe um das Problem gemeinsam zu lösen; Liebe Excel-cracks Ich habe eine kleine Frage betreffend der Gültigkeitsprüfung. In Tabelle "Name" habe ich von Zelle A2:A8 einen Namen... Dieses Thema im Forum "Microsoft Excel Hilfe" wurde erstellt von maria85, 7. März 2011.

  1. maria85 Erfahrener User

    Gültigkeitsprüfung "Liste" bei Änderung aktualisie


    Liebe Excel-cracks

    Ich habe eine kleine Frage betreffend der Gültigkeitsprüfung.

    In Tabelle "Name" habe ich von Zelle A2:A8 einen Namen definiert. In Tabelle "Kunden" habe ich von A2:A7 eine Gültigkeitsprüfung mit Liste definiert. (siehe Anhang)

    Angenommen ich habe einen Namen falsch geschrieben und muss in neu schreiben, was muss ich tun damit diese Änderung auch in der Gültigkeitsprüfung übernommen wird.

    Zum Beispiel hatte ich den Namen "Petraa" falsch geschrieben. Wenn ich den Namen in der Tabelle "Namen" ändere, wird die Korrektur nicht in die Gültigkeitsprüfung übernommen.

    Gibt es eine Möglichkeit dies mit einer Excel Formel zu tun, oder müsste ich einen VBA Code schreiben? :?: Der Makrorecorder hat bei der Aufzeichnung der Gültigkeitsprüfung folgenden Code geschrieben:


    Code:
    Sub Namen()
    ' Namen definieren
        ActiveWorkbook.Names.Add Name:="Name", RefersToR1C1:="=Name!R2C1:R8C1"
    End Sub
    
    Sub Gültigkeitsprüfung()
    'Dropdown in Tabelle "Kunde"
    
        With Selection.Validation
            .Delete
            .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
            xlBetween, Formula1:="=Name"
            .IgnoreBlank = True
            .InCellDropdown = True
            .InputTitle = ""
            .ErrorTitle = ""
            .InputMessage = ""
            .ErrorMessage = ""
            .ShowInput = True
            .ShowError = True
        End With
        Selection.AutoFill Destination:=Range("A2:A14"), Type:=xlFillDefault
    
    End Sub
    Danke für eure Tipps.

    Maria

    Arbeitsblatt mit dem Namen 'Name'
     A
    1Name
    2Hans
    3Markus
    4Heinz
    5Igor
    6Anna
    7Petraa
    8Mike
    NameBezug
    Name=Name!$A$2:$A$8

    [parsehtml]
    Arbeitsblatt mit dem Namen 'Kunde'
     AB
    1KundeWohnort
    2HansBerlin
    3HeinzHamburg
    4MarkusBremen
    5PetraaZürich
    6IgorStuttgart
    7AnnaLeipzig
    <tr><td valign='top'>
    NameBezug
    Name=Name!$A$2:$A$8
    </td><td valign='top'>
    ZelleGültigkeitstypOperatorWert1Wert2
    A2Liste =Name 
    A3Liste =Name 
    A4Liste =Name 
    A5Liste =Name 
    A6Liste =Name 
    A7Liste =Name 
    </td></tr></table>[/parsehtml]
     
    Zuletzt von einem Moderator bearbeitet: 30. November 2020
    maria85, 7. März 2011
    #1
  2. Beverly
    Beverly Erfahrener User
    Hi Petra,

    die Korrektur wird beim Ändern der Liste schon korrekt in die Gültigkeitsrüfung übernommen, du musst sie in der betreffenden Zelle (in deinem Beispiel A5 in Tabelle Kunde) nur noch einmal neu auswählen.

    Bis später,
    Karin
     
    Beverly, 7. März 2011
    #2
  3. maria85 Erfahrener User
    Hallo Karin

    Ja ich habe das gesehen.
    Gibt es eine Möglichkeit dass diese Änderung automatisch übernommen wird, ohne dass ich es selber neu auswählen muss?

    Gruss
    Maria
     
    maria85, 7. März 2011
    #3
  4. Beverly
    Beverly Erfahrener User

    Gültigkeitsprüfung "Liste" bei Änderung aktualisie

    Hi Maria,

    kopiere den folgenden Code ins Codemodul des Tabellenblattes "Name":
    Code:
    Option Explicit
    Dim strName As String
    
    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
       If Not Intersect(Target, Range("Name")) Is Nothing Then
          If Target.Count = 1 Then strName = Target
       End If
    End Sub
    
    Private Sub Worksheet_Change(ByVal Target As Range)
       Dim rngZelle As Range
       Dim strStart As String
       Dim strNeu As String
       If Not Intersect(Target, Range("Name")) Is Nothing Then
          If Target.Count = 1 Then
             strNeu = Target
             With Worksheets("Kunde").Columns(1)
                Set rngZelle = .Find(strName, lookat:=xlWhole)
                If Not rngZelle Is Nothing Then
                   strStart = rngZelle.Address
                   Do
                      .Cells(rngZelle.Row, 1) = strNeu
                      Set rngZelle = .FindNext(rngZelle)
                      If rngZelle Is Nothing Then Exit Do
                   Loop While Not rngZelle Is Nothing And rngZelle.Address <> strStart
                End If
             End With
          End If
       End If
    End Sub
    
    Bis später,
    Karin
     
    Beverly, 7. März 2011
    #4
  5. maria85 Erfahrener User
    Hallo Karin

    Tut mir leid dass ich dir erst jetzt antworte. Ich habe den Code probiert und er funktioniert tipp-topp. Die Angaben werden geändert.

    Wenn ich aber einen neuen Name eintrage, trägt mir die Formel im Blatt "Kunden" von der ersten freien Zeile bis Zeile 65536 ein.

    Kann das Problem in diesem Codeabschnitt liegen?

    Code:
    If rngZelle Is Nothing Then Exit Do
    Loop While Not rngZelle Is Nothing And rngZelle.Address <> strStart
    Anbei noch einmal die Datei mit der Formel.

    Danke für deine Hilfe.

    Maria

    Arbeitsblatt mit dem Namen 'Name'
     A
    1Name
    2Hans
    3Markus
    4Heinz
    5Igor
    6Anna
    7Petra
    8Patrick

    Arbeitsblatt mit dem Namen 'Kunde'
     AB
    1KundeWohnort
    2HansBerlin
    3HeinzHamburg
    4MarkusBremen
    5PetraZürich
    6IgorStuttgart
    7AnnaLeipzig
    8Patrick 
    9Patrick 
    10Patrick 
    11Patrick 
    12Patrick 
    13Patrick 
    14Patrick 
    15Patrick 
    16Patrick 
    17Patrick 
    18Patrick 
    19Patrick 
    20Patrick 
    21Patrick 
    22Patrick 
    23Patrick 
    24Patrick 
    25Patrick 
    26Patrick 
    27Patrick 
    28Patrick 
    29Patrick 
    30Patrick 
    31Patrick 
    32Patrick 
    33Patrick 
    34Patrick 
    35Patrick 
    36Patrick 
    37Patrick 
    38Patrick 
    39Patrick 
    40Patrick 
    41Patrick 
    42Patrick 
    43Patrick 
    44Patrick 
    45Patrick 
    46Patrick 
     
    Zuletzt von einem Moderator bearbeitet: 30. November 2020
    maria85, 9. März 2011
    #5
  6. Beverly
    Beverly Erfahrener User
    Hi Maria,

    mir war nicht bekannt, dass auch neue Namen hinzugefügt werden sollen.
    Code:
    Private Sub Worksheet_Change(ByVal Target As Range)
       Dim rngZelle As Range
       Dim strStart As String
       Dim strNeu As String
       If Not Intersect(Target, Range("Name")) Is Nothing Then
          If Target.Count = 1 Then
             If strName <> "" Then
                strNeu = Target
                With Worksheets("Kunde").Columns(1)
                   Set rngZelle = .Find(strName, lookat:=xlWhole)
                   If Not rngZelle Is Nothing Then
                      strStart = rngZelle.Address
                      Do
                         .Cells(rngZelle.Row, 1) = strNeu
                         Set rngZelle = .FindNext(rngZelle)
                         If rngZelle Is Nothing Then Exit Do
                      Loop While Not rngZelle Is Nothing And rngZelle.Address <> strStart
                   End If
                End With
             End If
          End If
       End If
    End Sub
    
    Wenn die Namensliste dynamisch sein soll, verwende statt eines festen Bereichs diese Formel unter Bezieht sich auf:

    =BEREICH.VERSCHIEBEN(Name!$A$2;;;ANZAHL2(Name!$A:$A)-1;1)

    Bis später,
    Karin
     
    Beverly, 9. März 2011
    #6
  7. maria85 Erfahrener User
    Bereich.Verschieben

    Hi Karin

    Ja tut mir leid, hätte es dir sagen sollen dass auch weitere Namen hinzugefügt werden. Mein Arbeitskollege hatte sich den Kopf daran zerbrochen, lach :-)

    Ich finde den bereich.verschieben code sehr gut und werde ihn benutzen

    Vielen Dank und liebe Grüsse

    Maria
     
    maria85, 10. März 2011
    #7
  8. Thema:

    Gültigkeitsprüfung "Liste" bei Änderung aktualisie

    Die Seite wird geladen...
    1. Gültigkeitsprüfung "Liste" bei Änderung aktualisie - Similar Threads - Gültigkeitsprüfung Liste Änderung

    2. Logik für Datenerfassung / Gültigkeitsprüfung

      in Microsoft Access Hilfe
      Logik für Datenerfassung / Gültigkeitsprüfung: Hallo Ich mache gerade meine ersten Gehversuche in Access. Daher weiss ich auch nicht wie ich nach meiner Fragestellung hier am besten suchen sollte noch ob mein gewählter Titel auf die richtige...
    3. Gültigkeit, erste Stelle fix, ab zweiter Stelle frei

      in Microsoft Excel Hilfe
      Gültigkeit, erste Stelle fix, ab zweiter Stelle frei: Hallo zusammen, in einer Excel-Tabelle sollen in bestimmten Zellen lediglich folgende Eingaben möglich sein: A;B;P;U Das ist soweit auch über die Gültigkeitsregeln kein Problem. Nun soll...
    4. Mehrere Zellen nach bestimmten Kategorien sortieren?

      in Microsoft Excel Hilfe
      Mehrere Zellen nach bestimmten Kategorien sortieren?: Hi ihr! In der Arbeit verwenden wir Excel 2000. Folgendes: Angenommen ich habe 3 verschiedene Spalten mit mehreren Zeilen. Spalte 1: "Kategorie" (z. B. Kneipe, Pizzeria) Spalte 2: "Bezeichnung"...
    5. Gültigkeitsprüfung verschwindet beim versenden der Datei

      in Microsoft Excel Hilfe
      Gültigkeitsprüfung verschwindet beim versenden der Datei: Guten Tag, ich habe in meinem Sheet 4 Tabellenblätter. 1. Seite Auswertung, 2 Seite Daten, 3 + 4.. Seite Druckbereich Erstellt wurde das in Excel 2010. Ohne Probleme kann ich auf S. 1 eine Liste...
    6. Gültigkeitsprüfung

      in Microsoft Excel Hilfe
      Gültigkeitsprüfung: Also heute aber ... Folgendes Problem bei Excel 2003 In einer Datei habe ich zwei Tabellenblätter A und B; In Tabelle A wird für jedes Fzg der Kraftstoffverbrauch eingetragen Spalte B bis K...
    7. Zahleingabe nur nach Gültigkeitsprüfung - Wie?

      in Microsoft Excel Hilfe
      Zahleingabe nur nach Gültigkeitsprüfung - Wie?: Moin, stehe gerade auf dem Schlauch. In Spalte N habe ich eine Auswahlliste von vers. Aufträgen (Aufbau, Abbau, etc.) über Datengültigkeit gelöst. Wie kriege ich es hin, dass ich in Spalte O...
    8. Gültigkeitsprüfung mit 2 Kriterien

      in Microsoft Excel Hilfe
      Gültigkeitsprüfung mit 2 Kriterien: Hallo Team, ich habe in Zelle C32 folgende Gültigkeitsprüfung: =WENN(C32<>"";C32="x") In Zelle C33 steht folgende Gültigkeitsprüfung: =WENN(C34<>"";C33="") Nun möchte ich Zelle C33 und...
    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