![]() |
Excel - Namen automatisch sortieren.
Hi,
ich hoffe das ist hier in der richtigen Subkategorie.^^ ich brauche dringend für ein "Notenprogramm" (Informatik, Schule ) die Funktion, dass sich die Namen automatisch nach dem Alphabet sortieren - inklusive der Angaben in den Zellen rechts daneben. Dies soll endlos lang gehen, also egal wo der Lehrer später was reinschreibt - es muss immer sortieren. Auch wenn es seeehr weit unten ist. Außerdem: Wie kann ich eine Tabelle endlos lang färben und bestimmte Zellen endlos lang schützen? Antworten wären lieb. Danke. Grüße |
Zitat:
|
Sorry. Aber danke fürs Schieben! :3
|
Hi...
also der folgende Code funktioniert erst ab Excel 2007. Er ist natürlich auch sehr vereinfacht und sortiert nach "JEDER" Eingabe das gesamte Tabellenblatt nach Spalte A. Private Sub Worksheet_Change(ByVal Target As Range) Cells.Select ActiveWorkbook.ActiveSheet.Sort.SortFields.Clear ActiveWorkbook.ActiveSheet.Sort.SortFields.Add Key:=Range("A:A" _ ), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal With ActiveWorkbook.ActiveSheet.Sort .SetRange Range("A:XFD") .Header = xlGuess .MatchCase = False .Orientation = xlTopToBottom .SortMethod = xlPinYin .Apply End With End Sub Färben kannst du komplette Spalten oder Zeilen, wenn du ganz einfach die gewünschten Spalten oder Zeilen markierst und die gewünschte Farbe auswählst... Bei allen Zellen, die NICHT geschützt werden sollen, musst du bei "Zellen formatieren"-"Schutz" den Haken bei "Gesperrt" herausnehmen. Dann Menü "Überprüfen" und "Blatt schützen" |
Hi,
also sortiert werden soll nur ab Spalte E und Zeile 7. (d.h. zb E8,E9,E10 usw.) Die Angaben rechts daneben sollen mitsortiert werden. Wie bewirk ich das? Danke fürs Färben und Schützen. Hat mir sehr geholfen! :) |
Hi...
das würde dann so aussehen.. Private Sub Worksheet_Change(ByVal Target As Range) Cells.Select ActiveWorkbook.ActiveSheet.Sort.SortFields.Clear ActiveWorkbook.ActiveSheet.Sort.SortFields.Add Key:=Range("E7:E1048576" _ ), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal With ActiveWorkbook.ActiveSheet.Sort .SetRange Range("E7:XFD1048576") .Header = xlGuess .MatchCase = False .Orientation = xlTopToBottom .SortMethod = xlPinYin .Apply End With End Sub Allerdings muss ich dazu sagen, dass das nicht wirklich praktisch ist. Denn hier wird wirklich nach jeder Eingabe sortiert... besser wäre es irgendwo einen commandbutton einzufügen und den code dort hinein zukopieren. wenn alle eingaben gemacht sind auf den button klicken und gut... Edit: Nochmal hi... oder du machst es so... dann MUSS aber nach der Eingabe in Spalte E unbedingt ENTER gedrückt werden, sonst funktioniert das nicht... Private Sub Worksheet_Change(ByVal Target As Range) If ActiveCell.Column=6 And ActiveCell.Row>6 Then Dim myname myname = ActiveCell.Value Range("E7:E1048576").Select ActiveWorkbook.ActiveSheet.Sort.SortFields.Clear ActiveWorkbook.ActiveSheet.Sort.SortFields.Add Key:=Range("E7:E1048576" _ ), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal With ActiveWorkbook.ActiveSheet.Sort .SetRange Range("E7:XFD1048576") .Header = xlGuess .MatchCase = False .Orientation = xlTopToBottom .SortMethod = xlPinYin .Apply End With Range("E7:E1048576").Find(What:=myname, After:=ActiveCell, LookIn:=xlFormulas, LookAt _ :=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _ False, SearchFormat:=False).Select End If End Sub hier wird jetzt nur sortiert, wenn in spalte E ab zeile 7 Änderungen vorgenommen.... aber wie gesagt... funktioniert nur mit ENTER |
Jep. Vielen Dank. Hab jetzt nen Button eingefügt. Ich meld mich falls ich noch Hilfe brauch. :)
|
hi...
probier meine Änderung im Post hiervor... klappt eigentlich gut... für den button wäre es... Private Sub CommandButton1_Click() Range("E7:E1048576").Select ActiveWorkbook.ActiveSheet.Sort.SortFields.Clear ActiveWorkbook.ActiveSheet.Sort.SortFields.Add Key:=Range("E7:E1048576" _ ), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal With ActiveWorkbook.ActiveSheet.Sort .SetRange Range("E7:XFD1048576") .Header = xlGuess .MatchCase = False .Orientation = xlTopToBottom .SortMethod = xlPinYin .Apply End With End Sub es muss natürlich auch commandbutton1 sein... |
Hi.
Ich bin jetzt momentan im unterricht - und bei excel 2010 geht der button nicht. Excel versucht zwar zu sortieren, hängt sich aber direkt auf und gibt keine Rückmeldung. Weißt du worans liegt? UND: Wie kann ich denn endlos lang die Spalte ab E7 sortieren? |
hi....
hmmmm... kann ich dir nicht genau sagen... versuch mal diesen code... Private Sub CommandButton1_Click() Range("E7:XFD1048576").Select ActiveWorkbook.ActiveSheet.Sort.SortFields.Clear ActiveWorkbook.ActiveSheet.Sort.SortFields.Add Key:=Range("E7:E1048576" _ ), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal With ActiveWorkbook.ActiveSheet.Sort .SetRange Range("E7:XFD1048576") .Header = xlGuess .MatchCase = False .Orientation = xlTopToBottom .SortMethod = xlPinYin .Apply End With End Sub oder poste mal deinen code.... vielleicht irgendeine leertaste oder end sub zu viel... keine ahnung... und zu endlos... ab excel 2007 hat excel 1048576 zeilen und 16384 spalten (also Spalte XFD).... endloser geht es nicht...:) EDIT: hab es bei mir getestet... läuft... hast du vielleicht mehrere codes laufen oder noch den entwurfmodus aktiv? |
@eitch
Ja, ich hab mehrere Buttons programmiert. Aber ich kann mir irgendwie nicht recht vorstellen, dass es daran liegt. Ich test morgen in der Schule ob es bei uns geht. |
hi...
du kannst natürlich viele buttons programmieren, aber jeder darf natürlich nur einmal programmiert werden... vielleicht löst auch der button ein anderes ereignis aus... egal... poste mal den ganzen code des tabellenblattes... |
|
Hi...
also der Code für commanbutton2 ist korrekt... ist denn commandbuttond2 auch der richtige button auf dem arbeitsblatt? oder heißt der button dort vielleicht anders? im menü ENTWICKLERTOOLS den ENTWURFSMODUS aktivieren und doppelklick auf den button... Noch ein kleiner Tipp... Zelle E7 markieren... im menü ANSICHT auf FENSTER FIXIEREN... jetzt scrollt nur noch die Liste und Überschriften bleiben immer sichtbar... die Buttons auch am Besten oberhalb oder links der Fixierung anlegen, damit sie immer anklickbar sind... |
Hi,
also auf dem Arbeitsblatt hab ich den CommandButton umgenannt. Bei Name steht zwar noch CommandButton2 bei Caption aber Alphabetisch sortieren! Danke für den Tipp. :) |
Hi...
hmmmm... das ist eigentlich ok so... verstehe nicht wirklich, warum das nicht funktioniert... vielleicht kann excel bei dir den zeilenumbruch nicht interpretieren... mach hieraus... ActiveWorkbook.ActiveSheet.Sort.SortFields.Add Key:=Range("E7:E1048576" _ ), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal mal das... ActiveWorkbook.ActiveSheet.Sort.SortFields.Add Key:=Range("E7:E1048576), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal also das muss dann ALLES in EINER zeile stehen... ohne den unterstrich... EDIT: habe dir eine persönliche nachricht geschickt... |
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:59 Uhr. |
Powered by vBulletin® (Deutsch)
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.