Má-li to být univerzální tak bych to nedělal pro každý měsíc zvlášť, možná ani ne všechny druhy najednou, ale zatím jsem to nechal s nima.
Pojmenované oblasti ... Menu Vložit -> Název -> Definovat.
Opravdu se vyplatí je používat ;-)
M@
a já to úmyslně ošetřil podmínkou když hodnota je větší nebo rovno 1, tak zapiš 1, jinak 0 :-), tak stačí tuto podmínku vyhodit :-)
M@
vypadá to trochu šíleně :-), ale třeba to bude fungovat.
měsíce jsem zapsal ve formátu data (vždy první den měsíce). Pak jsou tam definované proměnlivé oblasti v závislosti na počtu zadaných řádků, no a to hlavní vzorec je řešen skalárním součinem.
M@
Ahoj,
teď nevím jestli to chápu, nebo je v tom nějaký háček :-).
Příloha by pomohla, takhle jsem si zkusil prostě jen něco vymyslet.
M@
Udělal jsem takovej malej příklad - viz. příloha.
List obsahuje pojmenovanou oblast jedné buňky s názvem Interval obsahující časový interval pro změnu, 2 tlačítka s odkazem na konkrétní makra (START a ZASTAV) a jeden posuvník měnící interval od 3s do 2m, vše ostatní už jsou pak makra:
v modulu:
Dim status As Boolean
Public Sub casovac()
If status = True Then Application.OnTime Now + Range("Interval").Value * (1 / 24 / 3600), "TAKT"
End Sub
Public Sub TAKT()
If status = True Then
Dim ind As Single
ind = ActiveSheet.Index
If ind < Sheets.Count Then Sheets(ind + 1).Activate Else Sheets(2).Activate 'když aktuální list není poslední, tak skoč na další jinak skoč na druhý (tzn. vynech list Ovládání)
Call casovac
End If
End Sub
Public Sub START()
status = True
Application.DisplayFullScreen = True
Call TAKT
End Sub
Public Sub ZASTAV()
status = False
Application.DisplayFullScreen = False
End Sub
a při aktivaci listu ovládání (stopnutí časovače)
Private Sub Worksheet_Activate()
Call ZASTAV
End Sub
PS: je to stavěno v Office 2003, nevím jestli se 2010 v některých funkcích neliší.
M@
jen tak v rychlosti:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 1 And Target.Value <> "" Then Cells(Target.Row, 2) = Now
End Sub
M@
Nějak takto?
XY graf.
M@
pokud by šlo o jednorázové řešení, tak bych si do sloupce C v obou souborech spojil hodnotu ze sloupce A a B (C2=A2&B2) a pak už stačí do sloupce D vložit funkci SVYHLEDAT hodnotu ze sloupce C souboru 1 ve sloupci C souboru 2.
M@
Předpokládám že jde o něco jako databázi s x údaji, šablona předpokládám že je jakýsi tiskový výstup do kterého se do určených pozic dosadí data z databáze a to pro každý řádek databáze a mezi tím se ten tiskový výstup pošle na tiskárnu. Což by mohlo být jednoduché, snažší by to ale bylo, kdyby ta šablona byla jako další list toho jediného souboru, což by eliminovalo nutnost přenášet data mezi 2 soubory.
M@
M@
třeba kombinace funkce index a pozvyhledat.
M@
teoreticky:
Dim ovoce_list() As String
Dim ovoce As String
ovoce_list = Split("pomeranc,jablko,banan,kiwi", ",")
For o = 0 To UBound(ovoce_list)
Windows(excel_1).Activate 'prepne do weekly reportu
ovoce = ovoce_list(o) 'vyber ovoce
ActiveSheet.PivotTables("PivotTable_TOP_TEN").PivotFields("ConfigCode").CurrentPage = ovoce 'nastaveni PIVOT tabulky na ovoce
ActiveSheet.PivotTables("PivotTable_TOP_TEN").PivotCache.Refresh 'refresh
Range("TOP_TEN_AREA").Select 'oznaci oblast TOP TEN v PIVOT tabulce pro dane ovoce
Application.CutCopyMode = False 'CTRL+C
Selection.Copy 'CTRL+C
Windows(excel_2).Activate 'prepne do weekly reportu
Range(ovoce & "_area").Select 'oznaci oblast TOP_TEN pro dane ovoce
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False 'CTRL+P (pouze hodnoty)
Next
M@
trochu googlení:
pro získání globálního nastavení:
Application.International(xlDecimalSeparator)
pak podmínkou ošetřit načítací kód
nebo zkusit u aplikace změnit
Application.DecimalSeparator = "."
Application.DecimalSeparator = ","
a zkusit jak se to zachová.
Nezkoušel jsem :-)
čerpáno z ...http://www.excelforum.com/excel-programming/745413-getting-decimal-separator.html
M@
Ve firemní síti řeším tak, že soubor s makry mám na síti a jednotlivá tlačítka panelu nástrojů s vlastními makry se pak odkazují na tento soubor. Narozdíl od kopírování maker do personal, touto cestou mám pořád správu nad makry a jakákoliv změna v makru se projeví u všech uživatelů a ne že každý bude mít jinou verzi :-).
Soubor se jmenuje makra.xls a po ukončení cyklu se sám bez dotazů zavře, příklad:
Sub DiakritikaX()
On Error Resume Next
Application.DisplayAlerts = False
Dim cs As String
Dim us As String
cs = "ščřážůúíýéěťóďňŠČŘÁŽŮÚÍÝÉĚŤÓĎŇ" ' případně některé další
us = "scrazuuiyeetodnSCRAZUUIYEETODN" ' pripadne nektere dalsi
For i = 1 To Len(cs)
Selection.Replace What:=Right(Left(cs, i), 1), Replacement:=Right(Left(us, i), 1), LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=True, SearchFormat:=False, _
ReplaceFormat:=False
Next
Application.Workbooks("Makra.xls").Close
End Sub
M@
Nejsnažší by bylo ošetřit si to v tom simulačním programu - při loadu ověřit jestli již neběží, případně si s každým spuštěním do registru zapsat 1 a při ukončení 0 - pak jen ověřovat daný klíč registru.
Pokud to ale chceš takhle přes jinou aplikaci, tak to bude složitější a to projetím všech spuštěných procesů a ověření jestli mezi nimi není ten jenž chceš spustit.
Viz. http://rajasekharmatam.blogspot.cz/2008/06/simple-vb-script-to-check-if.html
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.