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

Datenüberprüfung - Liste

Forumthread: Datenüberprüfung - Liste

Datenüberprüfung - Liste
09.02.2016 10:04:44
Uwe
Hallo liebe Experten,
Meine Tabelle beinhaltet jeden Monat eine unterschiedliche Anzahl von Zeilen, von denen immer zumindest in den Spalten A-L Werte stehen. In Spalte M hinterlege ich mit der Datenüberprüfung eine Dropdownliste. Meinen Makro habe ich so konfiguriert, dass dieser die Dropdown-Liste immer bis zur Zeile 2000 (mehr gab es noch nie) befüllt und dann die leeren Zeilen wieder löscht.
Ich würde gerne im Makro hinterlegen, dass die "Dropdown-Liste" in Spalte M immer nur bis zur letzten befüllten Zelle in Spalte A reicht. Damit würde das trotz Makro zeitaufwendige Löschen der leeren Zeilen entfallen.
Mir fehlt als VBA-Anfänger jedoch noch eine Idee, wie das zu bewerkstelligen ist.
Kann jemand helfen?

Anzeige

15
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Datenüberprüfung - Liste
09.02.2016 10:26:35
Michael
Hallo Uwe!
Teste mal so:
Sub Liste()
Dim Ws As Worksheet
Dim Bereich As Range
'Auf dem aktiven Tabellenblatt, ggf. ändern
Set Ws = ActiveSheet
With Ws
'Bereich für Datenüberprüfung bestimmen, hier:
'Spalte M von Zeile 2 bis zur letzten gefüllten Zeile in A ,ggf. ändern
Set Bereich = .Range("M2:M" & .Cells(.Rows.Count, 1).End(xlUp).Row)
End With
'Datenüberprüfung im Bereich setzen, hier:
'Liste mit 5 Pseudo-Werten, entsprechend ändern
With Bereich.Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:="Lorem,Ipsum,Dolor,Sit,Amet"
.IgnoreBlank = True
.InCellDropdown = True
.InputTitle = ""
.ErrorTitle = ""
.InputMessage = ""
.ErrorMessage = ""
.ShowInput = True
.ShowError = True
End With
End Sub
Kommentare sind im Code. Welche Datenüberprüfung Du brauchst, musst Du mangels Info selbst anpassen. Klappt?
LG
Michael

Anzeige
AW: Datenüberprüfung - Liste
09.02.2016 10:51:02
Uwe
Hallo Michael,
das ist ja der Hammer. Genau so sollte es sein. Das funktioniert wunderbar.
Ich möchte Deine Unterstützung nicht überbeanspruchen, hoffe aber, ich darf noch eine weitere Frage hierzu stellen.
Wie erhalte ich Rahmen um die Dropdown-Zellen in Spalte M und auch in Spalte N, deren Zellen frei editierbar sind?

