Příspěvky uživatele


< návrat zpět

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

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

Pánové, s velkým zájmem jsem si přečetl celou tuto konverzaci, která by měla být poučením pro všechny.

Velice se přikláním k názorům Stalker a Al. Vážím si práce elninoslov, ale bohužel odvádí pro mnohé medvědí služby - což ostatně velice výstižně popsal Al.
Dnes a denně se s obdobnými problémy potýkám v zaměstnání, někdo chce radu, ale není schopen odpovědět na základní otázky, či navrhnout varianty jak by danou problematiku řešil. Takovým to osobám je jakákoliv poskytnutá rada na dvě věci, sice to pravděpodobně udělají podle doporučení (a nebo také ne a to je pak mnohem horší), ale druhý den chtějí poradit s tím samým problémem.
Co z toho plyne? Pokud se dotyčný nějakým způsobem nezapojí do řešení jeho problému je jakákoliv rada zbytečná.
Udělat to za něj? Sice to vyjde časově méně náročněji, ale nic se nezmění. Tazatel může 100x uvést, že se chce něco naučit, ale pokud se nezapojí nenaučí se nic.

Nikdy mi nejde o čas strávený při pomoci druhým, ale o výsledný efekt, potažmo efektivnost vynaloženého úsilí.
10

Děkuji za tuto diskuzi.

Edit:
vůbec by nebylo od věci občas pročít http://wall.cz/index.php?m=topic&id=8351

Stalker napsal/a:

O Žádnou chybu se nejedná....

Proč bez problémů Workbooks(zdrojSesit).Worksheets(zdrojList).Range("A1:AH122").Copy _

Workbooks(cilSesit).Worksheets(cilList).Range("A1")
projde???

náhradou Range("A1:AH122") za Range(Cells(1,1),Cells(122,34))) zhavaruje?
Range(Cells(1,1)) není až taková zhovadilost, ale souhlasím, postačuje Cells(1,1)

Borek0495 napsal/a:

A když to budu chtít ještě trochu zesložitit,...

S použitím výše uvedeného třeba:
Sub VytvorAdresar()

Dim A As String
Dim B As String
Dim C As String
Dim i As Long

A = "C:\Users\JF\Desktop\wall\"

For i = 1 To 100
B = Cells(i, 1)
If B <> Empty Then
If Len(Dir(A & B, vbDirectory)) = 0 Then
MkDir A & B
' MsgBox "Adresář vytvořen."
Else
MsgBox "Adresář " & B & " již existuje."
End If

C = Cells(i, 2)
If C <> Empty Then
If Len(Dir(A & B & C, vbDirectory)) = 0 Then
MkDir A & B & C
' MsgBox "Podadresář vytvořen."
Else
MsgBox "Adresář " & B & C & " již existuje."
End If
End If
End If
Next i

MsgBox "Hotovo"

End Sub

Stalker napsal/a:

...Vybere jakou oblast?

Po přepnutí na list správnou, ale ve spojení s objektem Workbooks().Worksheets() havaruje.

Už jsem se smířil s chybou v MSO2007 a s prostým Copy -> Paste

Začátečník napsal/a:

Ale toto funguje.

Na jaké verzi? MO 2007 (12.0) vyhazuje chybu.

Bláhově jsem se domníval, že Range(Cells(1, 1), Cells(122, 34)) === Range("A1:AH122").


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

Uživatelské menu

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

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