Příspěvky uživatele


< návrat zpět

Strana:  1 ... « předchozí  11 12 13 14 15 16 17 18 19   další » ... 53

Tak ještě pokus2 pro více hodnot.

M@

Jen takový pokus (list A a B) = změna, (list A+B) = výsledek s historií.

M@

Co Ms Query, či ADO?

Hned jako první řádek v GetData, ale když na to tak koukám, tak v tom clear data by to muselo začít od 2, ne od 1, protože tím si pak smažeš číslo.
Případně Cleardata mohou zůstat jak jsou, ale před tím než se na ně odkážeš by sis měl do proměnné uložit číslo a pak ho dosadit zpět.

To protože textbox1 není prázdný, ale jen nenalezený, doporučil bych onen ClearForm dát na začátek.

M@

@eLCHa
Tak aby si eLCHa nemohl to makro stopnout, tak zamkneme ještě ten samotný načítací soubor pro otevření pouze s heslem, tzn. makro nespustí a tudíž ho nebude moci ani stopnout :-).
A ano i zamčený sešit se dá nabourat, ale to už si rovnou může nabourat ty zdrojové soubory.

Víc bych to neřešil.

M@

Nebo Excel 2013 a dynamické doplňování.

Do načítacího excelu přidat tlačítko s odkazem na makro.
Public Sub nacti()
Workbooks.Open "D:\TEMP\140429\X.xlsm", , , , "pokus"
Workbooks("X.xlsm").Close
End Sub

kdy první řádek řekne který soubor otevřít a s jakým heslem, druhý řádek ho pak zavře, což bohatě stačí na to aby ten načítací soubor aktualizoval data.
Tímto způsobem si ty dva řádky zkopíruješ několikrát pod sebe a jen změníš názvy souborů.
Při spuštění načítacího souboru až se bude ptát na aktualizaci, tak dáš neaktualizovat, aby nechtěl heslo, místo toho pak stiskneš ono nové kouzelné tlačítko jenž ti postupně otevře a zavře zdrojové soubory, čímž aktualizuje data.
Klidně by to šlo i smyčkou, tzn. v kódu jen tyto dva řádky. Soubor a případně i heslo bude proměnná, pak už jen přidat nějaké for a next. Seznam souborů pak můžeš mít na jiném listu - je to snazší pro správu.

No a co se oné diskutované bezpečnosti hesel týče, tak v editoru maker klikneš na Tools -> VBA project properties -> Protection
tam zaškrtneš lock for viewing a zadáš heslo, čímž zajistíš, že na hesla se nikdo nedostane.

M@

http://skp.mvps.org/2013/new-guides.htm#.U1oP4NVIuHs
M@

Občas se nám toto také stává, ale stávalo se to i u Office 2003. Server nějakým záhadným způsobem nedostane informaci o uzavření souboru a myslí si, že je stále otevřen. Nezbývá než jít na server do otevřených síťových souborů a daný soubor ustřelit.
Žádnou příčinu jsme nenašli.

M@

Bylo by to hezký, kdyby to tak šlo :-) a sám bych se rád přiučil :-), ale bohužel to asi bez makra nepůjde.

Něco podobného řeším makrem, kdy mám jeden zdrojový list s grafy, jenž se neodkazují na oblasti typu A2-A10, ale na pojmenované oblasti, jenž mám na každém listu pojmenovány stejně, ale u každého listu se mohou odkazovat na jinou oblast dat (různé počty řádků). Ze vzorového listu pak makrem zkopíruji graf do požadovaného listu a nakonec mu musím aktualizovat i řady a to tak že dosadím nový název listu.

kousek makra:
Dim jm as string
jm = "Novy_list"
Sheets("Zdroj").Select
ActiveSheet.ChartObjects("graf 1").Activate
ActiveChart.ChartArea.Copy
Sheets(jm).Select
Range("I1").Select
ActiveSheet.Paste
ActiveChart.PlotArea.Select
ActiveChart.SeriesCollection(1).XValues = "='" & jm & "'!MATERIAL_POPISKY"
ActiveChart.SeriesCollection(1).Values = "='" & jm & "'!MATERIAL_ORIGINAL"
ActiveChart.SeriesCollection(2).XValues = "='" & jm & "'!MATERIAL_POPISKY"
ActiveChart.SeriesCollection(2).Values = "='" & jm & "'!MATERIAL_UPDATE"


M@

1) Vytvořit jeden list s textem, že je nutno povolit makra pro správnou funkci.
2) Vytvořit makro, které před uložením přepne na daný list a všechny ostatní nastaví na veryhidden.
3) Vytvořit makro, které při otevření přepne na list který chceš.
Pokud uživatel nepovolí makra, zůstane na to novém list s textem.

M@

Pomůže :-).

Díky

Function InRange(Range1 As Range, Range2 As Range) As Boolean

Dim InterSectRange As Range
Set InterSectRange = Application.Intersect(Range1, Range2)
InRange = Not InterSectRange Is Nothing
Set InterSectRange = Nothing
End Function

Sub TestInRange()
Dim tt As String

For Each cell In Range("KALENDAR")
If cell <> "" Then
If InRange(Range(cell.Address), Selection) Then
tt = tt & cell.Address & vbNewLine
End If
End If
Next
MsgBox tt
End Sub


M@

Napadá mě buďto tisk se zobrazením komentářů na konci, nebo makro ...
Prohledání výběru a výpis do listu2 (musí existovat)
Public Sub komentare()
Dim rd As Single
List2.Cells(1, 1) = "Buňka"
List2.Cells(1, 2) = "Komentář"
rd = 2
For Each cell In Selection
If cell.NoteText <> "" Then
List2.Cells(rd, 1) = cell.Address
List2.Cells(rd, 2) = cell.NoteText
rd = rd + 1
End If
Next
End Sub


nebo prohledání aktuálního listu dle rozsahu vyplněných buňek (výpis opět do listu2)
Public Sub komentare()
Dim rd As Single
List2.Cells(1, 1) = "Buňka"
List2.Cells(1, 2) = "Komentář"
rd = 2
For Each cell In Range(Cells(1, 1), Cells(ActiveSheet.UsedRange.Rows.Count, ActiveSheet.UsedRange.Columns.Count))
If cell.NoteText <> "" Then
List2.Cells(rd, 1) = cell.Address
List2.Cells(rd, 2) = cell.NoteText
rd = rd + 1
End If
Next
End Sub


M@

Ahoj,

nějak mi to po ránu nemyslí a tak se zkusím zeptat :-).
Mám pojmenovanou oblast např. B5:H10, potřebuju ji s akcí selectionchange projet (For each cell in oblast) a zjistit je-li konkrétní buňka z té mé oblasti součástí aktivního výběru.
Ano mohl bych porovnat každou buňku s každou buňkou výběru, ale bojím se toho, že někdo vybere sloupce A:H, nebo hůře celý sešit, v takovém případě selection.count = overflow, přesto ale buňky z mé oblasti jsou součástí výběru.
Hledám něco jako IsSelected(cell), kdyby existovalo a dodat jen buňky mé pojmenované oblasti.
Office 2013.
Díky
M@


Strana:  1 ... « předchozí  11 12 13 14 15 16 17 18 19   další » ... 53

Uživatelské menu

Nejste přihlášen(a)
avatar\n

Menu

Formulář Faktura

Formulář Faktura IV

Oblíbený formulář Faktura byl vylepšen a rozšířen.
Více se dočtete zde.

Helios iNuvio

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.

On-line nástroje