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

Forumthread: Datenüberprüfung für ganze Spalte

Datenüberprüfung für ganze Spalte
26.06.2014 16:18:54
Lisa
Hallo,
Userbild
ich möchte eine Datenüberprüfung machen. Sprich in Zeile M2 habe ich ein Auswahlfeld mit verschiedenen Zahlen (die ich aus dem anderen Blatt ziehe: E2:BY2). Soweit so gut.
1.)Nun soll aber in der ganzen Spalte M eine Datenüberprüfung gemacht werden.
Sprich für M3,M4 usw.
2.)Zwar kann ich wieder für jede Zeile eine Datenüberprüfung machen, jedoch ist die Spalte M etwas länger...
Ich kann zwar die Datenüberprüfung ohne die Erray Zeichen (F4/$$-Zeichen)kopieren und in die _
darunter folgenden Zellen einfügen. Dann hat man in der Auswahlliste aber entweder leere Kä _ stchen oder es wurden nicht alle Spalten des Bereichs berücksichtigt), da dieser mal länger oder mal kürzer ist. (z.B.: E2:BY2, E3:G3, E4:XYZ2). Dieses könnte man oben evtl. integrieren über

Dim i As Long
Application.ScreenUpdating = False
For i = ... To Cells(Rows.Count, ...).End(x...)

,sodass er automatisch nur bis zum letzten Wert der 2ten/3ten Zeile sucht.
Hoffe, man kann meine laienhafte Beschreibung verstehen.
LG & ein schönen Fussballabend wünscht euch
Lisa

Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Datenüberprüfung für ganze Spalte
26.06.2014 21:19:29
Beverly
Hi Lisa,
meinst du vielleicht so:
   With Range("M1:M50").Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, _
Operator:=xlBetween, Formula1:="=Szenariodaten!$E$2:$BY$2"
End With


Anzeige
AW: Datenüberprüfung für ganze Spalte
27.06.2014 00:07:28
Lisa
Lediglich das mit der Range hat geholfen.
Der andere Teil hilft mir leider nicht weiter, da bei der Quellenangabe die Spalten alle unterschiedlich lang sind.
Sieht man hier besser: Userbild
Vlt wird es hierdurch ein bisschen klarer:
Userbild
Für die Zelle M2 gilt die erste Datenüberprüfung (Quelle von dem Blatt "Szenariodaten" zwischen dem Listenbereich E2:BY2), für M3 die zweite Datenüberprüfung (E3:CS3) usw...
1. Wie kann ich aber umgehen, dass ich die jeweiligen Listenbereiche mit ihren unterschiedlichen Längen alle einzeln angeben muss?
Ich suche demnach eine Funktion, die da heißen müsste: "Gebe mir alle Daten aus Spalte E2 bzw. E3 und folgend bis einschließlich der letzten Spalte (z.B. BY2 bzw. XY3)
Jeder Vorschlag kann hilfreich sein

Anzeige
AW: Datenüberprüfung für ganze Spalte
27.06.2014 08:42:02
Beverly
Hi Lisa (dies ist die Anrede in einem Beitrag)
(hier folgt der Beitragstext)
Verstehe ich das richtig, dass jede Zeile eine andere Gültigkeit erhalten soll, die Zeilennummern in beiden Tabellenblättern identisch sind und de rBereich stets in Spalte E beginnt?
   Dim lngZeile As Long
Dim intSpalte As Integer
For lngZeile = 1 To 5
With Worksheets("Szenariodaten")
intSpalte = .Cells(lngZeile, 5).End(xlToRight).Column
End With
With Cells(lngZeile, 13).Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, _
Operator:=xlBetween, Formula1:="=Szenariodaten!" & _
Range(Cells(lngZeile, 5), Cells(lngZeile, intSpalte)).Address
End With
Next lngZeile

(und zum Schluss noch ein Gruß)


Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

Datenüberprüfung für ganze Spalte in Excel


Schritt-für-Schritt-Anleitung

