Zobrazení aktuálního data v textboxu:
TextBox1.Text = Date
Zobrazení následujícího data v textboxu:
TextBox1.Text = Date + 1
Vzorec na výpočet svátků neexistuje. Co se týče výpočtu pracovních dní, tak vyzkoušejte funkci WORKDAY. Více na http://office.microsoft.com/cs-cz/excel/HP052093391029.aspx
Jestli jsem to dobře pochopil, tak v té druhé tabulce budou součty směn dnů v týdnu. V příloze je moje řešení.
Použil jsem vyhledávací funkci SVYHLEDAT. Musel kvůli tomu prohodit sloupce tak, aby první sloupec by Typ.
Pokud vyhledávací funkce nic nenajde jedná se o první výměnu a Počet dní a Počet stránek = 0. Když tak si vzorec můžete ještě upravit. Řešení je v příloze.
=KDYŽ(JE.CHYBHODN(SVYHLEDAT(B11;$B$3:$C10;2;0));0;C11-SVYHLEDAT(B11;$B$3:$C10;2;0))
Lze za použití VBA funkcí LEN, RIGHT, LEFT, MID pro rozdělení textu nebo pak použitím funkce SPLIT vytvořit pole a to pak načíst do buněk.
Chyba se zobrazí, pokud označím oblast buněk a provedu změnu (výmaz). Mělo by stačit jen ošetřit chybu. Takhle by to mělo být OK.
Private Sub Worksheet_Change(ByVal Target As Range)
On Error GoTo x
If Target.Value = "Vadná odeslána" Or Target.Value = "Vadná odeslána - Galway" Then
Target.Cells(, 2) = Date
End If
x:
End Sub
Sub oblast()
Dim myRange As Range
Dim FirstCell, LastCell As Range
Set myRange = Application.InputBox(prompt:="Select a cell", Type:=8)
With myRange
Set LastCell = .Cells(.Cells.Count)
Set FirstCell = Cells(.Row, .Column)
End With
End Sub
Myslím, že "kolokol" to udělal dobře. Jen jsem doplnil kontrolu chyb. Názvy listů budou v buňkách B2:B11 = udělal jsem malou tabulku jako menu.
První list slouží jako menu a makro s ním nepracuje. Kód jsem vložil do listu s menu.
Private Sub Worksheet_Change(ByVal Target As Range)
Dim i As Integer
On Error GoTo chyba
For x = 1 To 10
If Range("B" & x + 1) <> "" Then Worksheets(x + 1).Name = Range("B" & x + 1)
Next x
Exit Sub
chyba:
MsgBox "Název listu musí být jedinečný. Zadejte jiný název listu", vbCritical, "Chyba zadání"
End Sub
Pokud se jedná o jednorázový převod, tak na to bych použil funkci =MALÁ(text).
Stačí zadat Range("A1").Select
Příkazem Sheets("leden").Select
Službu jsem nepoužil, ale mám to v plánu. Zatím hledám a vybírám. Chci to integrovat do SL.
Ano, tohle je makro. Dělám to samé co vy. Těch souborů mám 30. Makro lze spustit "Nástroje/Makro/Makra" (Alt + F8) nebo lze makro vyvolat tlačítkem. O tomto způsobu jsem již psal v článcích.
Tak do buňky A1 vložte vždy ten název listu, který chcete právě zobrazit.
V tomto příkladu se názvy listů v celkovém souboru musí jmenovat stejně jako importované soubory.
Sub copy_data_from_files()
'Zkopírování dat ze souborů
Dim soubory, soubor, nazev_souboru, tento_soubor As String
Dim i As Variant
Application.ScreenUpdating = False
soubory = Array("soubor01", "soubor02", "soubor03", ... )
tento_soubor = ThisWorkbook.Name
For Each i In soubory
soubor = i
nazev_souboru = ThisWorkbook.Path + "\" & soubor
Set wb = Workbooks.Open(Filename:=nazev_souboru)
Cells.Select
Selection.Copy
Windows(tento_soubor).Activate
sheets(soubor).Select
ActiveSheet.Paste
Range("A1").Select
Windows(soubor).Activate
Application.CutCopyMode = False
ActiveWindow.Close SaveChanges:=False
Next
Windows(tento_soubor).Activate
Application.ScreenUpdating = True
End Sub
Oblíbený formulář Faktura byl vylepšen a rozšířen.
Více se dočtete zde.