Anzeige
Archiv - Navigation
1956to1960
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

Sortierung von Sheets nach Zellinhalten???

Sortierung von Sheets nach Zellinhalten???
04.01.2024 15:55:57
andittel
Hallo, Forumsmitglieder,

ich arbeite grade an einer Excel-Datei, in der im Sheet1 mehrere Werte in den Spalten A bis D hinterlegt sind (hier sortiert nach den Zellwerten in Spalte D). Zusätzlich sind in der Spalte C Hyperlinks, die auf weitere Sheets verweisen:

_______ | A (DISCH) | B_____ | C________________ | D
Zeile 1 | 74123387 | Typ A | Name4 (mit Link) | Ort1
Zeile 2 | 04125466 | Typ A | Name2 (mit Link) | Ort2
Zeile 3 | 88943126 | Typ C | Name3 (mit Link) | Ort3
Zeile 4 | 22432622 | Typ B | Name1 (mit Link) | Ort4

Die Links verweisen auf Sheet6 (Blattname "74123387"), Sheet7 (BlattName "04125466"), Sheet8 (BlattName "88943126") und Sheet9 (BlattName "22432622"), so dass ich beim Anklicken des Links das jeweilige Sheet springen kann (dieses also anzeigen lassen kann).

Wenn ich jetzt die Werte in Sheet1 zum Beispiel nach Spalte A umsortiere, stimmen die Links nicht mehr: ich lande auf den falschen Sheets. Nun nehme ich an, dass ich mit dem Sortieren nach Spalte A auch die Reihenfolge der Sheets 6 bis 9 ändern muss, richtig? Zum Sortieren habe ich nun folgenden Code in einem Modul ausprobiert. der aber nicht funktioniert (er sortiert zwar die Sheets, aber eben verkehrt):

Sub DatenblattSortierung()


'##########################
'## DatenblattSortierung ##
'##########################

Dim ArrayAbfrage As Integer
Dim ArrayDISCH()
Dim ArrayLänge As Integer
Dim DISCHEinlesen As Integer
Dim SortierZähler As Integer

Erase ArrayDISCH()

'## Array für DISCH einlesen ##
ArrayLänge = WorksheetFunction.CountA(Worksheets(1).Columns(1)) - 2

ReDim ArrayDISCH(ArrayLänge)

For DISCHEinlesen = 0 To ArrayLänge 'Step -1
ArrayDISCH(DISCHEinlesen) = ThisWorkbook.Sheets(1).Cells(DISCHEinlesen + 2, 1).Value
Next DISCHEinlesen

For ArrayAbfrage = 0 To ArrayLänge
For SortierZähler = ArrayLänge + 6 To 6 Step -1
If ArrayDISCH(ArrayAbfrage) = ThisWorkbook.Sheets(SortierZähler).Name Then
ThisWorkbook.Sheets(SortierZähler).Move After:=ThisWorkbook.Sheets(5)
End If
Next SortierZähler
Next ArrayAbfrage

End Sub


Wahrscheinlich programmiertechnisch ziemlicher Quark, das ist mir schon klar - aber kann mir hier jemand bitte weiterhelfen?

Viele Grüße & Dank für eure Mühe
Andreas

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Sortierung von Sheets nach Zellinhalten???
04.01.2024 16:38:10
onur
Warum beschreibst du umständlich deine Datei, statt sie zu posten?
Soll ich dir die Lösung anhand der Beschreibung erstellen und sie dann auch mal beschreiben?
AW: Sortierung von Sheets nach Zellinhalten???
05.01.2024 11:29:07
andittel
Hallo, Onur,

danke für deine freundliche Antwort!

Mithilfe von "Target" konnte ich ich die Problematik mit den Hyperlinks nun komplett umgehen.
Damit ist die Problemstellung gelöst.

Gruß
Andreas
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige