Příspěvky uživatele


< návrat zpět

Strana:  1 ... « předchozí  20 21 22 23 24 25 26 27 28   další » ... 298

Možno ešte jednoduchšie:
Sub zapisvzorec5()
Dim Radku As Long
Dim Minimum As String, Maximum As String

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

With Worksheets("vysledky")
Radku = .Cells(Rows.Count, "A").End(xlUp).Row - 1
.Range("B2").Resize(Radku).Value = Evaluate("=ROUND(RANDARRAY(" & Radku & ",1," & Minimum & "," & Maximum & ",FALSE),1)")
End With
End Sub


RandArray() by sa dalo použiť aj v tom cykle:
Sub zapisvzorec4()
Dim Radku As Long
Dim Minimum As Double, Maximum As Double
Dim R()

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
R = WorksheetFunction.RandArray(Radku, 1, Minimum, Maximum, False)

For i = 1 To Radku
R(i, 1) = Round(R(i, 1), 1)
Next i

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

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ť...


Strana:  1 ... « předchozí  20 21 22 23 24 25 26 27 28   další » ... 298

Uživatelské menu

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

Menu

Formulář Faktura

Formulář Faktura IV

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

Helios iNuvio

Používáte podnikový systém Helios iNuvio? Potřebujete pomoci se správou nebo vyvinout SQL proceduru? Více informací naleznete na stránce Helios iNuvio.

On-line nástroje