Anzeige
AW: Datenüberprüfung - Liste
09.02.2016 11:24:43
Michael
Hallo Uwe!
das ist ja der Hammer. Genau so sollte es sein. Das funktioniert wunderbar.
Freut mich, Dankeschön!
hoffe aber, ich darf noch eine weitere Frage hierzu stellen.
Für Fragen ist das Forum da! In dem Fall ist es ja eine Folgefrage - gänzlich neue Themen solltest Du aber in einem neuen Faden aufmachen.
Mit Rahmen um M und N - ich hab noch einen Teil auskommentiert, und zwar, dass zunächst im Bereich plus rechter Nebenspalte die Rahmenlinien zunächst rückgesetzt/entfernt werden; wenn Du das auch haben willst, musst Du an entsprechender Stelle das Auskommentieren aufheben.
Sub Liste()
Dim Ws As Worksheet
Dim Bereich As Range
'Auf dem aktiven Tabellenblatt, ggf. ändern
Set Ws = ActiveSheet
With Ws
'Bereich für Datenüberprüfung bestimmen, hier:
'Spalte M von Zeile 2 bis zur letzten gefüllten Zeile in A ,ggf. ändern
Set Bereich = .Range("M2:M" & .Cells(.Rows.Count, 1).End(xlUp).Row)
End With
''    +++ Optional, wenn gewünscht Auskommentierung aufheben +++
''    Rahmenlinien im oben definierten Bereich + rechter Nebenspalte aufheben
'    With Bereich.Resize(Bereich.Rows.Count, 2)
'        .Borders(xlDiagonalDown).LineStyle = xlNone
'        .Borders(xlDiagonalUp).LineStyle = xlNone
'        .Borders(xlEdgeLeft).LineStyle = xlNone
'        .Borders(xlEdgeTop).LineStyle = xlNone
'        .Borders(xlEdgeBottom).LineStyle = xlNone
'        .Borders(xlEdgeRight).LineStyle = xlNone
'        .Borders(xlInsideVertical).LineStyle = xlNone
'        .Borders(xlInsideHorizontal).LineStyle = xlNone
'    End With
'Datenüberprüfung im Bereich setzen, hier:
'Liste mit 5 Pseudo-Werten, entsprechend ändern
With Bereich.Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:="Lorem,Ipsum,Dolor,Sit,Amet"
.IgnoreBlank = True
.InCellDropdown = True
.InputTitle = ""
.ErrorTitle = ""
.InputMessage = ""
.ErrorMessage = ""
.ShowInput = True
.ShowError = True
End With
'Einfache, gesamte Rahmenlinie in Spalte M und N, bezogen auf
'den oben definierten Bereich
Set Bereich = Bereich.Resize(Bereich.Rows.Count, 2)
Bereich.Borders(xlDiagonalDown).LineStyle = xlNone
Bereich.Borders(xlDiagonalUp).LineStyle = xlNone
With Bereich.Borders(xlEdgeLeft)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
With Bereich.Borders(xlEdgeTop)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
With Bereich.Borders(xlEdgeBottom)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
With Bereich.Borders(xlEdgeRight)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
With Bereich.Borders(xlInsideVertical)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
With Bereich.Borders(xlInsideHorizontal)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
End Sub
Passt?
LG
Michael

Anzeige
AW: Datenüberprüfung - Liste
09.02.2016 11:55:42
Uwe
Ganz hervorragend. Vielen lieben Dank. Jetzt sind die Skripte viel flüssiger.

Freut mich! Danke für die Rückmeldung, owT
09.02.2016 12:32:42
Michael

@Michael
09.02.2016 12:27:22
Rudi
Hallo,
     With Bereich.Borders(xlEdgeLeft)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
With Bereich.Borders(xlEdgeTop)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
With Bereich.Borders(xlEdgeBottom)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
With Bereich.Borders(xlEdgeRight)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
kannst du einfach durch
Bereich.Borderaround(weight:=xlthin, linestyle:=xlcontinuous)

ersetzen.
Gruß
Rudi

Anzeige
@ Rudi - Mercí! Schönen Tag! owT
09.02.2016 12:32:12
Michael

AW: Datenüberprüfung - Liste
09.02.2016 13:22:04
Uwe
Zu früh gefreut. Alles paßt soweit.
Jedoch nach dem Speichern (mit Kompatibilitätsabfrage) und dem erneuten Öffnen der .xls-Datei sind die Dropdownfelder ohne Funktion.
Vor dem letzten Schritt des Makros, also dem Speichern mit Kompatibilitätsabfrage, ist noch alles in Ordnung. Daraufhin habe ich die Datei manuell im .xlsx-Format gespeichert und wieder geöffnet. Das hat leider auch nichts gebracht.
Habt Ihr einen Tipp für mich, woran das nun wieder liegen könnte? Vielen Dank dafür im Voraus.

Anzeige
AW: Datenüberprüfung - Liste
09.02.2016 13:37:15
Michael
Hallo!
Kommt drauf an wie Du in Deinem (uns unbekannten) Code speicherst - vermutlich übergibst Du eine falsche Dateiendung; mit .xlsx werden keine Makros gespeichert, dafür ist .xlsm erforderlich.
Fragen: Die Ursprungsdatei ist eine .xls (erstellt mit Excel-Version vor 2007)? Du speicherst die Datei über ein Makro? Welchen Dateityp gibst Du da an?
LG
Michael

