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

FREQENCY


otwartyotwarty rozpoczął: alicelee postów: 8



napisał: jalamas
postów: 316


umieszczony:
16 lutego 2007
10:15

  
A nie zapomnij sprawdzić czy to, co user wpisał istotnie jest tym czego sobie sobie życzysz,
czy w ogóle coś wpisał, aby aplikacja nie "odpłynęła w dal" z serią komunikatów....
napisał: jottad
postów: 118


umieszczony:
15 lutego 2007
11:03

  
Cytat:
Dzieki bardzo :) częstość dziala :)
ale jesli chodzi o wpisywanie do komorek E4:E9 i D4:D9, to wpisuję coś takiego, ale wtedy mi wpisuje wcale nie w pierwsze puste tak jak powinno byc, tlyko kilka wierszy nizej w sumie od D6 lub D7 a w E to juz w ogole sie miesza i wpisuje jeszcze nizej...
Ja wolalabym, zeby bylo zadeklarowane, ze przedzialy wpisuje w D4:D9, a czestosci w E4:E9. tylko nie wiem jak to zrobic. narazie mam tak:


Skoro wpisujesz zawsze do tych samych komórek, to nie ma potrzeby wyszukiwania pierwszej pustej komórki. Można wszystko zrobić na "sztywno", np:
Private Sub cmd_wyslij_Click()

With Worksheets("2.2.1.").Range("D4")
     .Offset(0, 0) = CDbl(TextBox3.Text)
     .Offset(1, 0) = CDbl(TextBox4.Text)
     .Offset(2, 0) = CDbl(TextBox5.Text)
     .Offset(3, 0) = CDbl(TextBox7.Text)
     .Offset(4, 0) = CDbl(TextBox8.Text)
     .Offset(5, 0) = CDbl(TextBox6.Text)
End With
With Worksheets("2.2.1.").Range("E4")
        .Offset(0, 0) = CDbl(TextBox10.Text)
        .Offset(1, 0) = CDbl(TextBox11.Text)
        .Offset(2, 0) = CDbl(TextBox12.Text)
        .Offset(3, 0) = CDbl(TextBox13.Text)
        .Offset(4, 0) = CDbl(TextBox14.Text)
        .Offset(5, 0) = CDbl(TextBox9.Text)
End With
End Sub



Funkcją CDbl wymuszam tutaj konwersję wartości textbox'ów na liczbę. Ma to zapobiegać traktowaniu wartości kontrolki jako tekstu (to właśnie powoduje Twoje kłopoty z wartościami w obszarze danych)
napisał: alicelee
postów: 57