Um eine Datenüberprüfung für eine ganze Spalte in Excel zu erstellen, folge diesen Schritten:

  1. Öffne deine Excel-Datei und wechsle zu dem Arbeitsblatt, in dem du die Datenüberprüfung einrichten möchtest.
  2. Wähle die gesamte Spalte M aus, indem du auf den Spaltenkopf klickst.
  3. Gehe zu Daten > Datenüberprüfung.
  4. Im Dialogfeld wähle Liste aus dem Dropdown-Menü neben "Zulassen".
  5. Gib im Feld "Quelle" den Bezug auf die Daten ein, z.B. =Szenariodaten!$E$2:$BY$2.
  6. Klicke auf OK.

Um die Datenüberprüfung für verschiedene Zeilen und unterschiedliche Längen der Listenelemente zu automatisieren, kannst du VBA verwenden. Ein Beispielscript wäre:

Dim lngZeile As Long
Dim intSpalte As Integer
For lngZeile = 1 To 50
    With Worksheets("Szenariodaten")
        intSpalte = .Cells(lngZeile, 5).End(xlToRight).Column
    End With
    With Cells(lngZeile, 13).Validation
        .Delete
        .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, _
        Operator:=xlBetween, Formula1:="=Szenariodaten!" & _
        Range(Cells(lngZeile, 5), Cells(lngZeile, intSpalte)).Address
    End With
Next lngZeile

Häufige Fehler und Lösungen

  • Fehler: Leere Auswahlmöglichkeiten
    Wenn du die Datenüberprüfung kopierst, kann es passieren, dass leere Optionen angezeigt werden. Achte darauf, dass der Bereich, den du angibst, keine leeren Zellen enthält, oder verwende eine dynamische Bereichsdefinition.

  • Fehler: Ungültige Liste
    Stelle sicher, dass der Bezug zum Listenbereich korrekt ist und die Daten in der angegebenen Quelle vorhanden sind. Überprüfe auch, ob die Daten in der richtigen Reihenfolge sortiert sind.


Alternative Methoden

Falls du eine einfachere Methode suchst, um ein Dropdown für die ganze Spalte zu erstellen, kannst du die INDIREKT-Funktion verwenden, um auf dynamische Bereiche zuzugreifen. Zum Beispiel:

=INDIREKT("Szenariodaten!E" & ZEILE() & ":BY" & ZEILE())

Diese Formel passt sich automatisch an die Zeilennummer an und kann in der Datenüberprüfung verwendet werden.


Praktische Beispiele

  1. Einfache Dropdown-Liste: Du hast eine Liste von Städten in Szenariodaten!E2:E10. Gib im Feld "Quelle" für die Datenüberprüfung =Szenariodaten!$E$2:$E$10 ein.
  2. Variable Längen: Wenn deine Liste in jeder Zeile unterschiedlich lang ist, nutze das oben genannte VBA-Script, um die Datenüberprüfung für die gesamte Spalte M automatisch einzurichten.

Tipps für Profis

  • Verwende benannte Bereiche: Statt absolute Zellverweise zu nutzen, kannst du benannte Bereiche erstellen. Das macht deine Formeln übersichtlicher.
  • Dynamische Dropdowns: Nutze die OFFSET-Funktion in Kombination mit COUNTA, um dynamische Dropdowns zu erstellen, die sich automatisch an die eingegebenen Werte anpassen.

FAQ: Häufige Fragen

1. Wie kann ich eine Datenüberprüfung für mehrere Spalten gleichzeitig einrichten?
Du kannst das VBA-Script anpassen, um mehrere Spalten gleichzeitig zu bearbeiten, indem du die entsprechenden Zellreferenzen in der Schleife anpasst.

2. Was mache ich, wenn die Daten aus verschiedenen Arbeitsblättern kommen?
Du kannst die Quelldaten in der Datenüberprüfung entsprechend anpassen, indem du den Blattnamen in der Formel angibst, z.B. =Blattname!$E$2:$BY$2.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige