Strona: [  << <   1   > >>  ]  z  1     
Autor Temat: Problem z wyliczaniem
anonim




Typ: Nie zarejestrowany
Problem z wyliczaniem

W komórkach a12:bz12 co jakiś czas mam wpisane 'x'. Czasami 'x' występują obok siebie. Pomiędzy nimi są puste komórki. Wygląda to mniej sięcej tak dla zakresu a12:bz12 -> x, , , , , ,x,x,x, , ,x, ,x, , , , , , , ,x itd. nie wiem co zrobić, by w komórce ca12 była wpisana ilość komórek pomiędzy kolejnymi iksami, w cb12 ilość komórek pomiędzy kolejnymi iksami itd. np. dla tego przykładu: ca12=0, cb12=6, cc12=0, cd12=0, ce12=3, cf13=2 itd. W momencie uruchomienia makra, aktywną komórką jest a12.

31-01-2005 16:20
  
losmac
"profesorek"




Typ: neutral
Postów: 758
Zarejestrowany: May 2003

Nic prostszego!


Sub ZliczX()
Dim i As Long, j As Long, k As Long

k = 0
j = 0
'bz = 78
Do While i < 78
    i = i + 1
    Do While Cells(12, i) <> "x"
        j = j + 1
        i = i + 1
        Cells(13, k) = j
    Loop
    If Cells(12, i) = "x" Then
        j = 0
        k = k + 1
        Cells(13, k) = j
        k = k + 1
    End If
Loop
End Sub


Algorytm niezbyt piękny, ale działa!


_____________________________________________
POSTULATY STARUSZKA:
1) Ludzie, dbajcie o polszczyznę!!!
2) Ludzie, zadawajcie kompletne pytania, a nie rzucacie ochłapy i trzeba się domyślać o co chodzi!!!

Powodzenia
Maciej Łoś

01-02-2005 19:50
Pokaż profil losmac  Wyślij email do losmac   Odwiedź stronę losmac  
anonim




Typ: Nie zarejestrowany
Dzięki

Ta funkcja Maćku zawiera błądddzik.
Jest wykonywana do czasu dojścia do ostatniej komórki wiersza a potem ukazuje się msgbox z błędem
Aby naprawić to do wewnętrznej pętelki Do While dodałem wpis "And i < 78" i teraz działą bez problemos.
Wielkie dzięki Maćku. Przerobiłem nieco ten kodddzik dopasowując go do włąsnych potrzeb.


Sub ZliczX()
Dim i As Long, j As Long, k As Long

k = 0
j = 0
'bz = 78
Do While i < 78
    i = i + 1
    Do While Cells(12, i) <> "x" And i < 78
        j = j + 1
        i = i + 1
        Cells(13, k) = j
    Loop
    If Cells(12, i) = "x" Then
        j = 0
        k = k + 1
        Cells(13, k) = j
        k = k + 1
    End If
Loop
End Sub

07-02-2005 20:00
  
Wszystkich odpowiedzi: 2 :: Maxymalnie na stronę: 20
Strona: [  << <   1   > >>  ]  z  1