umieszczony:
14 lutego 2007
18:03

  
I wiecie co sie stalo!! Te wszystkie wartosci co wpisuje, do B4:B103 to sie tak wpisują do excela, ze on tak jakby ich nie widzi. I jak wpisuje calkowite to liczy z nich srednia, a jak wpisuje z przecinmkiem liczny to nie widzi ich i pokazuje dzielenie przez zero ;(
napisał: alicelee
postów: 57


umieszczony:
14 lutego 2007
16:09

  
Ewentualnie jak takie cos przenies przedzialy (PD5-PD9) doD4:D9 i czestosc CZ1 do E4:E9.
Private Sub btn_dalej4_Click()
MultiPage1.Value = MultiPage1.Value + 1
    Dim srednia, suma, minim, maxim, rozmiar, PD5, PD6, PD7, PD8, PD9 As Variant
    Dim CZ1 As Variant
        With Worksheets("2.2.1.")
        srednia = Application.WorksheetFunction.Average(.Range("B4:B103"))
        TextBox15.Value = (srednia)      ' wylicza średnią z wartości B4:B103 'Text zmien na Value bo chyab tak jest ok
        suma = Application.WorksheetFunction.Sum(.Range("C4:C103"))
        TextBox16.Value = (suma / 100)   ' wylicza .....
        TextBox19.Value = (srednia / (suma / 100))
        maxim = Application.WorksheetFunction.Max(.Range("B4:B103"))
        TextBox18.Value = (maxim)        ' wylicza maximum z wartości B4:B103
        minim = Application.WorksheetFunction.Min(.Range("B4:B103"))
        TextBox17.Value = (minim)        ' wylicza minimum z wartości B4:B103
        rozmiar = (((maxim) - (minim)) / (7.5))
        TextBox20.Value = (rozmiar)
        TextBox3.Value = (maxim)         'to jest pierwsza komórka z przedziałów
        PD5 = ((maxim) - (rozmiar))
        TextBox4.Value = (PD5)           'to jest druga komórka z przedziałów
        PD6 = ((PD5) - (rozmiar))
        TextBox5.Value = (PD6)           'to jest trzecia komórka z przedziałów
        PD7 = ((PD6) - (rozmiar))
        TextBox7.Value = (PD7)           'to jest czwarta komórka z przedziałów
        PD8 = ((PD7) - (rozmiar))
        TextBox8.Value = (PD8)           'to jest piąta komórka z przedziałów
        PD9 = ((PD8) - (rozmiar))
        TextBox6.Value = (PD9)           'to jest szósta komórka z przedziałów
                
CZ1 = Application.WorksheetFunction.Frequency(.Range("B4:B103"), _
       Array(PD9, PD8, PD7, PD6, PD5, maxim))

ListBox1.List = CZ1
                     
        End With
End Sub

napisał: alicelee
postów: 57


umieszczony:
14 lutego 2007
16:02

  
Dzieki bardzo :) częstość dziala :)
ale jesli chodzi o wpisywanie do komorek E4:E9 i D4:D9, to wpisuję coś takiego, ale wtedy mi wpisuje wcale nie w pierwsze puste tak jak powinno byc, tlyko kilka wierszy nizej w sumie od D6 lub D7 a w E to juz w ogole sie miesza i wpisuje jeszcze nizej...
Ja wolalabym, zeby bylo zadeklarowane, ze przedzialy wpisuje w D4:D9, a czestosci w E4:E9. tylko nie wiem jak to zrobic. narazie mam tak:
Private Sub cmd_wyslij_Click()
'zatwierdzenie danych do wpisania

Dim pustywiersz, wiersz1, wiersz2, kolumna, kolumna2 As Double   ' czy Double

wiersz1 = Application.WorksheetFunction.CountA(Range("D:D")) + pustywiersz
pustywiersz = Application.WorksheetFunction. _
CountA(Range("A:A")) + 1
'Range("D:E")- zakres, w którym jest tabela to D4:E9
kolumna = 4
kolumna2 = 5
' tu ma być with worksheets polecenie zeby nie pisac jaki arkusz caly czas
Worksheets("2.2.1.").Cells(wiersz1, kolumna) = TextBox3
Worksheets("2.2.1.").Cells(wiersz1 + 1, kolumna) = TextBox4
Worksheets("2.2.1.").Cells(wiersz1 + 2, kolumna) = TextBox5
Worksheets("2.2.1.").Cells(wiersz1 + 3, kolumna) = TextBox7
Worksheets("2.2.1.").Cells(wiersz1 + 4, kolumna) = TextBox8
Worksheets("2.2.1.").Cells(wiersz1 + 5, kolumna) = TextBox6

wiersz2 = Application.WorksheetFunction.CountA(Range("E:E")) + pustywiersz
pustywiersz = Application.WorksheetFunction. _
CountA(Range("A:A")) + 1

Worksheets("2.2.1.").Cells(wiersz2, kolumna2) = TextBox10
Worksheets("2.2.1.").Cells(wiersz2 + 1, kolumna2) = TextBox11
Worksheets("2.2.1.").Cells(wiersz2 + 2, kolumna2) = TextBox12
Worksheets("2.2.1.").Cells(wiersz2 + 3, kolumna2) = TextBox13
Worksheets("2.2.1.").Cells(wiersz2 + 4, kolumna2) = TextBox14
Worksheets("2.2.1.").Cells(wiersz2 + 5, kolumna2) = TextBox9
End Sub


