Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1316to1320
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Problem bei Sortierung.

Problem bei Sortierung.
11.06.2013 08:19:23
kida
Morgen zusammen,
ich hab ein Problem mit m Sortieren. Ich hab es soweit hinbekommen das die Liste sortiert wird. jedoch möchte ich die neue Priorität 1 auch an erster Stelle haben und nicht an zweiter, so wird es nämlich grad bei mir sortiert.
Mein Code so far:
For x = 7 To lngLetzte - 1
If Worksheets("Priorität Messraum").Cells(lngLetzte, 3).Value = Worksheets("Priorität Messraum").Cells(x, 3).Value Then
Range(Cells(lngLetzte, 1), Cells(lngLetzte, 5)).Offset(-x, 0).Select
End If
Next
With ActiveWorkbook.Worksheets("Priorität Messraum").Sort
.SortFields.Clear
.SortFields.Add Key:=Range("C8"), _
SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
.SetRange Range("B8:E65535")
.Header = xlNo
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
Dim nummer As Long
Dim zaehler As Long
Dim stopper As Boolean
stopper = False
nummer = 8
zaehler = 1
While stopper = False
If IsEmpty(Cells(nummer, 2)) Then
stopper = True
End
Else
Cells(nummer, 3) = zaehler
nummer = nummer + 1
zaehler = zaehler + 1
End If
Es soll nun ein neuer wert angegeben werden wie z.B.
"Hase" mit Priorität "1"
Es soll nun auch an erster Stelle stehen und das was bisher auf 1 war runter auf die 2 gehen und alle weiteren ebenso der Reihe nach.
Ich hoffe ihr könnt mir helfen. Vor allem halten sich meine Kentnisse in VBA echt in Grenzen. Habe das erst jetzt angefangen.
Gruß Kida

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Problem bei Sortierung.
11.06.2013 08:36:05
Klaus
Hi Kida,
um den Code nachzuvollziehen und zu testen, müsste ich jetzt eine Musterdatei basteln die genau deinen Vorgaben entspricht. Oder du lädst deine Datei bzw. den relevanten Teil deiner Datei einfach mal hoch.
Grüße,
Klaus M.vdT.

AW: Problem bei Sortierung.
11.06.2013 09:51:13
kida
Hi Klaus,
leider kann ich die OriginalDatei nicht hochladen. Da sind Infos enthalten die nicht weitergegeben werden dürfen.
Ich hab mal alles in eine neue mappe reingemacht was wichtig ist. Vielleicht hilft des ja weiter.
Leider hab ich da jetzt n Fehler drinnen.
https://www.herber.de/bbs/user/85736.xlsm
Gruß Kida

Anzeige
AW: Problem bei Sortierung.
11.06.2013 09:51:50
kida
Hi Klaus,
leider kann ich die OriginalDatei nicht hochladen. Da sind Infos enthalten die nicht weitergegeben werden dürfen.
Ich hab mal alles in eine neue mappe reingemacht was wichtig ist. Vielleicht hilft des ja weiter.
Leider hab ich da jetzt n Fehler drinnen.
https://www.herber.de/bbs/user/85736.xlsm
Gruß Kida

AW: Problem bei Sortierung.
11.06.2013 10:00:17
Klaus
Hi,
Leider hab ich da jetzt n Fehler drinnen.
ok, dann schau ich mir die Mappe gar nicht erst an, wenn ein Fehler drin ist!
Kida,
wenn du Hilfe brauchst musst du dir auch helfen lassen. Speichere deine Mappe unter einem neuen Namen, lösche alle Spalten / Zeilen / Blätter die für das Makroproblem irrelevant sind, ersetze eventuell noch vorhandene Namen durch "Max Mustermann" oder Sachnummern durch "12345A".
Aber so?
Ich hab grad einen wichtigen Brief geschrieben. Kannst du bitte mal auf Rechtschreibfehler drüber lesen? Ich kann dir den Brief aber nicht geben, er ist geheim. Stattdessen gebe ich dir einen anderen Brief und hoffe, dass du daraus auf die Rechtschreibfehler in meinem geheimen Originalbrief schliessen kannst.
Merkst du selber, oder? :-)
Grüße,
Klaus M.vdT.

Anzeige
AW: Problem bei Sortierung.
11.06.2013 10:34:43
kida
Hi Klaus,
sorry. hab des jetzt alles überarbeitet und die mappe läuft so wie am anfang beschrieben.
wollte keine umstände machen.
https://www.herber.de/bbs/user/85738.xlsm
gruß kida

kein Problem bei der Sortierung. ...
11.06.2013 11:02:19
Matthias
Hallo
Sag doch mal genau was nicht funktioniert.
Wenn Du z.B für Ente1 in Spalte C die 1 zuweist und für Hase in C die 7 und dann sortierst.
dann steht nach der Sortierung doch Ente1 an Position1
Priorität Messraum

 BCD
8ente11julian
9pilz2 
10peterpan3 
11ente34max
12schaf5peter
13ente6krause
14hase7 
15ente28bernd
16pferd9max2
17lila10heinz
18blabla11karl
19blablabla12peter


Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4
Tausche ich es wieder und sortiere erneut steht wieder Hase ganz oben
Priorität Messraum

 BCD
8hase1 
9pilz2 
10peterpan3 
11ente34max
12schaf5peter
13ente6krause
14ente17julian
15ente28bernd
16pferd9max2
17lila10heinz
18blabla11karl
19blablabla12peter


Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4
Ist doch alles korrekt.
Was willst Du denn wirklich?
Gruß Matthias

Anzeige
AW: kein Problem bei der Sortierung. ...
11.06.2013 11:14:10
kida
hi,
also wenn unten was neues einfügen möchte, dann setzt er dies immer eins weiter unten hin.
z.B. "hase 2" soll auf die "1" position rücken (fettgedruckt)
https://www.herber.de/bbs/user/85739.xlsm
und dann auf "ordnen" und "akzeptieren" drücke, wird "hase 2" auf die position "2" gesetzt.
https://www.herber.de/bbs/user/85740.xlsm
aber ich möchte das "hase 2" wie gefordert auf die "1" soll und alle weiteren sollen dann dahinter wieder sortiert werden. Vll ist es jetzt bissl klarer was ich möchte
Gruß

Anzeige
schreib eine 0 (Null) in Spalte C ...
11.06.2013 11:23:12
Matthias
Hallo
Schreib eine 0 in C beim Neueintrag, dann sortiere.
Priorität Messraum

 BCDE
8Hase21  
9hase2  
10pilz3  
11peterpan4  
12ente35max19.12.2012
13schaf6peter01.02.2013
14ente7krause15.03.2013
15ente18julian18.03.2013
16ente29bernd18.03.2013
17pferd10max218.03.2013
18lila11heinz18.03.2013
19blabla12karl18.03.2013
20blablabla13peter18.03.2013
21Hase30  


Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4
machs mal so wie in der Tabelle und dann sortieren.
Nun siehts so aus.
Priorität Messraum

 BCDE
8Hase31  
9Hase22  
10hase3  
11pilz4  
12peterpan5  
13ente36max19.12.2012
14schaf7peter01.02.2013
15ente8krause15.03.2013
16ente19julian18.03.2013
17ente210bernd18.03.2013
18pferd11max218.03.2013
19lila12heinz18.03.2013
20blabla13karl18.03.2013
21blablabla14peter18.03.2013


Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4
Gruß Matthias

Anzeige
AW: kein Problem bei der Sortierung. ...
11.06.2013 11:24:14
fcs
Hallo Kida,
damit die Einsortierung an der gewünschten Position funktioniert, muss du einen jeweils kleineren Wert eingeben. Bei gleichen Werten sortiert Excel die Zeilen in der Reihenfolge der Zellen - eine neue 1 folgt also nach der vorhandenen alten 1 wenn neu sortiert wird.
Ansonsten kannst du dein Makro wie folgt einkürzen, da du da ein paar unnötige Sachen eingebaut hast oder zumindest für mich nicht nachvollziehbare.
Ich hab auch einige Sachen in die von mir bevorzugte Schreibweise umgestellt.
Gruß
Franz Private Sub CommandButton2_Click() Dim wks As Worksheet ' Die Variable lngLetzte wird als Typ Long deklariert Dim lngLetzte As Long ' Die Variable lngZeile wird als Typ Long deklariert Dim lngZeile As Long Set wks = ActiveSheet 'oder Activeworkbook,Worksheets("Priorität Messraum") 'Blattname ggf. _ anpassen! ' Bildschirmaktualisierung AUSschalten (Makro läuft schneller, Bildschirm flackert nicht) 'Application.ScreenUpdating = False ' Letzte belegte Zelle in Spalte B plus 1 raussuchen und merken With wks lngLetzte = IIf(IsEmpty(.Cells(.Rows.Count, 2)), _ .Cells(.Rows.Count, 2).End(xlUp).Row + 1, .Rows.Count) ' in einer Schleife von dieser Letzten bis Zeile 8 gehen - also von unten nach oben For lngZeile = lngLetzte To 8 Step -1 ' Wenn die Zelle in der ensprechenden Zeile in Spalte B leer ist If .Cells(lngZeile, 2) = "" Then ' dann lösche in dieser Zeile Feld 1 bis 5 .Range(.Cells(lngZeile, 1), .Cells(lngZeile, 5)).Delete ' Ende der Bedingung End If ' Nächste Zeile mit der Bedingung vergleichen Next ' Bildschirmaktualisierung EINschalten (nicht vergessen) 'Application.ScreenUpdating = True ' Feldbereich B8 bis Exxxx nach Feld C8 aufsteigend sortieren lngLetzte = IIf(IsEmpty(.Cells(.Rows.Count, 2)), _ .Cells(.Rows.Count, 2).End(xlUp).Row + 1, .Rows.Count) With .Sort .SortFields.Clear .SortFields.Add Key:=wks.Range("C8"), _ SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal .SetRange wks.Range(wks.Cells(8, 2), wks.Cells(lngLetzte, 5)) .Header = xlNo .MatchCase = False .Orientation = xlTopToBottom .SortMethod = xlPinYin .Apply End With Dim nummer As Long Dim zaehler As Long nummer = 8 zaehler = 1 While Not IsEmpty(.Cells(nummer, 2)) .Cells(nummer, 3) = zaehler nummer = nummer + 1 zaehler = zaehler + 1 Wend End With End Sub

Anzeige
AW: kein Problem bei der Sortierung. ...
11.06.2013 12:19:47
kida
hey danke für die antworten.
hat mir dann soweit geholfen.
viel ändern kann man da ja letzlich nicht.
@ franz: danke für die optimierte fassung!
gruß damian

AW: Problem bei Sortierung.
11.06.2013 11:09:16
Klaus
Hi Kida,
in deinem Code ist aber einiges im argen ;-)
Die Fehler in "Workbook_Open" habe ich ignoriert. Der Codefetzen, in dem sortiert wird, sollte folgendermaßen funktionieren:
With Worksheets("Priorität Messraum")
.Sort.SortFields.Clear
.Sort.SortFields.Add Key:=.Range("C8"), SortOn:=xlSortOnValues, Order:=xlAscending,  _
DataOption:=xlSortNormal
.Sort.SetRange .Range("B8:E" & lngLetzte)
.Sort.Header = xlNo
.Sort.MatchCase = False
.Sort.Orientation = xlTopToBottom
.Sort.SortMethod = xlPinYin
.Sort.Apply
End With

(beachte die veränderten Referenzierungen).
Was die "Zeilen durchgehen und selektieren" Schleife damit zu tuen hat, konnte ich nicht nachvollziehen.
Grüße,
Klaus M.vdT.
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige