Příspěvky uživatele


< návrat zpět

Strana:  1 ... « předchozí  72 73 74 75 76 77 78 79 80   další » ... 298

Všetko funguje správne. Vzorce sú automaticky preložené. Viď predošlý screen. Zadávať ich musíte ako LocalFormula. Ale ak sú už zadané, očividne sa menia automaticky.

Záleží predsa na tom, či sú všetky termíny v tom istom roku ako máte sviatky. Ak máte zadané sviatky 2021 a termín máte 1.5.2023 tak to logicky fungovať nebude. To treba riešiť zložitejšie. Niekedy som to sem už dával. Ak to bude treba niečo vytvoríme...
Príloha by bodla (bez citlivých dát).

Vy potrebujete meniť funkčnosť vzorcov v PF? Ak nie, tak podľa mňa netreba robiť so vzorcami nič. Ak sú vzorce zadané, tak si ich každý Excel prečíta správne. Iné je, ak chcete vzorce meniť podľa potreby zmeny funkčnosti. Vtedy treba vzorce meniť makrom s prihliadnutím na lokalizáciu. Inak nie. Ak potrebujete iba zmeniť farby PF, tak tiež netreba brať ohľad na lokalizáciu, lebo môžete zmeniť iba vlastnosť
Oblast.FormatConditions(1).Interior.Color = Bunka.Interior.Color
potom ...FormatConditions(2)... a ...FormatConditions(3)...

PS: Inak máte tam zbytočný PF pre F35, navyše s chybou #ODKAZ.

Mám E2019 SK a vzorce PF vidím takto:

Sub Kopiruj_vzorce()
With Worksheets("Vstupní data")
.Range("A6:B99").Formula = .Range("A6:B6").Formula
End With
End Sub

Ak je otvorený:
Sub Kopiruj()
Dim Stary As String

Stary = "Starý zdroj.xlsx"

If MsgBox("Zkopírovat data na listu Počet obyvatel?", vbQuestion + vbYesNo) = vbYes Then
ThisWorkbook.Worksheets("pomocný").Range("B6:C6").Value = Workbooks(Stary).Worksheets("pomocný").Range("C6:D6").Value
'Else 'Podľa potreby
' Exit Sub
End If
End Sub

a ak je zatvorený:
Sub Kopiruj2()
Dim Stary As String

Stary = "='E:\[Starý zdroj.xlsx]pomocný'!C6"

If MsgBox("Zkopírovat data na listu Počet obyvatel?", vbQuestion + vbYesNo) = vbYes Then
With ThisWorkbook.Worksheets("pomocný").Range("B6:C6")
.Formula = Stary
.Value = .Value
End With
'Else 'Podľa potreby
' Exit Sub
End If
End Sub

dá sa to nakombinovať rôzne.

Makrom ?
(do modulu Tento_zošit / ThisWorkbook)
Private Sub Workbook_BeforePrint(Cancel As Boolean)
Dim WS As Worksheet, PS As PageSetup

Cancel = True
Application.EnableEvents = False
For Each WS In ThisWorkbook.Worksheets
Set PS = WS.PageSetup
With PS
.PrintArea = "A1:I51"
.Orientation = xlPortrait
WS.PrintOut
.PrintArea = "A52:N78"
.Orientation = xlLandscape
WS.PrintOut
End With
Next WS
Application.EnableEvents = True
End Sub


Sub Tlac()
Workbook_BeforePrint True
End Sub

Skúste
=IF($B2<>1;MAX($A$1:$A1)&CHAR(97+COUNTIF($A$1:$A1;MAX($A$1:$A1)&"?"));MAX($A$1:$A1)+1)
=KDYŽ($B2<>1;MAX($A$1:$A1)&ZNAK(97+COUNTIF($A$1:$A1;MAX($A$1:$A1)&"?"));MAX($A$1:$A1)+1)