ale tak jak napisalam uzycie funkcji "pierwszy pusty" jakos nie bardzo chce dzialac... :|
napisał: jottad
postów: 118


umieszczony:
14 lutego 2007
08:17

  
Cytat:
Witam
Mam następujący problem. Mam na userformie 100 textboxow, Po wpisaniu wszystkich wartosci klikam przycisk dalej i w nastepnej zakladce pojawiaja sie wartosci:

Private Sub btn_dalej4_Click()
MultiPage1.Value = MultiPage1.Value + 1
    Dim srednia, suma, minim, maxim, rozmiar, PD5, PD6, PD7, PD8, PD9, CZ1, CZ2, CZ3, CZ4, CZ5, CZ6 As Double
        With Worksheets("2.2.1.")
        srednia = Application.WorksheetFunction.Average(.Range("B4:B103"))
        TextBox15.Text = (srednia)      ' wylicza średnią z wartości B4:B103
        suma = Application.WorksheetFunction.Sum(.Range("C4:C103"))
        TextBox16.Text = (suma / 100)   ' wylicza .....
        TextBox19.Text = (srednia / (suma / 100))
        maxim = Application.WorksheetFunction.Max(.Range("B4:B103"))
        TextBox18.Text = (maxim)        ' wylicza maximum z wartości B4:B103
        minim = Application.WorksheetFunction.Min(.Range("B4:B103"))
        TextBox17.Text = (minim)        ' wylicza minimum z wartości B4:B103
        rozmiar = (((maxim) - (minim)) / (7.5))
        TextBox20.Text = (rozmiar)
        TextBox3.Text = (maxim)         'to jest pierwsza komórka z przedziałów
        PD5 = ((maxim) - (rozmiar))
        TextBox4.Text = (PD5)           'to jest druga komórka z przedziałów
        PD6 = ((PD5) - (rozmiar))
        TextBox5.Text = (PD6)           'to jest trzecia komórka z przedziałów
        PD7 = ((PD6) - (rozmiar))
        TextBox7.Text = (PD7)           'to jest czwarta komórka z przedziałów
        PD8 = ((PD7) - (rozmiar))
        TextBox8.Text = (PD8)           'to jest piąta komórka z przedziałów
        PD9 = ((PD8) - (rozmiar))
        TextBox6.Text = (PD9)           'to jest szósta komórka z przedziałów
        
        
        'CZ1 = Application.WorksheetFunction.Frequency("B4:B103", "D4:D9")
        'TextBox10.Text = (CZ1) 'to jest szósta komórka z przedziałów
                
        End With
End Sub


ga na tym, ze chcialabym, aby wyliczalo czestosc, an podstawie tych otrzymanych danych. czyli na podstawei danych z B4:B103 oraz przedzialow Pd5 do PD9.
Proszę pomóźcie...
pozdrawiam serdecznie
ALICE


