Live-Forum - Die aktuellen Beiträge
Datum
Titel
17.04.2024 18:57:33
17.04.2024 16:56:58
Anzeige
Archiv - Navigation
1888to1892
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

VBA Array Sortieren IF String Bedinnung

VBA Array Sortieren IF String Bedinnung
06.07.2022 12:15:20
Alexander
Hallo Leute,
ich habe vor langer Zeit mal was gemacht um ein Array zu sortieren, funktioniert auch, nun wollte ich noch eine Bedingung dazu machen, dass er nur Werte die mit "-" anfangen mit sortieren soll, allerdings bin ich zu lange raus aus den Sachen und bekomme es nicht mehr hin.
Das " And Ar(Left(Wert1, 1)) = "-" habe ich hinzugefügt zu dem Zweck, aber das funktioniert nicht, nun sortiert er gar nichts mehr.
Vielleicht kann mir mal jemand geschwind helfen, danke!

For Wert1 = 1 To UBound(Ar)
For Wert2 = Wert1 + 1 To UBound(Ar)
If Ar(Wert1) 
Gruß

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

Betreff
Datum
Anwender
Anzeige
AW: VBA Array Sortieren IF String Bedinnung
06.07.2022 12:22:24
Oberschlumpf
Hi Alexander
kannst du uns bitte per Upload eine Bsp-Datei zeigen, die folgendes enthält:
- in Spalte A Bsp-Daten = unsortiert
- in Spalte B Bsp-Daten = so sortiert, wie du es haben möchtest
Ich versteh schon nicht, wo in der Gesamtspalte die Bsp-Zeilen, die mit "-" anfangen, stehen sollen?
Ciao
Thorsten
AW: VBA Array Sortieren IF String Bedinnung
06.07.2022 12:58:29
Alexander
Hallo Thorsten,
das ist a wenig komplizierter da das in einem 5000 Zeilen Code mit drinnen ist.
Im Endeffekt stehen alle Werte in einer Zelle untereinander und per Eingabemaske füge ich punkte hinzu, die ich dann eben bevor die Werte wieder in die gleiche Zelle geschrieben werden nach Datum sortiere und die erste Zeile wird dabei ausgelassen, das ist dann die Überschrift.
In A1 Steht dann z.B
Überschrift
-20.5.22 : A
-20.5.22: B
-20.5.22: C
Per Eingabemaske füge ich dann z.B "-21.5.22: D" hinzu, das wird dann Absteigend sortiert und zurück in die Zelle geschrieben, da steht dann eben:
Überschrift
-21.5.22: D
-20.5.22 : A
-20.5.22: B
-20.5.22: C
Es handelt sich aber wirklich um nur eine einzelne Zelle!
Der Teil sieht dann so aus:

Dim Ar() As String
Dim A As String
Dim Wert1 As Integer
Dim Wert2 As Integer
Dim Temp As String
Dim Ausgabe As String
Dim zeLLe As Range
Dim umbrPos As Long
Dim I As Integer
Dim Text As String
A = Range(ActiveCell.Address).Value
Ar = Split(A, Chr(10))
'"And Ar(Wert2)  "*"
'Text = "-*"
For Wert1 = 1 To UBound(Ar)
For Wert2 = Wert1 + 1 To UBound(Ar)
If Ar(Wert1)  0 Then
zeLLe.Characters(1, umbrPos).Font.Bold = True
End If
Next
Application.ScreenUpdating = False
Range("C19", "J115").RowHeight = 50
Application.ScreenUpdating = True
' I = InStr(1, Cells(zeile, 2), " ") - 1
' Cells(zeile, 2).Characters(1, I).Font.Bold = True
form_exit = vbOK
Unload Me
End Sub


Anzeige
AW: VBA Array Sortieren IF String Bedinnung
06.07.2022 13:14:14
peterk
Hallo
Wenn schon:
Left (Ar(Wert1),1) = "-"
Peter
AW: VBA Array Sortieren IF String Bedinnung
06.07.2022 13:29:30
Daniel
Hi
wenn du nach dem Datumwert zwischen - und : sortieren willst, solltest du nicht Ar(Wert1) und Ar(Wert2) vergleichen, sondern:

CDate(Mid(left(Ar(Wert1), Instr(Ar, ":") - 1), 2)) 
die Umwandlung in ein Datum für den Vergleich solltest du sowieso machen, da du ansonsten Text hast und bei Texten ist "11" kleiner als "2", ebenso willst du ja sicherlich die korrekte Reihenfolge, wenn die Datumwerte Monatsübergreifend sind
Gruß Daniel
AW: VBA Array Sortieren IF String Bedinnung
06.07.2022 13:55:29
Firmus
Hi Alex,
aufgefallen:

 If Ar(Wert1) 
Ich meine, dass
IF .... AND Left(Wert1, 2)) = "-" Then wird nie zutreffen, da LEFT(Wert1,2) zwei Zeichen anwendet, aber nur mit "-" (einem Zeichen) verglichen wird.
Gruß,
Firmus
Anzeige

326 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige