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, 01:32 (Dieser Beitrag wurde zuletzt bearbeitet: 15.09.2016, 01: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?
________________________________________________________________________
wer aufgibt, ohne es versucht zu haben, gibt einfach nur auf!
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