myGully.com

myGully.com (https://mygully.com/index.php)
-   Windows & Software (https://mygully.com/forumdisplay.php?f=61)
-   -   Excel - Namen automatisch sortieren. (https://mygully.com/showthread.php?t=2608747)

dasdasdasdasdas 17.04.12 19:58

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

Undertaker2011 17.04.12 20:06

Zitat:

Hi,

ich hoffe das ist hier in der richtigen Subkategorie.^^
Nö, biste nicht! Excel ist eine Software und kein Betriebssystem!

dasdasdasdasdas 17.04.12 20:18

Sorry. Aber danke fürs Schieben! :3

eitch100 18.04.12 11:10

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"

dasdasdasdasdas 18.04.12 13:34

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! :)

eitch100 18.04.12 14:13

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

dasdasdasdasdas 18.04.12 14:41

Jep. Vielen Dank. Hab jetzt nen Button eingefügt. Ich meld mich falls ich noch Hilfe brauch. :)

eitch100 18.04.12 14:42

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...

dasdasdasdasdas 19.04.12 13:37

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?

eitch100 19.04.12 17:53

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?

dasdasdasdasdas 19.04.12 19:11

@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.

eitch100 19.04.12 19:50

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...

dasdasdasdasdas 20.04.12 21:49


eitch100 21.04.12 09:31

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...

dasdasdasdasdas 21.04.12 10:29

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. :)

eitch100 21.04.12 10:48

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.