Příspěvky uživatele


< návrat zpět

Strana:  « předchozí  1 2 3 4 5 6 7 8 9   další » ... 15

A co "Ověření" ... nedovolí Ti to zapsat jinou hodnotu a ještě na Tebe zařve jakou číslici můžeš napsat.

For Each lst In array("list1","list5","list10","posledni")

A co když je vyjmenuješ ???

Dim lst As string
For Each lst In array('list1','list5','list10','posledni')
If Worksheets(lst).FilterMode = True Then
Worksheets(lst).ShowAllData
Next lst

Pokud jich bude 30, pak by se Ti hodilo třeba ...
Sub aktualizace_30ti_tabulek()
Dim obj
For Each obj In ActiveSheet.PivotTables
With obj.PivotFields("Týden")
.ClearAllFilters
.CurrentPage = CLng(Range("A1").Value)
End With
' obj.PivotCache.Refresh
Debug.Print obj.Name
Next obj
End Sub

Stačí obrázek ???
img
Co se týče makra, tak to taky lze vědět ActiveCell.Address, Selection.Address apod.
Pokud tě to zajímá permanentně z nějakého důvodu pak taky možno. Podívej se na
http://www.wall.cz/index.php?m=topic&id=6057#posts
http://www.wall.cz/upload/postatt/DBF_APP.zip

Konkrétně na Makro v Listu1 Worksheet_Change(ByVal Target As Range) To co Tě zajímá je pod Target.Address. R.

Ahoj. Sice Ti moc nerozumím (chtělo by to vidět), ale zkus se podívat na možnost vložení výpočitatelného pole a položky za předpokladu, že si v datech třeba vytvoříš sloupec kde budou jedničky a vložíš v datech sloupec, který Ti to bude sčítat. Taky nechápu jak děláš vedle KT kumulativní součet. Když ji přehodíš, tak ten součet můžeš vyhodit. Navíc si myslím (pokud si pamatuji co je to kumulativní součet), že toto se dělá nastavením způsobu vypočtením sloupce v oblasti dat. Tj Nastavení pole->Součet->možnosti->Zobrazit data jako->Mezisoučet v ... a vybereš sloupec nad kterým chceš kumulativní součet provést. Nevím, ale pokud by se jednalo o počet řádků, pak by Ti mělo stačit místo výpočtu "Součet" nastavit "Počet" a je hotovo. R.

To vypadá, že jsi s makry nikdy nic nedělal ... musíš je nejdříve povolit aby při otrvírání sešitu se na ně Excel zeptal, zda je chceš nebo ne povolit ... pletu se ?

Ahoj. Udělal jsem takovou hračku, jak by se to dalo řešit. Nejdříve si stáhni a rozbal ZIP. Otevři si EXCEL a nepovoluj makra. Oba listy jsou nyní prázdné. V editoru VBA (Alt+F11) najdi Modul1 a přepiš cestu k DBF souboru podle Tvého uloženíConst cPathDBF = "C:\DBF_APP"Potom ulož a zavři sešit. Otevři jej znovu a povol makra. Na listu SQL se při otevření načetly data z DBF souboru. Přesuň se na list TEST a kdekoliv cokoliv zapiš. Pokud se jedná o údaj který je nalezen na listu SQL ve sloupci B pak se na listu TEST vedle buňky zapíše hodnota z listu TEST ze sloupce C.

Podobným způsobem můžeš zpracovat i velké faily, ale s tím, že je budeš volat při každém požadavku. To není moc vhodné z důvodu nízké rychlosti. To bys nemohl udělat jako tuto hračku, ale třeba přes dialog. R.

Jinak to nešlo ... jedině celé přepsat. Sice to nefunguje u druhého grafu správně, ale doufám že jsem ten problém pochopil. (cca 4 hod) R.

Možná by bylo vhodnější taky něco z toho vyzkoušet. Myslím si, že jsem Tě pochopil správně.

Pokud Ti ani toto nepomůže, pak by bylo skutečně příště lepší abys poslal vzorek dat ... třeba smyšlený. Jinak je tato komunikace jen prostá ztráta času. R.

Sub test()
Dim i As Long
Dim j As Long
Dim k As Long
Dim s As String
Dim C As String

