ich bin Anfänger mit Excel und habe einen Grundriss mit Zimmern erstellt (Tabelle1). In den Zimmern werden ständig Namen für die Teilnehmer eingetragen. Nun möchte ich das automatisch direkt nach der Eingabe eines neuen Namen eine Namensliste (Tabelle2) um diesen Namen alphabetisch sortiert, ergänzt wird.
Hab einiges gefunden, aber irgendwie auch nicht richtiges.
nicht erschrecken: es war ein Versuch, eine für mich neue Konstriktion zu testen:
Code:
Sub Zimmer() Dim Nn(300) Zi = Array("Venus", "Milchstraße", "Regenbogen", "Eisblume", "Mond", "Orchidee", _ "Merkur", "Paradies", "Himmelbett", "Lila", "Sonne", "Wolke", "Sunflower", _ "Troja", "Hilton", "WC", "Dusche", "Dusche + WC", "Einzelraum", "Badewanne", "Frauenraum", "Screeing WC") For Each c In Range("C3:I33") If WorksheetFunction.IsText(c) Then Fl = True For Each Z In Zi If c = Z Then Fl = False: Exit For Next Z End If If Fl Then Nn(i) = c: i = i + 1: 'Debug.Print Nn(i - 1) Next c With CreateObject("system.collections.arraylist")
For Each s In Nn If s <> "" Then Debug.Print s: .Add s Next s .Sort Tx = Split(Join(.toarray(), "#"), "#") Debug.Print UBound(Tx) 'Join(.toarray(), "; ")
Sheets(2).Cells(2, 2).Resize(UBound(Tx) + 1) = Application.Transpose(Tx) End With End Sub
In der bereitgestellten Daten klappt es, es sollte auch anpassbar sein.
15.09.2016, 02:32 (Dieser Beitrag wurde zuletzt bearbeitet: 15.09.2016, 02:33 von Käpt'n Blaubär.)
Hallo,
Zitat:@Käpt`n Blaubär - Du hast recht. Excel 2007. Bin nicht an meinen gewohnten Rechner.
wenn Dein gewohnter Rechner mit xl2003 arbeitet, solltest Du die Datei vielleicht besser als *.xls speichern und neu hochladen. Wie willst Du sie sonst, wenn Du wieder zu Hause bist, unter xl2003 lesen?
With CreateObject("system.collections.arraylist") For Each c In Sheets(1).Range("C3:I33") Fl = False If c.Value <> "" Then Fl = True For Each Z In Zi If c = Z Then Fl = False: Exit For Next Z End If If Fl Then .Add c.Value Next c
.Sort Sheets(2).Cells(2, 2).Resize(.Count) = Application.Transpose(.toarray()) End With