Anzeige
Archiv - Navigation
1856to1860
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

Bestehenden Code ergänzen / Sortierung

Bestehenden Code ergänzen / Sortierung
12.11.2021 11:40:06
Birgit
Hallo zusammen,
ich habe eine Liste geerbt in der ich aber nicht nach einer bestimmten Spalte sortieren kann. Anbei der Code.

Sub Daten_eintragen()
Dim Zeile
'nur wenn in B4 und C4 etwas drinsteht dann eintragen
If [b4]  "" And [c4]  "" And [d4]  "" Then
'Blattschutz aufheben
'ActiveSheet.Unprotect
'letzte benutzte Zeile ermitteln + 1
Zeile = Cells(Rows.Count, 2).End(xlUp).Row + 1 '.SpecialCells(xlLastCell).Row + 1
'Daten eintragen
Cells(Zeile, 2) = [b4]
Cells(Zeile, 3) = [c4]
Cells(Zeile, 4) = [d4]
Cells(Zeile, 5) = [e4]
Cells(Zeile, 6) = [f4]
Cells(Zeile, 7) = [g4]
Cells(Zeile, 8) = [h4]
Cells(Zeile, 9) = [i4]
Cells(Zeile, 10) = [j4]
Cells(Zeile, 11) = [k4]
Cells(Zeile, 12) = [l4]
Cells(Zeile, 13) = [m4]
Cells(Zeile, 14) = [n4]
Cells(Zeile, 15) = [o4]
Cells(Zeile, 16) = [p4]
Cells(Zeile, 17) = [q4]
Cells(Zeile, 18) = [r4]
Cells(Zeile, 19) = [s4]
Cells(Zeile, 20) = [t4]
Cells(Zeile, 21) = [u4]
Cells(Zeile, 22) = [v4]
Cells(Zeile, 23) = [w4]
Cells(Zeile, 24) = [x4]
Cells(Zeile, 25) = [y4]
Cells(Zeile, 26) = [z4]
Cells(Zeile, 27) = [aa4]
Cells(Zeile, 28) = [ab4]
Cells(Zeile, 29) = [ac4]
Cells(Zeile, 30) = [ad4]
'Eingaben löschen
[b4:ad4] = ""
'letzte Zeile in sichtbaren Bereich holen
Cells(Zeile, 2).Select
Else
MsgBox "Bitte -Ort-Straße-Lage- eintragen"
End If
'Blattschutz aktivieren
'ActiveSheet.Protect
End Sub
Kann mir bitte jemand kurz sagen wo ich welchen Code eingeben muss damit es mir nach Spalte "J" sortiert?
Die Daten in Spalte J beginnen in Zeile 6.
Ich habe es zwar hiermit schon versucht, aber das hat nicht wirklich geklappt.

Public Sub Sortieren()
Worksheets("Tabelle1").Columns("J:J").Sort , Key1:=Range("J6"), _
Order1:=xlAscending, Header:=xlYes
Vielen lieben Dank und Gruß
Birgit

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Bestehenden Code ergänzen / Sortierung
12.11.2021 11:52:47
Daniel
hi
beim Sortieren ist es so, dass du vor dem .Sort den Zellbereich angeben musst, der sortiert werden soll (also im Prinzip die Tabelle) und bei Key1 dann die Spalte angibst, nach der sortiert werden soll, wobei hier eine einzige Zelle der Spalte ausreicht.
was man nicht vergessen, darf, wenn man bei dem Sortierbereich vor dem .Sort das Tabellenblatt mit angibt, dann muss man auch beim Key dieses Tabellenblatt dazu schreiben und darf nicht nur die Range oder Cells alleine angeben.
wenn du Header:= xlyes setzt, wird die erste Zeile des angegebenen Bereichs nicht mit sortiert.
wenn du Header:= xlno setzt , werden alle Zeilen sortiert.
setzt man Header:=xlguess, entscheidet Excel selbst auf Basis einiger Faktoren (Z.B. unterschiedliche Färbung), ob die er erste Zeile mit sortiert oder nicht.
hilft dir das weiter, die Sortierfunktion richtig zu programmieren?
Gruß Daniel
Anzeige
AW: Bestehenden Code ergänzen / Sortierung
12.11.2021 11:56:58
Herbert_Grom
Hallo Birgit,
lade doch mal eine Beispielarbeitsmappe hoch.
Servus
Nur am Rande...
12.11.2021 12:01:44
{Boris}
Hi,
den Code kann man komplett eindampfen.
Folgendes rausschmeißen:

Cells(Zeile, 2) = [b4]
Cells(Zeile, 3) = [c4]
Cells(Zeile, 4) = [d4]
Cells(Zeile, 5) = [e4]
Cells(Zeile, 6) = [f4]
Cells(Zeile, 7) = [g4]
Cells(Zeile, 8) = [h4]
Cells(Zeile, 9) = [i4]
Cells(Zeile, 10) = [j4]
Cells(Zeile, 11) = [k4]
Cells(Zeile, 12) = [l4]
Cells(Zeile, 13) = [m4]
Cells(Zeile, 14) = [n4]
Cells(Zeile, 15) = [o4]
Cells(Zeile, 16) = [p4]
Cells(Zeile, 17) = [q4]
Cells(Zeile, 18) = [r4]
Cells(Zeile, 19) = [s4]
Cells(Zeile, 20) = [t4]
Cells(Zeile, 21) = [u4]
Cells(Zeile, 22) = [v4]
Cells(Zeile, 23) = [w4]
Cells(Zeile, 24) = [x4]
Cells(Zeile, 25) = [y4]
Cells(Zeile, 26) = [z4]
Cells(Zeile, 27) = [aa4]
Cells(Zeile, 28) = [ab4]
Cells(Zeile, 29) = [ac4]
Cells(Zeile, 30) = [ad4]
Dafür neu einfügen:

Range(Cells(Zeile, 2), Cells(Zeile, 30)).Value = Range("B4:AD4").Value
VG, Boris
Anzeige
AW: Nur am Rande...
15.11.2021 10:18:38
Birgit
Hallo zusammen,
erst mal, vielen Dank für eure Hilfe.
@ Daniel: leider sind meine Kenntnisse in VBA so massiv bescheiden, dass ich leider nicht weiß wo ich es einbauen soll und vor allem, wie kann ich dem Key1 das Sheet zuweisen. Tut mir leid ... :(
@ Herbert_Grom: ich weiß leider nicht ob ich die Datei aus Datenschutzgründen hoch laden kann.
@ Boris: dann schmeiße ich das mal alles raus und ersetze es durch deine weitaus schlankere Variante :) Danke für den Hinweis.
Gruß
Birgit
Sort-Methode
15.11.2021 11:32:19
{Boris}
Hi Birgit,
Daniel ist schon recht detailliert auf Deinen Code eingegangen.
Teste mal:

Sub test()
Worksheets("Tabelle1").Range("J6:J1000").Sort , Key1:=Worksheets("Tabelle1").Range("J6"), _
Order1:=xlAscending, Header:=xlNo
End Sub
Und vergleiche mit Deinem geposteten Code - nimm die Hinweise von Daniel dafür zur Hand.
Ich bin davon ausgegangen, dass in J6 KEINE Überschrift steht. Falls doch: Header:=xlYes

Die Sort-Methode hat halt ne Menge Parameter - schau sie Dir auch mal in der Onlinehilfe (F1) an.
VG, Boris
Anzeige
AW: Nur am Rande...
15.11.2021 12:17:04
Daniel
"@ Daniel: leider sind meine Kenntnisse in VBA so massiv bescheiden, dass ich leider nicht weiß wo ich es einbauen soll und vor allem, wie kann ich dem Key1 das Sheet zuweisen. Tut mir leid ... :("
Naja vor der Range auch noch das Tabellenblatt dazu schreiben, in der selben Zeile hast du das ja borne beim Sortierbereich schon richtig gemacht, also machs genauso beim Key:
Dh du übernimmst das Tabellenblatt, dass vor dem Sortierbereich steht:
Worksheets("Tabelle1").Columns("J:J").Sort , Key1:=Range("J6")
Auch vor den Zellbereich bei Range:
Worksheets("Tabelle1").Columns("J:J").Sort , Key1:=Worksheets("Tabelle1").Range("J6")
Also manchmal Frage ich mich schon, wie es möglich ist, das jemand sich nicht in der Lage sieht, etwas zu tun, was er eigentlich schon richtig macht und das in der selben Programmzeile.
Gruß Daniel
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige