Příspěvky uživatele


< návrat zpět

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

Pokud jsem správně pochopil, tak problém je pouze s formátováním nepracovních dnů, protože ostatní podmíněné formáty nemůže uživatel ovlivnit.

Změny na listu stejně kontrolujete, tak proč toho nevyužít a nenastavit i formát?

EDIT:
Popřípadě lze uživateli zakázat jakékoliv kopírování.

Problematika IdiotenSichrhajstFest je vždy variantou mezi tím co dovolit BFU a co si ošetřit programově.
Nechat uživateli volné pole působnosti a pak se modlit, že nic nenaruší, nebo dovolit uživateli pouze předat hodnotu (např. InputBoxem) a pak ji programově vložit, popřípadě po každé změně hodnoty v buňce data formátovat podle potřeb.

Kdyby byla ukázka a co konkrétně se má hlídat, asi by se dalo přemýšlet i jinak.

Ta definice je prkotina.

Klidně můžeme toto téma dále řešit v Zjištění počtu řádků.

Zřejmě jsem se špatně vyjádřil, počet sloupců bude vždy pevně daný a neměnný.

Vytvořené pole dat (jako Global) podle barvy prvního sloupce pak bude použito buď na vložení nových záznamů nebo aktualizaci změněných hodnot již exitujících záznamů.
Odlišení podle barvy buňky prvního sloupce předpokládám při neúspěšné aktualizaci zdrojového souboru dat.

Pokusil jsem se něco nasimulovat.
Ano ve zdrojovém souboru dat se aktualizují pouze vybrané řádky podle ID jednotlivých záznamů.
Ano souvisí to částečně s tím tématem - ale je to jiná funkcionalita.

Popisy sloupců a počet jsou neměnné, slKonec=poslední použitý sloupec (ID záznamu).

Ovládací soubor má více funkcionalit pro různé typy uživatelů, kteří k němu přistupují (celkem cca 40-50 uživatelů s různými požadavky). Zjednodušeně lze definovat skupiny uživatelů jako zadavatel, servis, vystupní kontrola, fakturace.
Každá skupina uživatelů ovlivňuje jiný sloupec, ale pro celkový přehled zpracování dat je pro všechny uživatele stejný náhled na data prostřednictvím "Ovládacího" souboru.

EDIT:
na listu jsou pouze hodnoty, datové typy jsou ošetřeny individuálné (vím co umí excel s datovými typy provést 5 ).

Funkční, takže fígl je v tom, že se nejprve načte celá oblast a následně se převedou pouze viditelné řádky oblasti z pole všech záznamů podle čísla řádku.
Jen mi hlava nebere proč Set rngFilter = .SpecialCells(xlCellTypeVisible)nevybere celou nesouvislou oblast dat, ale vždy jen první řádek oblasti.

Dík

EDIT:
domnívám se, že cyklusFor i = 1 To rngArea.Rows.Count
bude zbytečný, protože rngArea bude obsahovat vždy právě jeden řádek. Nebo se pletu?

Počet sloupců se může měnit, avšak žádné sloupce nebudou nikdy skryty.
Spíše jde o to, že rngFilter.Columns(1)vrací pouze jeden řádek dat, místo 3 v ukázce.

Dobrý den,
nedaří se mi vytvořit makro, které by načetlo vybrané (filtrované) řádky do pole.
Načte se mi vždy pouze jeden řádek z výběru.
Díky

Díky za zjednodušení výpočtu.
Ano pojmem pole myslím VBA Array
jde o problematiku změny dat ve společném souboru na základě změny provedené u jednotlivce
zatím řešeno přes pole hodnot, které se přepisují do "společného" souboru (jakoby databáze).
pocet = Intersect(Selection.Parent.Columns(1), Selection.EntireRow).Cells.Count

ReDim aZaznam(pocet - 1, slKonec - 1)

For idx = 0 To UBound(aZaznam)
For i = 0 To slKonec - 1
aZaznam(idx, i) = "none" ' naplnění pole "bez změny"
Next i
Next idx

pocet = 0
For Each oblast In Selection.EntireRow.Areas
For Each radek In oblast.Rows
If Not radek.Hidden Then
hodnota = Cells(radek.Row, slZmena)
' změna hodnoty na opačnou
If hodnota = "ANO" Then
aZaznam(pocet, slZmena - 1) = "NE"
Else
aZaznam(pocet, slZmena - 1) = "ANO"
End If
aZaznam(pocet, slKonec - 1) = Cells(radek.Row, slKonec) ' ID měněného zázanmu
pocet = pocet + 1
End If
Next radek
Next oblast

na základě tohoto pole je pak následně aktualizován zdrojový soubor dat a aktualizují se pouze opravdu změněné hodnoty.
Zatím jsem nepřišel na lepší způsob sdílení dat s použitím maker a kontrol aniž by došlo ke konfliktu sdílení nebo ztráty dat.

Super.
Díky
Edit
Lze jednoduše vyplnit pole konkrétními hodnotami z řádku v jednom cyklu aniž bych znal předem velikost pole?

idx=0
For Each oblast In Selection.EntireRow.Areas
For Each radekX In oblast.Rows
If Not radekX.Hidden Then
' zde např.
poleHodnot(idx,0)= hodnota1
poleHodnot(idx,1)= hodnota2
idx=idx+1
' ...
End If
Next radekX
Next oblast

Dobrý den,
potřebuji vypočítat počet řádků ve výběru oblasti dat označených uživatelem
For i = 1 To Selection.Rows.Count
If Not Selection.Rows(i).Hidden Then
pocet = pocet + 1
End If
Next i
vrátí správný počet vybraných řádků v souvislé oblasti dat i když je zapnutý filtr

Pokud však bude označena nesouvislá oblast dat, výsledek vrátí pouze počet první souvislé oblasti a další je ignorována.
Oblast na obrázku vrátí tímto algoritmem pouze pocet=7.

Jak vypočítat všechny vybrané řádky?
Díky za nakopnutí.

5
bejkárna, ale dala mi dost zabrat v lovení a hledání příčiny

ThisWorkbook.Windows(1).Visible = True
jen netuším, kde nastal opak ...

Tak kdyby náhodou to někomu taky udělalo problémy.

Dobrý den,
co zapříčiní, že po otevření souboru excelu nejsou viditelné jednotlivé listy? Viz screeny v příloze

Nějak si už nevím rady jak zviditelnit listy. Soubor byl otevírán metodou GetObject(soubor).

Anonym napsal/a:

Uživatelsky nepřívětivé, ale funkční

ActiveWorkbook.RefreshAll
MsgBox "Pokračuj..."
Calculate


Pokud vadí ta hláška, což by mě vadila, zkuste
Application.ScreenUpdating = False
ActiveWorkbook.RefreshAll
With Application
.Wait (Now + TimeSerial(0, 0, 0.2)) ' čeká 0,2 sec
.Calculate
.Application.ScreenUpdating = True
End With

Možnost je např. zobrazit zprávu v prohlížeči a pak si prohlédnout zdrojový kód.
Ale připravte se na spoustu balastu. ...

Mělo by pomoci vcelku jednoduché řešení.
Ve ForEach smyčce na všemi listy posílat tisk vždy toho konkrétního listu.
Domnívám se, že to by si měla tiskárna obsloužit v pohodě.

Je to vlastně obdoba jako když budete ručně procházet každý list a ten samostatně tisknout.

Dim list As Worksheet
For Each list In WorkSheets
list.PrintOut
Next


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

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