Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1644to1648
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

Sortierungsbereich in VBA

Sortierungsbereich in VBA
22.09.2018 20:27:23
Stuppe
https://www.herber.de/bbs/user/124157.xlsm
Wenn ich eine Sortierung (von der Zelle L8 aus) über den Bereich L8 bis M19 mache,so
so steht im VBA korrekterweise:
Range("L8").Select
Range(Selection, Selection.End(xlDown)).Select
ActiveCell.Range("A1:B12").Select
Mein Problem ist folgendes.
Wenn ich beim nächsten Mal weniger Zeile habe (in Spalte "K" und "L" - Spalte "M" hat immer 12 Zeilen) , so bleibt die Adresse im VBA unverändert bei "A1:B12" und der SORT ist nicht korrekt.
Bin schon soweit, dass ich mit einem Makro das Zeilenende automatisch feststellen kann
und das Ergebnis (=15) dann in eine bestimmte Zelle kopiert wird (in"K1" in diesem Fall).
lngZeile = ActiveSheet.Cells(Rows.Count, 12).End(xlUp).Row
Worksheets("Tabelle1").Rows("12:12").Select
Worksheets("Tabelle1").Range("L:L").Select
ActiveSheet.Range("i1").Select
ActiveCell.FormulaR1C1 = lngZeile
ich weiß zwar wie ich in VBA die Adresse um eine bestimmte Zahl verändern kann mit dem Befehl:
ActiveCell.Range("A1 : B" & 8).Select
Der Sortbereich würde dann den Bereich "L8" bis "M15" ergeben. Aber wenn ich im Makro die 8 eingeben muss, kann ich gleich manuell sortieren. Daher meine…
Konkrete Frage:
Wie muss in VBA die Formel lauten, dass mir neben B" jene Zahl eingetragen wird, welche in die Zelle "K1" kopiert wurde abzüglich 7 (7 abziehen weil der Sortbereich in Zeile 8 beginnt)?

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

Betreff
Datum
Anwender
Anzeige
AW: Sortierungsbereich in VBA
22.09.2018 20:35:55
Hajo_Zi
Du musst für das sortieren, was in Deinem Code nicht enthalten ist, nur die erste Zelle angeben. Da keine Leerspalten und Leerzeilen enthalten sind.

Beiträge von Werner, Luc, robert, J.O.Maximo und folgende lese ich nicht.
AW: Sortierungsbereich in VBA
22.09.2018 20:47:04
Stuppe
https://www.herber.de/bbs/user/124158.xlsm
Zunächst danke für dich doch sehr schnelle Antwort.
Erste Datei war die falsche, bitte auf den neuen Link klicken.
Die Frage ist leide nicht beantwortet. Bitte meinen kompletten Comment durchlesen. Das Problem ist dass in VBA die Adresse unverändert bleibt. Denn wenn ich in VBA "End down" programmiet habe, so nimmt er trotzdem immer den Bereich "A1:B12". Sollte aber beim 2. Run "A1:B8" stehen.
Alles klar?
Anzeige
AW: Sortierungsbereich in VBA
22.09.2018 22:27:49
Dieter
Hallo Stuppe,
wenn ich dein Problem richtig verstanden habe, dann kannst du das mit dem folgenden Programm machen:
Sub Sortierung()
Dim letzteZeile As Long
Dim sortBereich As Range
Dim ws As Worksheet
Set ws = ThisWorkbook.Worksheets(1)
If Not IsEmpty(ws.Range("L19")) Then
letzteZeile = 19
Else
letzteZeile = ws.Range("L19").End(xlUp).Row
If letzteZeile 
Viele Grüße
Dieter
AW: Sortierungsbereich in VBA
23.09.2018 14:27:04
Stuppe
https://www.herber.de/bbs/user/124168.xlsm
Hallo Dieter,
zuerst mal vielen Dank. Denke wir kommen der Sache schon näher. Funktioniert aber nicht, wenn durch einen Import mehr Zeilen vorhanden sind. Schicke dir eine Sequenz aus der Originaldatei (link darüber)
Hintergrund:
Ich lade mir periodisch beim Onlinebanking die Bankbewegungen.
Durch ein Makro (welches funktioniert und in dieser Datei nicht enthalten ist) wird zuerst die Zuordnungformel (Zelle "A1") transposed und eben dieser Bereich von Zelle K8 abwärts erzeugt
Formel in "A1":
Diese Formel sucht einen bestimmten Text in der Bank-Downloaddatei (z.B. FHWien) und ordnet diesen einer von mir bestimmten Kategorie (z.B. "Schule") zu
Nur: wenn ich eine vorhandene Zuordnung ändern möchte ist dies aufwendig. Denn ich muss in der Formel erst den Begriff finden ("FHWien), dann zählen die wievielte Abfrage es ist um
dann in der Formel ans Ende zu gehen und dort wieder vom Ende an zählen um auf die Zuordnung "Schule" zu kommen (welche ich dann, in was auch immer z.B. "Bildung", ändere)
Um es zu vereinfachen, sortiere ich manuell (drücke den Button "Manuell Sortieren)
So habe ich dann neben den Begriff "FHWien" auch "Bildung" stehen. Kann diesen ändern und sortiere wieder manuell retour und kopiere dann die adaptierte Formel in die Zelle "A1"
Ändere auch du jetzt "Schule" in "Bildung" und klick auf "Sort retour".
Die Formel in "A1" kann max. 64 Verschachtelungen haben. Wenn dies erreicht ist, erzeuge ich eine 2. Formel.
Die hat dann eben weniger Zuordnungen. Und wenn ich dann diese neue Formel (steht dann z.B. in B1) transpose, sind es eben weniger Zeilen im Sortierbereich.
Der Einfachheit halber zum Demozweck klicke auf "Zeilen 29-134 löschen" und dann auf "Manueller Sort_2"
Zusammengefasst:
Der Sortierbereich ist maximal von L8 bis M134 (relativ A1:B127), kann aber beim Erzeugen einer neuen Zuordnungsformel (wie durch Klicken auf "Zeilen 29-134 löschen") auch nur den Bereich z.B. L8 bis M21 (relativ A1:B21) betragen
Und hier hackt es - auch mit deinem Tipp!
Anzeige
AW: Sortierungsbereich in VBA
23.09.2018 15:53:25
Dieter
Hallo Stuppe,
ehrlich gesagt, habe ich deine komplizierte Erläuterung nicht nachvollzogen.
Ich habe das Programm so ergänzt, dass es mit mehr Sätzen als den ursprünglich angegebenen 12 zurecht kommt. In deiner ersten Anfrage war nur die Rede davon, dass es auch weniger sein könnten.
Das Programm sieht jetzt so aus:
Sub Sortierung()
Dim letzteZeile As Long
Dim sortBereich As Range
Dim ws As Worksheet
Set ws = ThisWorkbook.Worksheets(1)
If Not IsEmpty(ws.Cells(ws.Rows.Count, "L")) Then
letzteZeile = ws.Rows.Count
Else
letzteZeile = ws.Cells(ws.Rows.Count, "L").End(xlUp).Row
If letzteZeile 
Das Programm setzt voraus, dass du nicht unterhalb der zu sortierenden Sätze in Spalte L noch irgendwelche anderen Informationen stehen hast.
Ich bin kein Freund, von Erklärungen, die das Problem nicht gleich vollständig beschreiben.
Daher steige ich aus dem Problem aus und wünsche dir noch viel Erfolg.
Viele Grüße
Dieter
Anzeige
AW: Sortierungsbereich in VBA
23.09.2018 16:23:26
Stuppe
Kann dich verstehen - werde es schon irgendwie hinkriegen mit der Zeit.
Danke trotzdem und schönen Sonntag noch.
Lg
Wilfried

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige