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

  tytuł wątku:
Wątki dyskusji

Algorytm grupowania


otwartyotwarty rozpoczął: hoot0 postów: 5



napisał: hoot0
postów: 38


umieszczony:
17 czerwca 2006
19:04

  
Super!! Właśnie o to mi chodziło.Wielkie dzięki!Pozdrawiam:)
napisał: Trebor
postów: 1209


umieszczony:
17 czerwca 2006
17:13

  
Troszkę bardziej ale tylko troszkę, chyba że w dalszym ciągu to jeszcze nie to.
Wyszukane Symbole z ilością wiekszą od 0 są zrzucane do arkusza2 do pierwszej i drugiej kolumny.
Sub zbij()
Dim a As Byte
Dim b As Byte
Dim un(100) As typUnia
'cztery wiersze niżej wypełniają tablicę, cos tam muszę mieć
For a = 0 To 100
un(a).Symbol = Cells(a + 1, 1)
un(a).ilosc = Cells(a + 1, 2)
Next a

For a = 0 To 100 ' pętla dla tablicy
 If un(a).ilosc > 0 Then
    For b = 1 To Sheets("Arkusz2").Range("A65536").End(xlUp).Row ' Pętla dla wyszukanych danych w arkuszu2
      If Sheets("Arkusz2").Cells(b, 1) = un(a).Symbol Then
        Sheets("Arkusz2").Cells(b, 2) = Sheets("Arkusz2").Cells(b, 2) + un(a).ilosc
        Exit For
      End If
    Next b
      If b = Sheets("Arkusz2").Range("A65536").End(xlUp).Row + 1 Then
        Sheets("Arkusz2").Range("A65536").End(xlUp).Offset(1, 0) = un(a).Symbol
        Sheets("Arkusz2").Range("A65536").End(xlUp).Offset(0, 1) = un(a).ilosc
      End If
 End If
Next a
End Sub



Pewnie można efektywniej, ale przy tak krótkiej tablicy i tak niewiele to zmieni.
Pozdrawiam
napisał: hoot0
postów: 38


umieszczony:
17 czerwca 2006
13:03

  
Problem jest troszke bardziej skomplikowany a mianowicie:
Private Type typUnia
Symbol As String
ilosc As Integer
End Type

Dim un(100) As typUnia

Kazdy taki obiekt klasy unia ma jak widac 2 zmienne
1 to Symbol -czyli to pole po ktorym chce grupowac (np.towar)
2 to ilosc -czyli ilosc danego Symbolu(ilosc sztuk towaru)

Mamy tablice tego mojego typu.Jednakowy towar (Symbol) moze wystapic w tej tablicy wiele razy ale rozni sie iloscia sztuk! I ja chialbym zliczyc np. ile mam w sumie towaru o nazwie "tw1" ile o nazwie "tw2" itd. Wazne zeby nie trzeba bylo wpisywac zadnej z nazw-chodzi o rozwiazanie automatyczne:)Mam nadzieje ze teraz sformuowalem problem jasniej:)Prosze o pomoc...
napisał: Trebor
postów: 1209


umieszczony:
17 czerwca 2006
12:37

  
Hej
Cytat:
Wie ktoś może jak rozwiązać następującą sytuację...
Mam tablicę stringów, w niej znajduja się różne wyrazy(niektóre z nich się powtarzają).Tablica nie jest posortowana.Jak zliczyć ile jest w tej tablicy wystąpień wyrazu np. "kot" a ile "drzewo" itd.??

Jak dla mnie to zbyt ogólne informacje. Jeśli tablica to jakiś zakres w arkuszu i nalezy wyszukać tylko zadany string to może być tak:
Sub zlicz()
'przed uruchomieniem makra zaznacz przeszukiwany obszar
Dim wyraz As String
Dim kom As Range
Dim licznik As Integer
wyraz = InputBox("Podaj poszukiwane wyrażenie")
For Each kom In Selection
If UCase(kom) = UCase(wyraz) Then licznik = licznik + 1
Next
MsgBox "Wyrażenie " & wyraz & " występuje " & licznik & " razy"
End Sub



Oczywiście można załatwić to formułą, ale po co ;)

Jeśli należy wyszukać wszystkie powtarzające sie wyrazy, bądź tablica jest innego typu, trzeba usunąć powtarzające się wyrazy lub stworzyć ich wykaz ............
Pozdrawiam
napisał: hoot0
postów: 38


umieszczony:
17 czerwca 2006
10:13

  
Wie ktoś może jak rozwiązać następującą sytuację...
Mam tablicę stringów, w niej znajduja się różne wyrazy(niektóre z nich się powtarzają).Tablica nie jest posortowana.Jak zliczyć ile jest w tej tablicy wystąpień wyrazu np. "kot" a ile "drzewo" itd.??


<-wstecz  1  dalej->
wszystkich stron: 1


Sortuj posty: z