Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Namen aus Arbeitbereichen in neue Liste erstellen
#1
Hallo liebe Leute,

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.

Für Hilfe wäre ich dankbar.

Excel 2003

Beispiel anbei.

Gruß Tom


Angehängte Dateien
.xlsx   Zimmerplan.xlsx (Größe: 12,62 KB / Downloads: 3)
Antworten Top
#2
Hallo,

Zitat:Excel 2003

wie geht das zusammen mit der Dateiextension *.xlsx?

Habe ich was Wichtiges verpaßt?
________________________________________________________________________
wer aufgibt, ohne es versucht zu haben, gibt einfach nur auf!

Grüße aus Norderstedt, Peter
Antworten Top
#3
Hallo,

mit vba ist es möglich.

Deshalb die Frage: Kann der Fragesteller mit vba umgehen?

Es ist möglich direkt beim Lesen der Namen zu sortieren. Deshalb die Fragen: Win oder Mac, welche .NET - Version?

mfg
Antworten Top
#4
Wow. Seit Ihr schnell.

Also erst einmal vielen Dank.

@Käpt`n Blaubär       - Du hast recht. Excel 2007. Bin nicht an meinen gewohnten Rechner.

@ Fennek     - VBA geht so. Hab schon mal was eingebunden.
Antworten Top
#5
Hallo,

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.

mfg
Antworten Top
#6
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!

Grüße aus Norderstedt, Peter
Antworten Top
#7
Hallo,

hier noch einmal die optimierte Variante, ohne die Irrwege beim Entwickeln.


Code:
Sub Zimmer()

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")

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

End Sub


mfg
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste