napisał: m_123 postów: 20
umieszczony: 1 sierpnia 2005 15:58
|
|
dzieki za pomoc :) |
|
napisał: pil postów: 154
umieszczony: 29 lipca 2005 07:19
|
|
może mało elegenckie, ale działa:
definicja klasy clsMiasto (akurat to działa na miejscowościach)z nazwą :
Option Explicit
Public nazwa As String
kod w arkuszu z danymi (w moim wypadku "Arkusz1"):
Option Explicit
Private Sub Odswiez()
Dim zakres As Range, zakresBak As Range
Dim komorka As Object
Dim miasto1 As clsMiasto, miasto2 As clsMiasto
Dim colMiasto As Collection
Dim powtorzone As Boolean
Dim i As Integer
Set zakres = Me.Range("A1:A100")
zakres.Sort Key1:=Me.Range("A1")
For Each komorka In Me.Range("B1:B100")
'skasowanie starych wartosci
komorka.Value = ""
Next komorka
Set colMiasto = New Collection
For Each komorka In zakres
If komorka.Value <> "" Then 'zignoruje 'puste' komorki w zakresie
powtorzone = False
Set miasto1 = New clsMiasto
miasto1.nazwa = komorka.Value
For Each miasto2 In colMiasto
'sprawdzenie czy już jest w kolekcji takie miasto
If miasto1.nazwa = miasto2.nazwa Then powtorzone = True
Next miasto2
If Not (powtorzone) Then
'dodanie do kolekcji
colMiasto.Add miasto1
End If
Set miasto1 = Nothing
End If
Next komorka
For i = 1 To colMiasto.Count
'wypełnienie kolumny B
Set miasto1 = New clsMiasto
Set miasto1 = colMiasto.Item(i)
Me.Range("B" & i).Value = miasto1.nazwa
Set miasto1 = Nothing
Next i
Set colMiasto = Nothing
End Sub
Private Sub cmdOdswiez_Click()
Odswiez
End Sub
przy okazji posortują się dane w zakresie A1:A100, żeby sobie z tym poradzić można sortować kopie zakresu A1:A100 w innym arkuszu.
Powodzenia. |
|
napisał: pil postów: 154
umieszczony: 29 lipca 2005 07:17
|
|
może mało elegenckie, ale działa:
definicja klasy clsMiasto (akurat to działa na miejscowościach)z nazwą :
Option Explicit
Public nazwa As String
kod w arkuszu z danymi (w moim wypadku "Arkusz1"):
Option Explicit
Private Sub Odswiez()
Dim zakres As Range, zakresBak As Range
Dim komorka As Object
Dim miasto1 As clsMiasto, miasto2 As clsMiasto
Dim colMiasto As Collection
Dim powtorzone As Boolean
Dim i As Integer
Set zakres = Me.Range("A1:A100")
zakres.Sort Key1:=Me.Range("A1")
For Each komorka In Me.Range("B1:B100")
'skasowanie starych wartosci
komorka.Value = ""
Next komorka
Set colMiasto = New Collection
For Each komorka In zakres
If komorka.Value <> "" Then 'zignoruje 'puste' komorki w zakresie
powtorzone = False
Set miasto1 = New clsMiasto
miasto1.nazwa = komorka.Value
For Each miasto2 In colMiasto
'sprawdzenie czy już jest w kolekcji takie miasto
If miasto1.nazwa = miasto2.nazwa Then powtorzone = True
Next miasto2
If Not (powtorzone) Then
'dodanie do kolekcji
colMiasto.Add miasto1
End If
Set miasto1 = Nothing
End If
Next komorka
For i = 1 To colMiasto.Count
'wypełnienie kolumny B
Set miasto1 = New clsMiasto
Set miasto1 = colMiasto.Item(i)
Me.Range("B" & i).Value = miasto1.nazwa
Set miasto1 = Nothing
Next i
Set colMiasto = Nothing
End Sub
Private Sub cmdOdswiez_Click()
Odswiez
End Sub
przy okazji posortują się dane w zakresie A1:A100, żeby sobie z tym poradzić można sortować kopie zakresu A1:A100 w innym arkuszu.
Powodzenia. |
|
napisał: m_123 postów: 20
umieszczony: 27 lipca 2005 17:16
|
|
Witam i prosze o pomoc.
Problem:
posiadam w kolumnie A - 10 wartości np.
(korzystne, średnie, niekorzystne, korzystne, średnie, niekorzystne, dobre, korzystne, średnie, niekorzystne)
Zwykle jest to od 2 do 5 różnych wartości słownikowych, w tym przypadku wyszly 4 (dobre, niekorzystne, korzystne, średnie).
Chodzi mi o to, ze musze wyciagnąć w kolejności alfabetycznej powtarzanlne nazwy slownikowe z tej kolumny i przepisac np. do kolumny obok. Czyli w kolumnie B chcialbym miec wynik
(dobre, niekorzystne, korzystne, średnie).
Dzieki wszystkim z gory za szybka pomoc. |
|
wstecz 1 dalej wszystkich stron: 1
|