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

Adressen in Namen sortieren

Adressen in Namen sortieren
23.03.2018 11:08:17
Berny
Hallo VBA- Speziallisten,
Folgendes Problem:
Ich habe Zellen B5; B10; B15 .... B(n) einen Namen gegeben z.B. "Test_1"
Nun kann ich über:
Union(Range("Test_1"), Selection).Select
ActiveWorkbook.Names.Add Name:="Test_1", RefersToR1C1:=Selection

den Bereich für "Test_1" erweitern.
Nun sollen die Zeilen von oben nach unten mit einem weiteren Modul bearbeitet werden.
For Each ze In Range("Test_1")
...
next ze

Soweit funktioniert alles.
Wenn ich nun aber über Cut und Paste z.B. die Zeile 10 zur Zeile 3 verschiebe, bleibt die alte Reihenfolge der Bearbeitung erhalten.
Mein Makro läuft aber nur fehlerfrei wenn ich zuerst die Adressen im Range Test_1 sortiere. ABER WIE?
Hat einer eine Idee?
Gruß Berny

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Adressen in Namen sortieren
23.03.2018 12:02:40
Daniel
Hi
was mir so spontan einfällt:
lass die Schleife über alle Zellen der Spalte laufen und prüfe, ob die jeweilige Zelle zum Namen gehört.
Sub test()
Dim ze As Range
For Each ze In Intersect(Range("Test_1").Worksheet.UsedRange, Range("Test_1").EntireColumn). _
Cells
If Not Intersect(ze, Range("Test_1")) Is Nothing Then
'--- hier dein Code
End If
Next
End Sub
Um Laufzeit zu sparen, läuft die Schleife nur über den tatsächlich genutzten Bereich
Die Spalte wird aus dem Namensbereich ermittelt.
Gruß Daniel
AW: Adressen in Namen sortieren
23.03.2018 13:01:42
Berny
Hallo Daniel,
danke für deinen Beitrag.
Der Ansatz ist gut, aber die Tabellen sind mir zu groß 20.000 Zeilen und 30 Spalten- Da ist mir UsedRange zu groß. (Bsp. mit Splate "B" war nur um die Beschreibung nicht zu kompliziert zu machen. Es kann auch die Spalte "AA" sein). Deshalb wollte ich mit Namen arbeiten. Da frage ich explizit nur die relevanten Daten ab.
Was ich mir jetzt überlegt habe, ist die Adressen in ein Datenarry einzutragen und dann zu sortieren.
Nur leider habe ich auf dem Gebiet auch » 0 « Erfahrung.
Kann ich ein Datenarry sortieren? - Wenn ja wie?
Gruß Berny
Anzeige
Array sortieren,
23.03.2018 13:26:20
EtoPHG
Hallo Berny (VBA gut?)
Arrays sortieren mit BubbleSort und QuickSort
und Zitat: Mein Makro läuft aber nur fehlerfrei wenn...sortiert Dann würde ich mal überlegen, ob man das Problem nicht an der Wurzel packen sollte!
Gruess Hansueli
AW: Adressen in Namen sortieren
23.03.2018 13:34:59
Daniel
HI
kannst du prinzipell machen, wird aber aufwendig.
Außderdem dürfen die Namen nicht zu zerplittet sein, damit der Adressstring nicht länger als 256 Zeichen wird.
probier mal meinen Code aus.
20.000 Zeilen müsste noch gehen.
die Schleife läuft ja auch nur über die Spalte, die den Namen enthält.
Gruß Daniel
Anzeige
AW: Adressen in Namen sortieren
23.03.2018 15:08:22
Berny
Hallo ihr Zwei,
vielen Dank für eure Hilfe!
Ich habe mir das Sortieren einfacher vorgestellt.
Aber ich habe mal wieder etwas gelernt! Erst probieren - dann widersprechen.
Der Ansatz von Daniel ist doch schneller als ich erwartet habe. Funktioniert ganz gut.
Ich werde das so machen.
Gruß
Berny

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige