vbamania.pl
login:
hasło:
 
  *Rejestracja *Zapomniane hasło
 Dziś jest sobota, 18 maja 2024 roku.
Ustaw jako stronę startową Ulubione Napisz
PowrótPowrót do serwisu  RegulaminRegulamin rssRSS

  tytuł wątku:
Wątki dyskusji

Sortowanie tekstu w textbox. Proszę o pomoc


otwartyotwarty rozpoczął: axiom postów: 5



napisał: axiom
postów: 4


umieszczony:
14 listopada 2010
17:26

  
dzieki. Teraz wszystko działa prawidłowo :)

Pozdrawiam
napisał: Trebor
postów: 1209


umieszczony:
14 listopada 2010
17:01

  
Zamień sortowanie w poprzednim kodzie na takie:
'sortowanie
For i = 0 To UBound(lista)
    For j = i + 1 To UBound(lista)
        If StrComp(Left(lista(i), 3) & Right(lista(i), 10), Left(lista(j), 3) & Right(lista(j), 10), vbTextCompare) = 1 Then
            tekst = lista(i)
                lista(i) = lista(j)
            lista(j) = tekst
        End If
    Next j
 Next i



Jeśli to jeszcze nie tak, napisz co ma być brane pod uwagę przy sortowaniu.
napisał: axiom
postów: 4


umieszczony:
14 listopada 2010
15:56

edytowany:
14 listopada 2010
16:40

  
dzięki wielkie Trebor :)
wszystko działa poza sortowaniem tekstu według part01, part02, part03...
pomoże ktoś?
napisał: Trebor
postów: 1209


umieszczony:
14 listopada 2010
10:47

edytowany:
14 listopada 2010
10:50

  
Nie posiadam Accessa i z tego powodu posługuję się Textboxem umieszczonym w arkuszu excela. Mam nadzieję, że to nie problem i po małych modyfikacjach zadziała dla docelowego pola tekstowego.
Sub sort()
Dim lista, tekst As String, i As Integer, j As Integer
lista = Split(Arkusz1.TextBox1, vbNewLine) 'rozbicie tekstu na wiersze ze względu na znak końca linii
 'sortowanie
For i = 0 To UBound(lista)
    For j = i + 1 To UBound(lista)
        If StrComp(lista(i), lista(j), vbTextCompare) = 1 Then
            tekst = lista(i)
                lista(i) = lista(j)
            lista(j) = tekst
        End If
    Next j
 Next i
tekst = ""
'przygotowanie nowego tekstu
For i = 0 To UBound(lista)
If lista(i) <> "" And lista(i) <> "OR" Then 'nie działaj gdy wiersz jest pusty lub "OR"
tekst = tekst & lista(i) & vbNewLine 'przygotuj nowy wiersz ze znakiem końca linii
    
    If i < UBound(lista) Then 'nie działaj dla ostatniego wiersza
        If Left(lista(i + 1), 3) <> Left(lista(i), 3) Then 'sprawdzaj czy pierwsze trzy znaki biżącego wiersza i nastepnego są różne ewentualnie ucase
            tekst = tekst & vbNewLine
                tekst = tekst & "OR" & vbNewLine
                    tekst = tekst & vbNewLine
                        End If
    End If
End If
Next i


Arkusz1.TextBox1.Value = tekst 'zapisz dane do textboxa

End Sub

napisał: axiom
postów: 4


umieszczony:
13 listopada 2010
19:43

edytowany:
13 listopada 2010
20:04

  
witam serdecznie.

Nie mogę sobie poradzić ze skryptem w VBA. Jego zasada działania miałby wyglądać tak:

1. Mamy formularz w ms access z polem "Textbox1"
2. Przy kliknięciu przyciskiem program sortuje tekst w polu Textbox według określonych kryteriów:

Wprowadzone dane:

"QWE*************.part01.rar
ASD*************.part01.rar
ZXC*************.part01.rar
QWE*************.part02.rar
ASD*************.part02.rar
ZXC*************.part02.rar
QWE*************.part03.rar
ASD*************.part03.rar
ZXC*************.part03.rar"

Wynik sortowania:

"QWE*************.part01.rar
QWE*************.part02.rar
QWE*************.part03.rar

OR:

ASD*************.part01.rar
ASD*************.part02.rar
ASD*************.part03.rar

OR:

ZXC*************.part01.rar
ZXC*************.part02.rar
ZXC*************.part03.rar"

Wynik sortowania zwracany byłby do tego samego textboxa.

Czy mógłby mi ktoś pomóc?



<-wstecz  1  dalej->
wszystkich stron: 1


Sortuj posty: z