Anzeige
AW: Datenüberprüfung - Liste
09.02.2016 13:54:36
Uwe
Hallo Michael,
die Ursprungsdatei ist eine in Excel 2007 erstellte .xls. Alle meine Makros liegen in der Personal.xlsb.
Die .xls wird also über einen Makro der Personal.xlsb bearbeitet, im selben Format gespeichert und wieder geschlossen. Und kurz vor dem finalen Speichern erhalte ich die Kompatibilitätsabfrage. Sofern ich da auf weiter klicke und die Datei abgespeichert wird, sind die Dropdownfelder weg. Sehr sehr merkwürdig...

Anzeige
AW: Datenüberprüfung - Liste
09.02.2016 14:16:21
Michael
Hallo Uwe!
Ist in der Tat sehr merkwürdig. Gibt Dir der Kompatibilitätshinweis noch Infos zu Funktionalitätsverlusten o.Ä.?
Speichere die Ursprungsdatei dennoch einmal manuell als .xlsx ab - und bearbeite dann über Deine Makros in der persönlichen Arbeitsmappe. Bleibt das Problem bestehen?
LG
Michael

Anzeige
AW: Datenüberprüfung - Liste
09.02.2016 14:25:25
Uwe
Ok, habe ich gemacht. Nach dem Öffnen erhalten ich folgenden Hinweis: "Von Excel wurde unlesbarer Inhalt in der "Datei.xlsx" gefunden. Möchten Sie den Inhalt dieser Arbeitsmappe wiederherstellen? Wenn Sie der Quelle dieser Arbeitsmappe vertrauen, klicken Sie auf "Ja"".
Ich habe mal vertraut und auf "Ja" geklickt und dann ging es auch gleich weiter mit
"Die Datei konnte von Excel geöffnet werden, in dem der nicht lesbare Inhalt repariert oder entfernt wurde". Entferntes Feature: Datenüberprüfung von xl/worksheets/sheet1.xml-Part.
Hatte ich jetzt so auch noch nie...

Anzeige
AW: Datenüberprüfung - Liste
09.02.2016 14:40:55
Michael
Hmm... Du hast die Datei manuell als .xlsx gespeichert, dann Deine Makros drüberlaufen lassen - und beim erneuten Öffnen kam die Meldung bzgl. entfernter Features? Nochmal die Frage: ist irgendwo in Deinen Makros in der persönlichen Arbeitsmappe ein Punkt der die Datei mit einem "alten" Dateityp (.xls) speichert?
Ansonsten bin ich überfragt, da ich's nicht nachvollziehen oder -stellen kann.
LG
Michael

Anzeige
AW: Datenüberprüfung - Liste
09.02.2016 14:56:47
Uwe
Genau so. Es gibt im Makro eine .xls-Datei, von der eine Überschrift eingefügt wird. Aber zwischendurch mit die .xlsx nicht gespeichert, erst zum Schluß.
Trotzdem vielen Dank für Deine (Eure) Mühe. Ich habe wieder etwas gelernt. :-)
Nun verwende ich erst einmal meinen "Zeilenlösch"-Makro weiter. Der hat bisher funktioniert, dauerte nur ein paar Minuten. Vielleicht komme ich ja mal durch einen Zufall darauf, was hier falsch gelaufen ist.
Gruß,
Uwe

Anzeige
Okay, viel Erfolg! owT
09.02.2016 15:10:36
Michael
;

Forumthreads zu verwandten Themen

Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Infobox / Tutorial

Datenüberprüfung in Excel: Dropdown-Listen erstellen


Schritt-für-Schritt-Anleitung

