Příspěvky uživatele


< návrat zpět

Strana:  1 ... « předchozí  105 106 107 108 109 110 111 112 113   další » ... 298

Je nejaký dôvod prečo v DB máte vzorce a nie hodnoty? A keď tak, tak mesiac stačí iba formátom bunky).
Máte tam aj nejaké divné Podmienené formátovanie. Dôvod nepoznám.
Neviem, ako sa volajú listy v súboroch, ani súbory.

Ďalej, stále píšete "zkopírovali do sešitů „B“", teda "sešitů „B“ - množné číslo? Na to som sa minule pýtal.

Vidím podzložku 04_2020, takže to bude myslené tým "do sešitů „B“" ? Každý mesiac samostatná zložka, v nej samostatný súbor "B.xlsx", a v ňom list "B" ?

Všetko sa mi nechce ošetrovať, môže nastať množstvo vecí, ako napr. neexistencie adresára, súboru, listu, otvorený cieľový zošit, zatvorený, otvorený ale z iného adresára s rovnakým menom ... . Niečo som ošetril, ale všetko sa mi nechce.

Určite sa jedná o zošit/súbor "A" a o zošit/súbor "B"? Teda 2 rôzne súbory. Nemyslíte 1 súbor s listami "A" a "B"?

Skopírovať bunky B8:C53 a vložiť ich do rovnakých buniek v druhov zošite, a zároveň na prvý voľný riadok??? To je logický rozpor. Buď na prvý voľný riadok, alebo do rovnakej oblasti (teda celé).

"do sešitů „B“" - teda ich je viac? Ako zistím, ktoré to sú a kde sa nachádzajú?

Treba spresniť zadanie, a priložiť prílohu so zdrojom aj cieľom.

To je kód národnosti, viď napr. tu
Môžete použiť aj
"#,##0.00 [$" & ChrW(1083) & ChrW(1074) & ".-bg-BG]"
viď napr. tu.

Skúste ešte raz popísať, čo potrebujete nájsť.

Najmenší rozdiel v poradiach medzi rovnakými menami ? Čo má byť výsledok ? Výpis dvoch poradí, ktorých sa to týka ? Alebo číslo rozdielu ?

Alebo najmenší počet riadkov medzi rovnakými menami ? Čo má byť výsledok ? Výpis dvoch čísel riadkov, ktorých sa to týka? Alebo číslo rozdielu ?

Dáta sú vždy zoradené vzostupne podľa poradia ?

Kam sa majú vypisovať výsledky ?

Výsledky je treba pre každé z mien ? Alebo len pre nejaké jedno niekde zadané do nejakej bunky ?

Pretože tie znaky sú Unicode, tak ich treba do NumberFormat ich treba vložiť cez ChrW()
Range("M5").NumberFormat = "#,##0.00 [$" & ChrW(1083) & ChrW(1074) & ".-402]"
A aké sú to kódy zistíte:
MsgBox AscW(Mid(Range("M5").NumberFormat, 12, 1))
MsgBox AscW(Mid(Range("M5").NumberFormat, 13, 1))

Príloha je nefunkčná, veľkosť 0.

Príklad, ktorý zvláda aj zmenu vo viacerých bunkách naraz. Skúste, ale je už zložitejší.
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Zmena As Range, ARE As Range, O(), I(), AreR As Long, y As Long, bol As Boolean

Set Zmena = Intersect(Columns(15), Target)

If Not Zmena Is Nothing Then
Application.EnableEvents = False

For Each ARE In Zmena.Areas
With ARE
If .Rows.Count = 1 Then
ReDim O(1 To 1, 1 To 1): O(1, 1) = .Value
ReDim I(1 To 1, 1 To 1): I(1, 1) = .Offset(0, -6).Value
Else
O = .Value
I = .Offset(0, -6).Value
End If

bol = False
For y = 1 To UBound(O, 1)
If O(y, 1) = "Ano" Then I(y, 1) = "-": bol = True
Next y

If bol Then .Offset(0, -6).Value = I
End With
Next ARE

Application.EnableEvents = True
End If
End Sub

Ešte by som tam prípadne doplnil kontrolu, či ten otvorený súbor má správnu cestu. Ľahko sa môže stať, že otvorený súbor bude iný, napr. záložnom adresári, či napr. minulomesačný súhrn, ... len sa bude volať rovnako. Možností ako to spliesť je veľa. Pre istotu. Treba na to myslieť, lebo operácie makrom nemajú Undo.
Sub Makro2()
Dim WB As Workbook, Zosit As String, Cesta As String

Cesta = "D:\Download\"
Zosit = "Príklad KT.xlsx"
On Error Resume Next
Set WB = Workbooks(Zosit)
On Error GoTo 0
If WB Is Nothing Then
Set WB = Workbooks.Open(Cesta & Zosit)
Else
If WB.Path & "\" <> Cesta Then
MsgBox "Je otvorený nesprávny súbor" & vbNewLine & WB.Path & "\" & Zosit & vbNewLine & vbNewLine & _
"Použite správny súbor" & vbNewLine & Cesta & Zosit, vbCritical
Exit Sub
End If
End If

With WB
.Activate 'Activate nieje potrebné na bežné veci. Stačí sa odkazovať na WB alebo použiť with s bodkovou notáciou
'práca s daným zošitom
End With
End Sub

