Příspěvky uživatele


< návrat zpět

Strana:  1 ... « předchozí  8 9 10 11 12 13 14 15 16   další » ... 286

Minimum = Replace(InputBox("Zadej minimální hodnotu např: 5,7 "), ",", ".")
Maximum = Replace(InputBox("Zadej maximální hodnotu např: 7,2 "), ",", ".")

Range("B2", Cells(Rows.Count, "A").End(xlUp).Offset(0, 1)).Formula = "=ROUND(" & Minimum & "+RAND()*(" & Maximum & "-" & Minimum & "),1)"


EDIT:
A hotové čísla:
Sub zapisvzorec3()
Dim Radku As Long
Dim Minimum As Double, Maximum As Double
Dim R() As Double

Minimum = Val(Replace(InputBox("Zadej minimální hodnotu např: 5,7 "), ",", "."))
Maximum = Val(Replace(InputBox("Zadej maximální hodnotu např: 7,2 "), ",", "."))

With Worksheets("vysledky")
Radku = .Cells(Rows.Count, "A").End(xlUp).Row - 1
ReDim R(1 To Radku, 1 To 1)

For i = 1 To Radku
R(i, 1) = Round(Minimum + Rnd() * (Maximum - Minimum), 1)
Next i

.Range("B2").Resize(Radku).Value = R
End With
End Sub

Slovné spojenie "vymyslene seriove cislo" je skoro ako oxymoron. Sériové čísla sú totiž vždy systémové - poskladané na základe nejakých pravidiel, a nie náhodne vymyslené.

Možno skúste priložiť prílohu, pre lepšie pochopenie sa.

Nikdy ma nenapadlo skúmať, či má Selection vlastnosť ListObject. Nová infoška, dík. 1 Zaujímavosťou je, že to nie je ListObjects, ale ListObject. Teda ak vyberiem 2 Tabuľky, ListObject je iba tá prvá.

Skrátene ide napísať aj verzia s Intersect, ale nie tak krátko ako Vaša verzia:
On Error Resume Next
With Worksheets("Hárok1").ListObjects("Tabulka")
MsgBox Intersect(Selection, .DataBodyRange).Row - .Range.Row
End With


Každopádne tak či tak strácame info o konkrétnej chybe. Treba sa rozhodnúť či je toto info potrebné.

Pr.
Sub KtoryRiadokTabulky()
Dim XSelect As Range

With ThisWorkbook.Worksheets("Hárok1")
If Selection.Parent.Name = .Name Then
If TypeName(Selection) = "Range" Then
With .ListObjects("Tabulka")
Set XSelect = Intersect(Selection, .DataBodyRange)
If Not XSelect Is Nothing Then
MsgBox "Výber začína na riadku " & XSelect.Row - .Range.Row, vbInformation
Else
MsgBox "Výber sa neprelína s objektom " & .Name, vbExclamation
End If
End With
Else
MsgBox "Nie je vybraná oblasť, ale " & TypeName(Selection), vbExclamation
End If
Else
MsgBox "Spúšťate makro na inom liste ako " & .Name, vbExclamation
End If
End With
End Sub


EDIT: Ešte som pridal ošetrenie prípadu, ak nie je vybraná žiadna oblasť, ale napr. ovládací prvok, graf, či obrázok ... vyvolalo by to totiž chybu.
Aspoň je pekne vidieť, ako funguje programovanie, že pre 1 funkčný riadok treba myslieť a ošetriť množstvo možných stavov, ktoré by mohli nastať. A to tam ešte nie je zakomponované ošetrenie neexistencie požadovaného listu a neexistencie Tabuľky "Tabulka".

V tom prípade som Vás pochopil správne, a obe verzie Vám budú fungovať.

A ešte ma napadlo použiť Class s Events a dosiahnuť tým možnosť zafarbenia volieb.

