Screenupdating vypne jen okamžité vykreslování, ne přepočítávání, toto bych asi nevypínal, kdysi jsem to zkoušel a trochu jsem narazil, že se to promítlo do exceleu jiných uživatelů u jiných souborů - což jsem do dnes nepochopil, ale pak jsem je musel všechny obejít a pozapínat jim to :-).
Dalo by se nuceně vypnout na začátku kódu a na konci zase zapnout, ale já už to nepoužívám - přináší to problémy.
S accessem by problém být neměl.
M@
Ahoj,
makrem třeba takto:
Cells(1, 2).NoteText Cells(1, 1)
zapíše do komentáře buňky B1 hodnotu z buňky A1.
M@
Na začátek makra zkus vložit:
Application.screenupdating = False
a nakonci makra to zase povolit.
Mělo by to urychlit běh bez průběžného zobrazování změn.
M@
Trochu jsem zkoušel a vypadá to, že mu nemůžeš dodat datum ve formátu data, ale čísla:
Dim datum As Date
datum = "20.2.2010"
List1.Range("A:A").AutoFilter Field:=1, Criteria1:=">" & Format(datum, "#")
M@
Ani bych to tak nenazval zámkem, ale jen makrem které tě na vybrané buňky bez hesla nepustí.
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim heslo As String
heslo = "heslo"
Select Case Target.Address
Case "$B$4", "$C$4", "$D$4"
If InputBox("Zadej heslo pro zápis do této buňky:", "Ověření") <> heslo Then
Cells(ActiveCell.Row, ActiveCell.Column + 1).Activate
End If
End Select
End Sub
M@
trochu jsem si pomohl googlem :-)
Sub Makro()
Dim listy()
ReDim listy(0)
For i = 3 To ActiveWorkbook.Sheets.Count
listy(UBound(listy)) = ActiveWorkbook.Sheets(i).Name
ReDim Preserve listy(UBound(listy) + 1)
Next
ReDim Preserve listy(UBound(listy) - 1)
Sheets(listy).Move
ActiveWorkbook.SaveAs "D:\Pokus.xls"
ActiveWorkbook.Close
End Sub
teoreticky by to mohlo jít i takto:
Sub Makro()
Dim listy()
ReDim listy(0)
For i = 3 To ActiveWorkbook.Sheets.Count
listy(UBound(listy)) = i
ReDim Preserve listy(UBound(listy) + 1)
Next
ReDim Preserve listy(UBound(listy) - 1)
Sheets(listy).Move
ActiveWorkbook.SaveAs "D:\Pokus.xls"
ActiveWorkbook.Close
End Sub
M@
Jak píše paveku, není tlačítko jako tlačítko :-).
jinak spíš než tlačítka stejně používám třeba kliparty - je to pak hezčí :-)
Pak už s tím pracovat lze např:
ActiveSheet.Shapes("Tlačítko 198").Left = 0
M@
přiřadíš tomu tlačítku makro (to jde) do makra vložíš:
MsgBox Application.Caller
pak klikneš na tlačítko a v tu ránu víš jak se jmenuje a můžeš s ním pracovat.
M@
Jsem si naprosto jistý že funguje.
Když nedáš příklad ty, tak dám příklad já a snad už si ho nějak přebereš :-).
M@
M@
asi bude lepší příklad :-).
Jinak na obrazovku se pomocí VBA centruje blbě, jelikož narozdíl od VB nepodporuje objekt Screen, takže jsem šel cestou centrování na okno excelu, teď mě tak napadlo, že bych mohl nejdřív excel maximalizovat a pak to vycentrovat, čímž se dostanu na střed plachy :-), pak zas můžu excel vrátit do původní polohy :-)
Kocimu, pomocí range není nutné označovat celý sloupec, či oblast, lze použít třeba i jen pro jedinou buňku range("A3") - konkrétní buňka srozumitelně označena, aniž by člověk musel počítat sloupce :-) - ono využití se najde ;-)
M@
Ahoj,
první řádek = první dotaz
druhý řádek = snad pomůže s druhým dotazem, tady si nejsem jistej :-)
MsgBox Mid(ActiveCell.Address, 2, InStr(2, ActiveCell.Address, "$", vbTextCompare) - 2)
MsgBox Application.Caller
M@
Ahoj,
použil bych událost resize:
Private Sub UserForm_Resize()
UserForm1.Left = Application.Left + Application.Width / 2 - UserForm1.Width / 2
UserForm1.Top = Application.Top + Application.Height / 2 - UserForm1.Height / 2
End Sub
M@
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.