Rozdiel je práve v tom, že to nie je (v uvodzovkách) Select :
Application.Goto Method (Excel)
Selects any range or Visual Basic procedure in any workbook, and activates that workbook if it's not already active
(z online nápovedy)
Ono ten poslední argument nepoužívám - a to je špatne
Svyhledat používám, protože mi více vyhovuje a dá se kopírovat pod sebe, což získatkontdata neumí - bežne vzorec s funkciou získatkontdata kopírujem, ale pokiaľ sa domnievaš, že to nejde, presviedčať ťa nebudem
Tak ešte raz: Na to, aby sa dáta z listu protokol zobrazovali na príslušných listoch formulár, makro nepotrebuješ. Dá sa to riešiť vzorcami.
To, čo chceš, teda kopírovanie, sa riešiť dá - makrom.
Úloha sa ale dá otočiť - do listu formular25 načítaj záznamy z listu protokol, u ktorých je v stĺpci Formulář zapísaná hodnota 25. Analogicky do listu formular41 takto načitaj hodnoty z listu protokol, u ktorých je v stĺpci Formulář zapísaná hodnota 41.
A takto formulované zadanie je možné riešiť vzorcami na listoch formular25 a formular41.
Tak tá druhá vec ide takto: For Each sh In ThisWorkbook.Sheets
If sh.CodeName <> "Sheet2" Then
sh.Activate
Application.Goto [3:3]
wnd2.FreezePanes = True
Application.Goto [A1]
End If
Next sh
eLCHa: výborne! Pred malou chvíľou som si zrovna kládol otázku, čo to je SheetView, ale ďalej som nepátral, s tým, že sa na to pozriem, keď bude viac času.
Tak ste mi nejaký čas ušetrili. Ďakujem.
Mám ešte otázku podobného charakteru, a to: Je možné bez selectu zafixovať priečky? Sheet1.Select
Rows(3).Select
wnd2.FreezePanes = True
[A1].Select
Sheet3.Select
Rows(3).Select
wnd2.FreezePanes = True
[A1].Select
Sheet2.Select
wnd2.ScrollRow = 100
Rows("103:103").Select
wnd2.FreezePanes = True
[A100].Select
wnd2 je activewindow, ale to je, myslím, jasné.
V troch listoch (aktívny je príslušný súbor i okno) chcem potlačiť zobrazenie mriežky. Je to možné bez použitia inštrukcie select?Sub Mriezka()
Sheets(Array(Sheet1.Name, Sheet2.Name, Sheet3.Name)).Select 'da sa select nejako obist?
ActiveWindow.DisplayGridlines = False
End Sub
v tomto prípade musím pochváliť i eLCHu
@lubo: to je slušné
On Ti to už dream napísal, ale zdá sa, že si to nepostrehol: SVYHLEDAT má 4 argumenty, posledný určuje typ zhody, v prípade presnej zhody je treba zapísať NEPRAVDA alebo číslo 0. Ty zadávaš argumenty 3, niet divu, že to nefunguje podľa potreby.
Btw, k získaniu dát z KT je určená funkcia ZÍSKATKONTDATA, je nejaký dôvod, prečo miesto nej používaš SVYHLEDAT?
šlo, iste, napríklad takto, ale spôsobov je ako vždy spústa:Sub PresunPDF()
Dim PdfFile As String
On Error GoTo chyba
PdfFile = Dir("C:\faktury\*.pdf")
Do While PdfFile <> ""
FileCopy "C:\faktury\" & PdfFile, "C:\stare_faktury\dnesni_datum\" & PdfFile
Kill "C:\faktury\" & PdfFile
PdfFile = Dir
Loop
Exit Sub
chyba: MsgBox Err.Number & " " & Err.Description
End Sub Pri teste radšej zakomentujte inštrukciu kill (maže súbor) a vráťte ju tam až po tom, čo to otestujete!!! Malo by to fungovať bez problemov, ale človek nikdy nevie, zvlášť pri mazaní súborov to chce opatrnosť...
Dá sa i elegantnejšie. Za predpokladu, že adresár C:\faktury\ obsahuje iba pdf súbory s faktúrami, t.j. všetky súbory v danom adresári sa akože majú presunúť do nového adresára, tak stačí adresár premenovať a nanovo ho vytvoriť, takto nejak:Sub AkozePresun()
On Error GoTo chyba
Name "C:\faktury\" As "C:\stare_faktury\dnesni_datum\"
MkDir "C:\faktury\"
Exit Sub
chyba: MsgBox Err.Number & " " & Err.Description
End Sub Ako som zmienil, spôsobov je viacero
Paloo: Napíš mi na mail, cez víkend odpoviem.
Tak to máte za hubičku :). To je cena brigádnika v Tescu. Indovia sú skutočne lacní. Nedávno na jednom fóre LinkedIn riešili cenu hodiny práce vývojára pre Access. Kluci z Amíkova tam písali, že minimálna sadzba freelancerov je niekde okolo 40 USD/hod (občas i menej, ale skôr sa jedná o výnimky). Potom tam napísal nejaký Ind, že to bude robiť za 1USD/hod. Odpoveď nejakého pána bola: DON'T BE DICK! Ešte sa mi páčila nasledujúca odpoveď: I DON'T WORK FOR FREE. IT'S AGAINST MY RELIGION.
Vážne, programovanie je práca, a mala by byť platená. To by si potom pár týpkov rozmyslelo, či sa budú pýtať na každú kravinu, pokiaľ by odpoveď nedostávali zadarmo
@Paloo: ... inac podla popisu to je asi robota na max 1-2h. Mne by to asi trvalo dlhšie. Ono stačí, že sa niečo zašmodrchá a hodina ubehne ako nič . Stáva sa mi bežne, že pokiaľ mám dať dopredu časový odhad, tak obvykle podstrelím a potom ma mrzí, že vo finále klientovi vykazujem viac, než pôvodný odhad. Našťastie, klient je rozumný a chápe, odhadnúť dobu tvorby makra nie je to samé ako odhadnúť dobu vymaľovania steny . Takže, ja by som to asi odhadol na viac, než hodinu, ale Ty máš zas možno vyššiu hodinovú sadzbu
ad Sumif: je to tak ako píše Pavlus, Sumif v tomto prípade samozrejme funguje, robíš niečo špatne, pravdepodobne si poplietol poradie argumentov.
3 možné tvary vzorca pre bunku H33 (nakopírovať dolu):=SUMIF($G$2:$G$10;G33;$H$2:$H$10)
=SOUČIN.SKALÁRNÍ(--($G$2:$G$10=G33);$H$2:$H$10)
=SOUČIN.SKALÁRNÍ(($G$2:$G$10=G33)*$H$2:$H$10), kedy využitie skalárneho súčinu je nematicová variácia na stalkerov maticový vzorec. On teda skalárny súčin s maticami samozrejme pracuje, ale nevkladá sa ako maticový vzorec, aby nedošlo v mýlke, čo myslím nematicovou variáciou.
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.