@eLCHa
S tým som sa ešte nestretol, dík
Toto sa mi zdá by mala zčasti zvládnuť kontingenčná tabuľka, len škoda že si nepriložil súbor ako to vyzerá a ako to má vyzerať. Vymysli falošné dáta a hotovo, len štruktúru ponechaj.
A ešte - píšeš že potrebuješ prehľadať čísla účtu - v tabuľke nič nevidno, žiadne číslo účtu.
Nikto nebude sám z hlavy vytvárať súbor, keď netuší čo je kde.
Prepáč, čo je "hh:nn . . .?
Nedávaš procedúru do List1 vo VBA. Vlastne tam to makro nemáš.
Stlač súčasne Alt-F11, uvidíš editor VBA. V ňom vľavo nájdi List1 a dvakrát klikni. Vlož tam procedúru:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
With Range("Pocitadlo")
.Value = .Value + 1 / 6
On Error Resume Next
If .Value > 1 Then .Value = 1 / 6
End With
Range("D20").Select
End Sub
Ak bude paliet 6, tak cez Format Bunky Vlastní zmeníš ###?/12 na ###?/6
a v makre prepíšeš všade 1/12 na 1/6
Nefungovalo to, lebo si súbor neuložil ako podporujúci makrá, t.j. nie xlsx ale xlsm
Musel som zrušiť zlúčené bunky kde je zlomok, tak si to nejak graficky vylepši.
Príloha - predstava - čísla
Dvojklik v naformátovanej bunke
"Mesiac" maďarsky "Hónap" takže "hhhh"
Rok Mesiac Deň = év hónap nap
Podľa zobrazeného dialógu si sa pokúsil zrušiť prepojenie a dať hodnoty. Lenže na to nereaguje. Sú dve (istotne viac) možnosti. Na krátku dobu skopíruj zdrojový zošit na pôvodné miesto, druhá je zmeniť v dialógu odkaz hromadne v celovbam súbore na jeho nové umiestnenie (ručne alebo cez VBA).
Je to taktohttps://support.office.microsoft.com/client/Preru%C5%A1enie-prepojenia-na-extern%C3%BD-odkaz-v-Exceli-f1ca8b08-4f24-4af6-92e5-f4fdb1442748?NS=EXCEL&Version=12&SysLcid=1051&UiLcid=1051
Cez VBA na aktívnom liste:
Sub Linkreset()
Dim rng As Range
For Each rng In ActiveSheet.UsedRange.Cells
If rng.HasFormula Then
If InStr(rng.Formula, "\[") Then
rng.Value = rng.Value
End If
End If
Next rng
End Sub
Alebo ak vieš nové umiestnenie:
Sub zmenaPrepojenia()
ActiveWorkbook.ChangeLink Name:="E:\LOTERIE_TIP.XLS", NewName:="E:\LOTERIE_TS.XLS", _
Type:=xlExcelLinks
End Sub
Takže si podľa seba niečo vyber.
Napr. rozlíšenie obrazovky zistíš cez API:
Declare Function GetClipCursor Lib "user32" (lprc As RECT) As Long
Type RECT
gauche As Long
haut As Long
droit As Long
bas As Long
End Type
Dim oGCC As RECT
Sub dimEcran()
GetClipCursor oGCC
With oGCC
MsgBox .droit & " x " & .bas
End With
End Sub
Veľkosť (zoom) aká je práve používaná:
Sub zoom()
[B1] = ActiveWindow.zoom
End Sub
Ak chceš aby sa napr. bunka C12 objavila v ľavom hornom rohu a tým dosiahneš viditeľnosť svojich dát (naspäť rovnaká procedúra ale dať A1):
Sub skuska()
Application.Goto Range("C12"), Scroll:=True
End Sub
Hranie sa s obrazovkou:na celú obrazovku vybraná oblasť, návrat na 100% a napokon 80% zobrazenie
Sub DisplaySize2()
Range("A1:D7").Select
ActiveWindow.Zoom = True
End Sub
Sub DisplaySize3()
ActiveWindow.Zoom = False
End Sub
Sub DisplaySize4()
ActiveWindow.Zoom = 80
End Sub
a napokon, ak používaš súvisiacu oblasť a máš bunky od A1 (alebo inak, to je treba napísať do procedúry), urobí ti zoom aby si videl VŠETKO , celú súvisiacu oblasť. Procedúru umiestni vo VBEditore na List, ktorého sa to týka:
Private Sub Worksheet_Activate()
Range("a1").Select
Selection.CurrentRegion.Select
ActiveWindow.zoom = True
Range("a1").Select
End Sub
Skúste
http://www.dataspectrum.cz/dwnl/odeslaniemailu.zip
Skúsil som to urobiť kontingenčnými tabuľkami
Tak napríklad využiť funkciu SVYHLEDAT/VLOOKUP
Do bunky B8 vlož vzorec =VLOOKUP($B$3;Data!1:4;4;0), do bunky B3 napíš hodnotu 3 a v B8 bude adresa podľa vzorca Janová 8. Podobne postupuj do všetkých buniek, kam chceš niečo vyhľadať, prispôsobuj hodnotu stlpca
Vo VBA vlož do ThisWorkbook (Tento sešit) kód:
Private Sub Workbook_NewSheet(ByVal Sh As Object)
Application.DisplayAlerts = False
Sh.Delete
Application.DisplayAlerts = True
End Sub
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.