1. varianta
With Workbooks("KD.xls").Worksheets("KD")
For i = 12 To 15
For j = 5 To 10
k = Range("A65536").End(xlUp).Row + 5
s = Cells(i, j).Address
.Range("B3:" & s).Copy Cells(k, 1)
Next j
Next i
End With

2. varianta
With Workbooks("KD.xls").Worksheets("KD")
For i = 12 To 15
For j = 5 To 10
s = Cells(i, j).Address & ":" & Cells(j, i).Address
.Range(s).Copy Cells(i * 10 + 5, 1)
Next j
Next i
End With

3. varianta
With Workbooks("KD.xls").Worksheets("KD")
s = Cells(3, 3).Address & ":" & Cells(3, 15).Address
For Each C In .Range(s)
C.Copy Cells(5, C.Column)
Next C
End With

4. varianta
With Workbooks("KD.xls").Worksheets("KD")
s = Cells(3, 3).Address & ":" & Cells(3, 15).Address
.Range(s).Copy Range("A1")
End With

End Sub

... běžně Tvůj případ funguje spolehlivě.

Workbooks("otevřený sešit v pozadí.xls").Worksheets("blabla").Range("B12").Copy Range("A1")

Workbooks("otevřený sešit v pozadí.xls").Worksheets("blabla").Range("B12").Copy Cells(2, 2)

Co toto
Range("B3":"O12").Copy nahradit Range("B3:O12").Copy

Je jedno kterým směrem kopíruješ ... aktivní nemusíš psát a tene druhý ano. V makru si musíš být jistý na kterém v daný okamžik stojíš a nebo je Ti to jedno a kopíruješ mezi dvěma skrytými sešity v pozadí a musíš napsat cesty k oběma. Zkus si přečíst můj koment ještě jednou.

R.

http://www.wall.cz/evidence-dochazky-a-planovani-smen.a42.html
Vypadá to podobně a je to hotové :)

Třeba takto
Range("B1").Select
' Graf nesmí být aktivní
With ActiveSheet.Shapes("graf 1")
.Left = Range("B2").Left
.Top = Range("B2").Top
End With

Kopírování používáš v rámci aktivního listu. Tj

Range("A1").Copy Range("B3")

Pokud chceš kopírovat z aktivního listu do jiného listu listu pak použiješ

Range("A1").Copy Worksheet("List2").Range("B3")

Pokud chceš kopírovat z jiného listu listu do aktivního listu pak použiješ

Worksheet("List3").Range("A1").Copy Range("B3")

A pokud otevřeš nový sešit a chceš z něj kopírovat do jiného pak je možné po otevření si nastavit proměnnou a pak s ní pracovat

' Můj sešit
Set A = ActiveWorkbook

' Otevřu jiný
Open...

Set B = ActiveWorkbook

A.Activate

Range("A1").Copy B.Worksheet("List1").Range

B.Close False

atd.

Podstatné je že:
- Aktivní sešit nemusíš uvádět.
- Nemusíš aktivovat příjemce když uvedeš cestu
- Pro lepší čitelnost při kopírování mezi sešity je vhodné nastavit proměnnou typu Workbooks

Pokud se týče kopírování mezi buňkami při větším množství je vhodné použít cyklus foreach

For each C in Worksheet("List3").Range("A1:A10")
C.Copy Worksheet("List3").Range(C.Address)
Next C

Tvůj případ je pak

For i = 1 to 10
Cells(i,1).Copy Worksheet("List3").Cells(i+10,3)
Next i

Ikdyž je na něco Cells vhodné ... převážně používám For Each protože se s tím líp pracuje.
R.

Asi ne ... ostatně všechny výpočty se provádějí na pozadí a pokud začneš pracovat tak se výpočty přeruší a dole Ti skočí myslím "Přepočet" Můžeš laborovat s tím, že si napíšeš makro na zapnutí a vypnutí přepočítávaní a nebo jej mít vypnuté a pokud chceš výsledek tak stisknout F9 a provést výpočet a pak zase pracovat a až máš naklepáno pak zase F9 a pak ...


Strana:  « předchozí  1 2 3 4 5 6 7 8 9   další » ... 15

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