Nie wiem dlaczego zakładasz nowy wątek, skoro dostałas odpowiedź we wcześniejszym :(
Ale nic to! Jeszcze raz, ale nieco inaczej!
Poniewawż funkcja Częstość zwraca tablicę wartości, to nie możesz zwrócic wartości do jednego tekstboxa. Musisz dla wartosci każdego z przedziałów utworzyc oddzielną kontrolkę i wtedy:

CZ1 = _
Application.WorksheetFunction.Frequency(.Range("B4:B103"), _
    Array(PD5,PD6,PD7,PD8,PD9))
    'pierwsza obliczona watość
    TextBox10.Text = CZ1(1,1)
    'druga obliczona wartość
    TextBox111.Text = CZ1(2,1)
    'trzecia obliczona wartość
    TextBox112.Text = CZ1(3,1)
    'itd...


Wartości przedziałów muszą być w kolejności rosnącej a zmienna CZ1 zadeklarowana jako Variant.
Inny sposób wyświetlenia wartości pokazałem w poprzednim wątku.
napisał: alicelee
postów: 57


umieszczony:
14 lutego 2007
01:33

  
Witam
Mam następujący problem. Mam na userformie 100 textboxow, Po wpisaniu wszystkich wartosci klikam przycisk dalej i w nastepnej zakladce pojawiaja sie wartosci:

Private Sub btn_dalej4_Click()
MultiPage1.Value = MultiPage1.Value + 1
    Dim srednia, suma, minim, maxim, rozmiar, PD5, PD6, PD7, PD8, PD9, CZ1, CZ2, CZ3, CZ4, CZ5, CZ6 As Double
        With Worksheets("2.2.1.")
        srednia = Application.WorksheetFunction.Average(.Range("B4:B103"))
        TextBox15.Text = (srednia)      ' wylicza średnią z wartości B4:B103
        suma = Application.WorksheetFunction.Sum(.Range("C4:C103"))
        TextBox16.Text = (suma / 100)   ' wylicza .....
        TextBox19.Text = (srednia / (suma / 100))
        maxim = Application.WorksheetFunction.Max(.Range("B4:B103"))
        TextBox18.Text = (maxim)        ' wylicza maximum z wartości B4:B103
        minim = Application.WorksheetFunction.Min(.Range("B4:B103"))
        TextBox17.Text = (minim)        ' wylicza minimum z wartości B4:B103
        rozmiar = (((maxim) - (minim)) / (7.5))
        TextBox20.Text = (rozmiar)
        TextBox3.Text = (maxim)         'to jest pierwsza komórka z przedziałów
        PD5 = ((maxim) - (rozmiar))
        TextBox4.Text = (PD5)           'to jest druga komórka z przedziałów
        PD6 = ((PD5) - (rozmiar))
        TextBox5.Text = (PD6)           'to jest trzecia komórka z przedziałów
        PD7 = ((PD6) - (rozmiar))
        TextBox7.Text = (PD7)           'to jest czwarta komórka z przedziałów
        PD8 = ((PD7) - (rozmiar))
        TextBox8.Text = (PD8)           'to jest piąta komórka z przedziałów
        PD9 = ((PD8) - (rozmiar))
        TextBox6.Text = (PD9)           'to jest szósta komórka z przedziałów
        
        
        'CZ1 = Application.WorksheetFunction.Frequency("B4:B103", "D4:D9")
        'TextBox10.Text = (CZ1) 'to jest szósta komórka z przedziałów
                
        End With
End Sub


Nastepnie przycisk wyslij, wysyla te dane do excela.
' \\\ wyslanie danych do Excela /// '

Private Sub cmd_wyslij_Click()
'zatwierdzenie danych do wpisania
Dim początkowy_wiersz_tabeli, wiersz, kolumna, kolumna2 As Double
początkowy_wiersz_tabeli = -3
wiersz = Application.WorksheetFunction.CountA(Range("D:E")) + początkowy_wiersz_tabeli
'Range("D:E")- zakres, w którym jest tabela to D4:E9
kolumna = 4
'kolumna2 = 4
'i dalej:
Worksheets("2.2.1.").Cells(wiersz, kolumna) = TextBox3
Worksheets("2.2.1.").Cells(wiersz + 1, kolumna) = TextBox4
Worksheets("2.2.1.").Cells(wiersz + 2, kolumna) = TextBox5
Worksheets("2.2.1.").Cells(wiersz + 3, kolumna) = TextBox7
Worksheets("2.2.1.").Cells(wiersz + 4, kolumna) = TextBox8
Worksheets("2.2.1.").Cells(wiersz + 5, kolumna) = TextBox6


Problem polega na tym, ze chcialabym, aby wyliczalo czestosc, an podstawie tych otrzymanych danych. czyli na podstawei danych z B4:B103 oraz przedzialow Pd5 do PD9.
Proszę pomóźcie...
pozdrawiam serdecznie
ALICE


<-wstecz  1  dalej->
wszystkich stron: 1


Sortuj posty: z