Mno - asi by šlo
Ale nejdříve se zamyslete, zda nestačí:
Nastavte si Zobrazit konce stránek (vpravo dole vedle lupy)
A vložte si konce stránek.
A pak při tisku používejte tisknout od strany do strany
Budete schopen, opravit si to i sám
Od boku:
zkuste
Me.Controls("TextBox" & I)
nebo možná i
Controls("TextBox" & I)
v případě že se TextBoxy jmenují TextBox1..30
Nebo si je strčte do pole. Záleží na vás
Nicméně je tak nějak vhodné, aby data v comboboxu byla seřazená
Tady je moje procedurka na výpis neduplicitních hodnot
Sub subUnique()
'Koutný Karel
'Vyhledá v oblasti jedinečné buňky a vypíše je na nový list
Dim rSelection As Range
Set rSelection = Selection
Dim colList As New Collection
On Error Resume Next
Dim rCell As Range
For Each rCell In rSelection.Cells
colList.Add rCell.Value, CStr(rCell.Value)
Next rCell
Set rCell = Nothing
On Error GoTo 0
ReDim sUnique(colList.Count - 1, 0) As String
Dim I As Integer, J As Integer
For I = 1 To colList.Count
sUnique(I - 1, 0) = colList(1)
For J = 1 To colList.Count
If sUnique(I - 1, 0) > colList(J) Then
sUnique(I - 1, 0) = colList(J)
End If
Next J
colList.Remove sUnique(I - 1, 0)
Next I
Dim shNew As Worksheet
Set shNew = Sheets.Add
shNew.Cells(1).Resize(UBound(sUnique, 1) + 1, 1).Value = sUnique
Set shNew = Nothing
Set rSelection = Nothing
End Sub
Prvděpodobně by bylo rychlejší (možná i výrazně), ale nejdříve by se muselo přetypovat na long ;)
s accesem nedělám, takže ho moc neznám
jestli to není problém, pošlete - když to někdy vyjde, taxi to spustím ;)
Pokud chcete použít RowSource, vložte na list dynamickou pojmenovanou oblast
např =POSUN(List1!$A$1;0;0;POČET2(List1!$A:$A);1)
a tu pak použijte
Do UF s comboboxem vložíte např takto:
Private Sub UserForm_Initialize()
Dim rInputRange As Range
Set rInputRange = Range("XY")
Dim colList As New Collection
On Error Resume Next
Dim rCell As Range
For Each rCell In rInputRange.Cells
colList.Add rCell.Value, CStr(rCell.Value)
Next rCell
Set rCell = Nothing
On Error GoTo 0
With ComboBox1
.AddItem colList(1)
Dim I As Integer, J As Integer
For I = 2 To colList.Count
For J = 0 To .ListCount
If J = .ListCount Then
.AddItem colList(I)
Else
If colList(I) < ComboBox1.List(J) Then
.AddItem colList(I), J
Exit For
End If
End If
Next J
Next I
.ListIndex = 0
End With 'ComboBox1
Set rInputRange = Nothing
End Sub
Vím k čemu slouží Split
ptám se, proč je tady ;)
ad Egypt: Včera som to dal do Access a vypadlo 430557 kombinácií
Kdybyste někdy neměl co dělat, zajímalo by mě, jestli to to moje makro zvládne ;)))
Jen technická poznámka
Toto není PrintPreview a nezaručuje vám to, že to takto bude vypadat na tiskárně. Navíc to neobsahuje záhlaví, zápatí atp.
Pokud tedy šlo o PrintPreview
Klikněte na filtr, vyberte Filtry čísel... a poslední vlastní filtr
Tam si vyberte možnost, jakou potřebujete
Je větší než 19 a menší než 51
Náhodou jsem tu nakoukl a taxe jen zeptám
@Opičák
K čemu sloučí
Bunka = Split(Bunka, " ")(0)
@Martin.B
Proč vytváříte další data na listu a nenacpete to rovnou do ComboBoxu
Mno tady by posloužilo právě On Error
dim s as string
s = vbnullstring
on error resume next
s=název.value
on error goto 0
if not s = vbnullstring then
'kód
end if
Jsou dvě možnosti
Buď tam tu oblast nechat, dát jí hodnotu např. "=0" a pak testovat, jestli odkaz je typu range. Pokud je tak zamykat. Toto je podle mne lepší, protože by se takto dalo identifikovat list, pro který se má procedura provést (když název existuje, tak...).
Druhou možností je název smazat a testovat jeho existenci.
@AL
Zrovna řeším problém s ribbonem a narazil jsem na toto:
http://www.rondebruin.nl/ribbonstate.htm
Nezávisle se mi tedy potvrdilo, že VBA má tak trochu problém s pamětí a proto je lepší opravdu používat prostředky, na které se dá spolehnout.
Takže hodnoty ukládat do buněk, pojmenovaných názvů apod. A pokud mám soubor, ve kterém je velké množství vzorců a každý zápis do buňky vyvolá propočet, který trvá i sekundu a to pak otravuje, používám ovládací prvky vložené na skrytý list (label, listbox...)
@Opičák
Skončil jsem u 2007, ale doteď mi vždy házelo
15.5 = 15.5.2013
15/5 = 15.5.2013
15:5 = 15:05
ale to je jedno
Chtěl jsem jen naznačit, že je třeba si Erroruodolný počítač vytvořit sám a to ošetřením chyb. Zvlášť u UF.
Když vím, že UF má dát datum, tak přece vím, že to musí být celé číslo v intervalu od do (pokud je to text, musím ho převést do tvaru, který umí excel pochopit)
Takže toto byste měli testovat v události txtbox.change a vyhnete se vyjímce. Tzn, že je zbytečné používat nějaký split a vytvářet pole apod.
Prostě pokud obsah textboxu nevyhovuje, tak nedovolím odeslat UF
http://wall.cz/index.php?m=topic&id=11863&page=2#post-11883
Oblíbený formulář Faktura byl vylepšen a rozšířen.
Více se dočtete zde.
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.