Um eine Datenüberprüfung mit Dropdown-Listen in Excel zu erstellen, kannst Du das folgende VBA-Skript verwenden. Dieses Skript passt die Dropdown-Liste in Spalte M automatisch an die Anzahl der gefüllten Zellen in Spalte A an.

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.
  2. Füge ein neues Modul hinzu: Rechtsklick auf "VBAProject (DeineDatei.xlsx)" > Einfügen > Modul.
  3. Kopiere und füge den folgenden Code ein:
Sub Liste()
    Dim Ws As Worksheet
    Dim Bereich As Range
    ' Auf dem aktiven Tabellenblatt, ggf. ändern
    Set Ws = ActiveSheet
    With Ws
        ' Bereich für Datenüberprüfung bestimmen
        Set Bereich = .Range("M2:M" & .Cells(.Rows.Count, 1).End(xlUp).Row)
    End With
    ' Datenüberprüfung im Bereich setzen
    With Bereich.Validation
        .Delete
        .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
        xlBetween, Formula1:="Lorem,Ipsum,Dolor,Sit,Amet"
        .IgnoreBlank = True
        .InCellDropdown = True
        .ShowInput = True
        .ShowError = True
    End With
End Sub
  1. Führe das Makro aus, um die Dropdown-Liste zu erstellen.

Häufige Fehler und Lösungen

  1. Dropdown-Felder sind nach dem Speichern verschwunden:

    • Stelle sicher, dass Du die Datei im richtigen Format speicherst. Verwende .xlsm für Dateien mit Makros anstelle von .xlsx.
  2. Kompatibilitätsprobleme:

    • Wenn Du eine Datei, die in einer älteren Excel-Version erstellt wurde, öffnest, kann es sein, dass einige Funktionen nicht verfügbar sind. Überprüfe die Kompatibilitätseinstellungen und aktualisiere die Datei.

Alternative Methoden

Du kannst auch die Datenüberprüfung ohne VBA durchführen:

  1. Wähle die Zellen in Spalte M aus.
  2. Gehe zu Daten > Datenüberprüfung.
  3. Wähle Liste und gib die Werte manuell in das Feld "Quelle" ein, z.B. Lorem, Ipsum, Dolor, Sit, Amet.

Diese Methode ist einfacher, erfordert jedoch manuelle Anpassungen, wenn sich die Anzahl der Zeilen ändert.


Praktische Beispiele

Hier sind einige praktische Anwendungsbeispiele für die Datenüberprüfung in Excel:

  • Projektmanagement: Verwende Dropdown-Listen, um den Status von Aufgaben auszuwählen (z.B. "In Bearbeitung", "Fertig", "Warten auf Feedback").
  • Inventarverwaltung: Erstelle eine Liste von Produkten, aus der Benutzer auswählen können, um die Übersichtlichkeit zu erhöhen.

Tipps für Profis

  • Nutze Formeln in der Datenüberprüfung, um dynamische Listen zu erstellen. Zum Beispiel, wenn Du die Werte in einer anderen Tabelle hast, kannst Du =Tabelle1!A1:A10 verwenden.
  • Verwende Bedingte Formatierung, um Zellen hervorzuheben, wenn ungültige Eingaben gemacht werden.

FAQ: Häufige Fragen

1. Wie kann ich eine Dropdown-Liste anpassen, die bereits vorhanden ist? Du kannst dies tun, indem Du das VBA-Skript erneut ausführst oder die Datenüberprüfung über die Benutzeroberfläche änderst.

2. Was passiert, wenn ich die Daten in der Liste ändere? Wenn Du die Werte in der Liste änderst, musst Du das Makro erneut ausführen, um die Änderungen in der Datenüberprüfung zu reflektieren.

3. Ist es möglich, mehrere Dropdown-Listen in einer einzigen Spalte zu haben? Ja, Du kannst für jede Zelle in der Spalte eine separate Datenüberprüfung einrichten, indem Du das Makro entsprechend anpasst.

Durch die Anwendung dieser Schritte und Techniken wirst Du in der Lage sein, effektive Datenüberprüfungen in Excel zu implementieren und so die Qualität Deiner Daten zu gewährleisten.

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