Čo je určujúci faktor, kedy nastane zmena v číslovaní? Odkiaľ ten stĺpec vie že má meniť pri pridaní riadku za 1 v tomto prípade:
1, 2, 2a
na toto
1, 1a, 2, 2a
alebo toto
1, 2, 3, 3a
alebo
1, 2, 2a, 2b
???

To čo spomínate v dotaze je, že PQ má zistiť názov súboru - sám seba. Podľa toho "Políčko/hledat". Meno/umiestnenie seba samého asi PQ priamo nevie zistiť.

To čo hovoríte následne zase vyzerá, akoby ste mal nejaký riadiaci/analyzačný súbor s PQ dotazom, a každý mesiac do neho načítaval iný súbor. Exportovaný z nejakého SW. To je niečo iné, lebo v PQ nastavte cestu k adresáru, kde budú tie súbory. V PQ vhodným filtrom (napr. v názve je dátum, tak najnovší) načítate len jeden, a jeho meno si uchováte.

To je tipovačka. Treba bližšie info a prílohu.

Urobil som si pole reťazcov - názvov stĺpcov.
Môžem dať aj
Stlpy = Array("D", "G", "H", "I", "J", "K")ale potom musí byť deklarácia ako Variant
Dim Stlpy()a volanie doplnené o CStr()
Spracuj_Stlpec CStr(Stlpy(i))
inak funkcia Split predsa rozdeľuje reťazec na základe rozdeľovača.
Reťazec "D,G,H,I,J,K" je 1. parameter funkcie.
Oddeľovač "," je 2. parameter funkcie.
A parametre sú oddelené čiarkou.
To je fuk aký si dám oddeľovač textu, napr. aj medzeru
Stlpy = Split("D G H I J K", " ")

Iba stĺp D a K? Tomu neverím, skúšal som to. Dajte si BreakPoint (klik na ten sivý zvislý pásik vľavo vedľa kódu) na tom riadku so Select, tam sa Vám makro pri každom priechode pozastaví. Uvidíte.

Robil by som to tiež radšej Offset-om ako marjankaj. Tam sa menia tie stĺpce posúvaním prvého o "i" stĺpcov, a to v prípade ak sa nejedná o i=1 alebo i=2 (čo sú nechcené stĺpce E a F. Proste posúva sa oblasť D4:D200 o "i" stĺpcov vpravo.

Jednoducho parametrom. Toto je najjednoduchší príklad.
Sub Spracuj_Stlpec(Stlpec As String)
Range(Stlpec & "4:" & Stlpec & "200").Select
End Sub


Sub Makro_makricko()
Dim Stlpy() As String, i As Integer
Stlpy = Split("D,G,H,I,J,K", ",")
For i = 0 To UBound(Stlpy)
Spracuj_Stlpec Stlpy(i)
Next i
End Sub

Alebo priamo v cykle.
Každopádne keď vidím, že tam máte Select, tak to makro asi nebude optimalizované, však ?

Napr.:
Excel.CurrentWorkbook(){[Name="názov Tabuľky s menom súboru"]}[Content]{0}[Názov stĺpca v Tabuľke s menom súboru]

Tak pokus. Vyrobil som si súbor pre import s 20K riadkami, DB som zaplnil tiež 20K. Asi 25 ID sa tam nenachádzalo. Trvanie cca 5 sek. Pôvodne som existenciu ID prebehol cez Evaluate vzorcom, ale na 20K to je brzda, preto je tam vyhľadávacie kolekcia.
Importované data následne makrom mažem, kvôli duplicite a veľkosti súboru.

Vzhľadom na množstvo ďalších neopisovaných stĺpcov mám ale dojem, že také "ľahké" to asi nebude.

Tu máte video.
PowerQuery:
Data z webu, zdroj je
https://docs.google.com/spreadsheets/d/{id_google_tabulky}/export?format=xlsx&id={id_google_tabulky}
kde
{id_google_tabulky}
je ID Google Tabuľky zo zdieľaného odkazu.


Strana:  1 ... « předchozí  72 73 74 75 76 77 78 79 80   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