Příspěvky uživatele


< návrat zpět

Strana:  1 ... « předchozí  95 96 97 98 99 100 101 102 103   další » ... 289

No máte to ako Tabuľky, tak sa budeme odkazovať cez INDIRECT/NEPŘÍMÝ.ODKAZ teda na Tabuľky, ale musíte dodržať pomenovanie Tabuliek napr takto
LEDEN -> Tabulka1
ÚNOR - Tabulka2
BŘEZEN -> Tabulka3
...

Zmenil som Vám v listoch ten dátumový riadok, každý rok zmente iba prvú dátumovú bunku E4 v každom mesiaci. Ostatné sa doplnia samé.

Je to také krkolomné, ale snáď to funguje, overte to.

Na tomto fóre musí byť príloha zabalená do ZIP ak je to formát *.xlsm. Naopak *.xlsx (bez makra sa vkladá normálne). Vy tam ale žiadne makro nemáte, tak keď ani neplánujete, tak si to preuložte na klasický *.xlsx.
Každopádne Váš problém sa dá riešiť pomocou PF.

Inak nerozumiem tej zmienke o duplicitách. Preto som tam dal COUNTIFS

Podľa neprílohy ťažko uhádnuť čo chcete. Možno stačí podm. formát...

Aj tak tam ale vidím problém v kontrole správnosti cesty práve otvoreného súboru:
If CWB6.Path <> CFP6 Then
V komentári máte, že CFP6 je aj s "\" na konci (aj musí kvôli Open), no CWB6.Path vráti cestu bez "\", teda sa to rovnať nikdy nebude. Preto použite
If CWB6.Path & "\" <> CFP6 Then
alebo
If CWB6.FullName <> CFP6 & CFN6 Then

Pozor si dajte If - Then - Else - End If
Ak pokračujete kódom hneď za Then v tom istom riadku, nemôžete potom pridať poď to Else ani End If.
Proste ak píšete do riadku, tak všetko, ak pod seba tak všetko.
Váš kód netestujem, len úprav aod pohľadu z brucha :)
Sub CustomWorkbook6()
Dim CWB6 As Workbook
'CustomWorkbook
Dim CFN6 As String
'Full Name of the file including file extension (e.g. .xlsm)
Dim CFP6 As String
'Full Path to the file including "\" in the end.
CFN6 = Sheets("MasterData").Range("BF20").Value
CFP6 = Sheets("MasterData").Range("BE20").Value
On Error Resume Next
Set CWB6 = Workbooks(CFN6)
On Error GoTo 0
If CWB6 Is Nothing Then Set CWB6 = Workbooks.Open(CFP6 & CFN6)
If CWB6.Path <> CFP6 Then Exit Sub
With CWB6
.Activate
End With
End Sub

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.


Strana:  1 ... « předchozí  95 96 97 98 99 100 101 102 103   další » ... 289

Uživatelské menu

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

Menu

On-line nástroje

Formulář Faktura

Formulář Faktura IV

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

Aktivní diskuse

Tlac 2 roznych tabuliek

loksik.lubos • 17.7. 20:43

Týden v roce

Petr92 • 16.7. 15:34

Řazení podle času v kategoriích

veny • 16.7. 11:34

špatný výpočet ze zisku - příčina?

Anonym • 12.7. 22:56

špatný výpočet ze zisku - příčina?

Jakoby • 12.7. 12:35

Řazení podle času v kategoriích

Marekh • 12.7. 9:55

Porovnávací Tabulka

Jess • 8.7. 20:49