Ktorý stĺpec sú jednotky ?
Ktorý je Celkem ?
Prečo tam sú sumy ako text ? spolu s prídomkom " Kč" ? Ak to tak dáva systém, treba odstrániť vzorcom to " Kč" a počítať iba s číslom v Celkem.
Môžu tam byť aj iné meny ako Kč ?
Matice vôbec netreba, rýchlejšie bude takto si nechať počítať jedinečné faktúry, jedinečné neodoslané, aj samotné materiály na faktúre, v pomocných stĺpcoch danej Tabuľky. Odpadá starosť o dostatočné nadimenzovanie matice.
Čo ak bude viac materiálov ako je riadkov vo fakturačnom "formulári" ?
"Datum vystavení:", splatnosti a plnění - tam asi nemá byť TODAY/DNES, či ?
...
Nejaký ten príklad, nedokončený.
Tento je o chlp kratší, vynechal som MATCH/POZVYHLEDAT, spolieham na to, že idú dni po sebe a nevynechajú sa. Na karte Vzorce dajte Vyhodnotiť vzorec, a krokujte, kedy Vám dá chybu #ODKAZ.
A čo Vám konkrétne nefunguje? Otvoríte môj súbor, a v ňom je #ODKAZ ? Ak, tak v ktorej bunke ? Alebo pri implementácii do Vašeho súboru ?
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
Oblíbený formulář Faktura byl vylepšen a rozšířen.
Více se dočtete zde.
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.