Excel Forum - Porady, Pomoc,  Excel Help, Excel FAQ Strona Główna
 FAQ  RegulaminRegulamin  Szukaj   Użytkownicy   Grupy   Rejestracja   Profil   Twoje wiadomości   Zaloguj 


Poprzedni temat «» Następny temat
ID tematu: 27476 Skopiuj do schowka Losowanie - prośba o pomoc
Autor Wiadomość
nygus99
słuchacz


Posty: 5
Wysłany: 2012-01-22, 12:42   Losowanie - prośba o pomoc

Proszę o pomoc w napisaniu programu, jestem zielony w temacie, a muszę to oddać na zaliczenie.

Napisz program, który wylosuje dwie liczby należące do przedziału [1, 40], a następnie wyświetli w kolumnie A wszystkie liczby mieszczące się w przedziale między mniejszą a większą z tych liczb.

Z góry dziękuje.
ID posta: 145593 Skopiuj do schowka
 
 

EXCELFORUM.pl POLECA - Bezplatne triki prosto na skrzynke email

Farhatek 
Starszy Forumowicz



Pomógł: 6 razy
Posty: 39
Wysłany: 2012-01-22, 12:57   

A coś sam zrobiłeś?
ID posta: 145597 Skopiuj do schowka
 
 

EXCELFORUM.pl POLECA - Bezplatne triki prosto na skrzynke email

nygus99
słuchacz


Posty: 5
Wysłany: 2012-01-22, 13:52   

Zacząłem tak;

Kod:
Sub liczby()
Dim losowanie(2)
For i = 0 To 1
taSama = False
liczba = Int((40 - 1 + 1) * Rnd) + 1
 ActiveCell.FormulaR1C1 = liczba
 ActiveCell.Offset(1, 0).Select


losuje dwie liczby, nie wiem jak zapisać,aby z wylosowanych wyświetlił wyświetli w kolumnie A wszystkie liczby mieszczące się w przedziale między mniejszą a większą z tych liczb.

Edit:
Używaj znaczników [code]. wilow
ID posta: 145602 Skopiuj do schowka
 
 
Farhatek 
Starszy Forumowicz



Pomógł: 6 razy
Posty: 39
Wysłany: 2012-01-22, 14:47   

Ja wymyśliłem coś takiego:


Kod:
Sub losowanie()

Range("A:A").ClearContents
Dim los1, los2, odleglosc, i, minimum As Integer

Do
    los1 = Int((40 - 1 + 1) * Rnd) + 1
    los2 = Int((40 - 1 + 1) * Rnd) + 1
Loop While los1 = los2

    dlugosc = Abs(los1 - los2)
    minimum = WorksheetFunction.Min(los1, los2)
   
For i = 1 To dlugosc - 1
    Cells(i, 1) = minimum + 1
    minimum = minimum + 1
Next i

End Sub
ID posta: 145605 Skopiuj do schowka
 
 

EXCELFORUM.pl POLECA - Bezplatne triki prosto na skrzynke email

nygus99
słuchacz


Posty: 5
Wysłany: 2012-01-22, 17:27   

Farhatek napisał/a:
Ja wymyśliłem coś takiego:


Kod:
Sub losowanie()

Range("A:A").ClearContents
Dim los1, los2, odleglosc, i, minimum As Integer

Do
    los1 = Int((40 - 1 + 1) * Rnd) + 1
    los2 = Int((40 - 1 + 1) * Rnd) + 1
Loop While los1 = los2

    dlugosc = Abs(los1 - los2)
    minimum = WorksheetFunction.Min(los1, los2)
   
For i = 1 To dlugosc - 1
    Cells(i, 1) = minimum + 1
    minimum = minimum + 1
Next i

End Sub


Może sie mylę ale ten kod losuje kolejne liczby.
ID posta: 145612 Skopiuj do schowka
 
 
Farhatek 
Starszy Forumowicz



Pomógł: 6 razy
Posty: 39
Wysłany: 2012-01-22, 18:07   

Losuje jedną liczbę, losuje drugą liczbę a jeśli są takie same powtarza losowanie.
ID posta: 145619 Skopiuj do schowka
 
 

EXCELFORUM.pl POLECA - Bezplatne triki prosto na skrzynke email

nygus99
słuchacz


Posty: 5
Wysłany: 2012-01-25, 22:41   

Kod:
Sub lotto()
Range("B1").Select
For i = 0 To 1
liczba = Int((40 - 1 + 1) * Rnd) + 1
ActiveCell.FormulaR1C1 = liczba
ActiveCell.Offset(1, 0).Select
Next
  Dim Warunek As Boolean
  Dim liczba1, liczba2
   liczba1 = Range("B1").Value
   liczba2 = Range("B2").Value
   Warunek = liczba1 > liczba2
  If Warunek = True Then
   Range("A1").Value = liczba1
   Else
   liczba1 = Range("B1").Value
   liczba2 = Range("B2").Value
   Warunek = liczba1 < liczba2
   Range("A1").Value = liczba2
   End If
End Sub


Pomocy. Mnie juz ręce opadają nie mam pomysłów.

Edit:
Używaj znaczników [code]. wilow
ID posta: 146196 Skopiuj do schowka
 
 
Farhatek 
Starszy Forumowicz



Pomógł: 6 razy
Posty: 39
Wysłany: 2012-01-26, 20:44   

A co jest nie tak w tym co ja napisałem? Może uda mi się skorygować.

Napisz program, który wylosuje dwie liczby należące do przedziału [1, 40], a następnie wyświetli w kolumnie A wszystkie liczby mieszczące się w przedziale między mniejszą a większą z tych liczb.

Tak działa kod, który napisałem...
ID posta: 146341 Skopiuj do schowka
 
 

EXCELFORUM.pl POLECA - Bezplatne triki prosto na skrzynke email

nygus99
słuchacz


Posty: 5
Wysłany: 2012-01-26, 21:36   

Teraz już wiem. Nareszcie załapałem. Dzięki za pomoc
ID posta: 146349 Skopiuj do schowka
 
 
stalowy77
świeżak


Posty: 3
Wysłany: 2012-02-02, 12:04   

proste i miłe w obsłudze makro:
Kod:
Sub losowanie_dwóch()
Dim y, z, c, k, j As Single
losuj:
Range("a1").EntireColumn.ClearContents
y = Int(Rnd * 40) + 1
z = Int(Rnd * y) + 1
If y = z Then
h = h + 1
GoTo losuj
End If
MsgBox z & Chr(13) & y
'ponieważ z<y dla tak zdefiniowanych z i y
For c = z To y (można zrobić c=z+1 to y-1, by nie uwzględniać wylosowanych liczb)
j = j + 1
Cells(j, 1) = c
Next c
End Sub

pozdrawiam

Edit: Proszę stosować tagi [code]
_________________
The world is full of kings and queens that will blind your eyes and steal your dreams.
ID posta: 147121 Skopiuj do schowka
 
 

EXCELFORUM.pl POLECA - Bezplatne triki prosto na skrzynke email

Wyświetl posty z ostatnich:   
Odpowiedz do tematu
Nie możesz pisać nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach
Nie możesz załączać plików na tym forum
Możesz ściągać załączniki na tym forum
Dodaj temat do Ulubionych
Wersja do druku

Skocz do:  

Powered by phpBB modified by Przemo © 2003 phpBB Group
Theme xandgreen created by spleen& Programosy modified v0.3 by warna
Opieka techniczna www.marketingNET.pl

Archiwum