Nejako som ten popis nepobral.
Na jednom hlasovacom lístku máte X kandidátov. A pri každom kandidátovi môžete zaškrtnúť Áno/Nie/Zdržal. Doslovne pri každom - naraz. Naraz ? A ako potom vyhodnocujete kto je zvolený? Ak môže vzniknúť mrte možností kombinácií. Niekto zvoli ANO pre k1, k2 a NIE pre k3. Iný zvolí NIE pre k1 a ANO pre k3 no pri k2 sa zdrží. Ďalší dá 3x NIE, ...
Ak toto preklenieme, tak potom po vyplnení formulára (odpísaní papierového lístku ???) sa potom prevedie zápis tlačítkom?

Pozor oprava, mrk vyššie.

Stačí teda v 1. riadku urobiť takúto zmenu
Set rZmena = Application.Intersect(Range(Range("W4"), Cells(Rows.Count, "N").End(xlUp)), Target) 'kontrola změny v dané oblasti
a vyplnenosť dát/riadkov by som určo robil pomocou kontroly posledného údaju v "N", lebo práve "N" hodnota sa bude potom vyhľadávať.

Ak myslíte niečo iné pod výrazom "pokud je řádek na Listu2 prázdný", viac to špecifikujte.

EDIT:
Oprava, musí to byť napr. takto

Set rZmena = Application.Intersect(Range(Range("W4"), Cells(Cells(Rows.Count, "N").End(xlUp).Row, "W")), Target) 'kontrola změny v dané oblasti
Inak by to reagovalo od stĺpca N po stĺpec W. Som sa "upsal" 5

Neviem, či ste to domyslel. Tam môže nastať množstvo situácií na ktoré treba myslieť. Viacnásobná zmena, iná hodnota ako 1, nekonzistentná oblasť zmeny, nenájde sa hodnota, prázdne N, žiadne dáta, opakovaná zmena pri W pri Nie, ...
Akurát počítam že nebudete filtrovať, lebo potom treba zisťovať rozsah inak.

Príklad

1. Koľko tých čísel P bude? Odhadom koľko max bude počet čísel P v tom súčte? Pamätám si na jednu účtovníčku, ktorá chcela niečo podobné, a nedokázala pochopiť, že taký výpočet bude (v jej daných počtoch) trvať celé roky. Musel som ukázať reálne počet prejdených čísel, kombinácií za hodinu a previesť na roky - to boli strašné miliardy kombinácií.

2. Robil som to vtedy makrom. Môže byť makro?

Tlačítka na filter sú zbytočné. To si makro ošéfuje podľa stĺpca J.

Problém je, že je to asi nerealizovateľné. Kvôli tomu, že vy požadujete pravdepodobne na každú tlačenú/exportovanú stránku toho istého listu, inú lupu ! Aby sa Vami definovaný počet riadkov vliezol na stránku.

Takže môžu byť ešte iné dáta pod oblasťou tlače a vpravo od nej? Nad oblasťou tlače a vľavo od nej nie.

Budú mať stránky nejaké orámovanie? Pýtam sa preto, lebo ak áno, môže pri odstraňovaní vedľajších dát prísť k odstráneniu rámov krajných buniek. A potom to treba napraviť.

Prvé 2 strany majú 50 riadkov, tretia 47 - je to v poriadku?

Bude teda potrebné vkladať manuálne zlomy strán, lebo by sa prvé 3 riadky z ďalšej strany dali k tým 47.

Uvidím, čo ma ešte napadne spýtať...

Vytvoril som si pokusný zdroj 13000 riadkov, a aktualizuje sa 9000, a vzorcom to robí asi 5 sek. Cez ADO asi 0,5 sek. Rýchlejšie to asi nepôjde. Má to spolu 1,4 MB takže odkaz na GoogleDrive.


Strana:  1 ... « předchozí  8 9 10 11 12 13 14 15 16   další » ... 286

Uživatelské menu

Nejste přihlášen(a)
avatar\n

Menu

On-line nástroje

Formulář Faktura

Formulář Faktura IV

Oblíbený formulář Faktura byl vylepšen a rozšířen.
Více se dočtete zde.

Aktivní diskuse