2 príklady, je to úplne jednoduché:
Sub Makro1()
Dim Zosit As String, Cesta As String

Cesta = "D:\Download\"
Zosit = "Príklad KT.xlsx"
On Error Resume Next
Workbooks(Zosit).Activate
If Err.Number <> 0 Then Workbooks.Open Cesta & Zosit
On Error GoTo 0

'práca s daným zošitom ActiveWorkbook
End Sub


Sub Makro2()
Dim WB As Workbook, Zosit As String, Cesta As String

Cesta = "D:\Download\"
Zosit = "Príklad KT.xlsx"
On Error Resume Next
Set WB = Workbooks(Zosit)
On Error GoTo 0
If WB Is Nothing Then Set WB = Workbooks.Open(Cesta & Zosit)

With WB
.Activate 'Activate nieje potrebné na bežné veci. Stačí sa odkazovať na WB alebo použiť with s bodkovou notáciou
'práca s daným zošitom
End With
End Sub

Vy máte teda denne nejaký jeden export z nejakého SW do XLSX súboru s asi 30K riadkami ?

Tento súbor je vždy jeden a ten istý, alebo je to každý deň nový súbor ? (ak nový, čím sa odlišuje v názve ?)

Z tohoto súboru/súborov potrebujete na dennej báze vybrať 2 najnižšie dátumy a 1 najvyšší dátum z každého súboru samostatne, a tieto data (okrem riadkov Distribuce) skopírovať do nejakého súhrnného súboru, ktorý sa bude raz za polrok vyhodnocovať ?

Ak bude každý deň 1 súbor s 30K riadkami takže polročne to bude +- 5M riadkov? To by malo PQ dať do pár sekúnd.

Ak sa jedná o variant denného vyextrahovania iba tých 3 dátumov a odloženia do súhrnného súboru, tak to cez pole musí byť otázka sekúnd (s vytvorením parametru pre filter, alebo rovno vydolovanie poľa nieje prob.), nie minút (asi to robíte po bunkách s Copy/Paste).

Dovysvetlite, prípadne najlepšie uveďte na tomto konkrétnom súbore, čo bude výsledok.

ovechkin888: buď máte prílohu veľkú, alebo je to *.xlsm súbor. Treba ju zmenšiť zredukovaním nepotrebných dát do 256 KB. Na ukážku netreba kompletné súbory, stačí reprezentatívna, priekazná vzorka so zachovaním rozmiestnením, formátom, a druhom údajov, a ich eventualít. Ak je to xlsm tak zaZipovať.

Takže, napr. v PowerQuery si nájdem a adresári najnovší súbor Data. Načítam si z neho údaje a vyriešim tie zhovadilosti s medzerami. Nechám si iba riadky, kde v "datum" nič nieje. Rovnako ako v predchádzajúcom príklade si vyriešim tie medzery aj s dátami v liste Kontrola. Stále som v PQ. Čo má byť účelom toho celého? Čo majú byť "další upravy" podľa zmienky v makre? Pýtam sa, pretože nerozumiem ani tomu, či sa majú do listu Data vypísať iba také záznamy zo súboru Data, ktoré zároveň niesú v liste Kontrola, alebo opačne iba také, ktoré sú v liste Kontrola a zároveň aj v súbore Data. Záleží na tom, čo potrebujete, podľa toho bude následný postup, a možno makro nebude treba.

JJ, ale aj tak si myslím, že vrah bude ten záhradník 5

ovechkin888, musíte priložiť nejakú prílohu s príkladom vstupu aj výstupu...

S tým žiaľ nepomôžem ...

Ak iba aktívny list linkovaného zošitu tak:
Private Sub Workbook_SheetFollowHyperlink(ByVal Sh As Object, ByVal Target As Hyperlink)
ActiveWindow.Zoom = 60
End Sub

ak všetky listy linkovaného zošitu tak:
Private Sub Workbook_SheetFollowHyperlink(ByVal Sh As Object, ByVal Target As Hyperlink)
Dim WS As Worksheet, bAct As Worksheet
Application.ScreenUpdating = False
Set bAct = ActiveWorkbook.ActiveSheet
For Each WS In ActiveWorkbook.Worksheets
WS.Activate
ActiveWindow.Zoom = 60
Next WS
bAct.Activate
Application.ScreenUpdating = True
End Sub

prípadne použiť pole názvov listov a zoomovať ich naraz:
Private Sub Workbook_SheetFollowHyperlink(ByVal Sh As Object, ByVal Target As Hyperlink)
Dim WS As Worksheet, bAct As Worksheet, L As String
Application.ScreenUpdating = False
With ActiveWorkbook
Set bAct = .ActiveSheet
For Each WS In .Worksheets
L = L & IIf(LenB(L) = 0, vbNullString, "?") & WS.Name
Next WS
.Worksheets(Split(L, "?")).Select
End With
ActiveWindow.Zoom = 60
bAct.Select
Application.ScreenUpdating = True
End Sub

Makro dať do modulu ThisWorkbook keď chcem "chytať" všetky linky v našom zošite (vo všetkých listoch), alebo do modulu daného listu ktorý chceme checkovať, len potom je definičný riadok procedúry iný
Private Sub Worksheet_FollowHyperlink(ByVal Target As Hyperlink)


Strana:  1 ... « předchozí  105 106 107 108 109 110 111 112 113   další » ... 298

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