Ve spolupráci se SEDUO jsem vytvořil několik videokurzů:
Jak pomocí VBA v Microsoft Excel otevřít soubor (i zahelsovaný). Předpokladem je, znalost hesla.
Aktualizováno a doplněno: 2.6.2013
Jak otevřít excelovský soubor pomocí VBA. Jak otevřít pokud excelovský sešit, pokud je chráněn heslem (heslo musíte znát)? Pokud nevíte jak na to, čtete správný článek.
Poznámka: Jak zjistit heslo zaheslovaného souboru, zde nenajdete. Musíte hledat jinde.
Aneb rychlý přehled:
Řešení je jednoduché.
Workbooks.Open "C:\dokument.xls"
Poznámka: Předpoklad je, že soubor (sešit) existuje.
Sub OtevritSesit()
Dim MojeCesta As String
Dim MujSoubor As String
MojeCesta = "C:\dokumenty"
MujSoubor = "soubor.xls"
Workbooks.Open MojeCesta & "\" & MujSoubor
End Sub
Řešení je jednoduché
Workbooks.Open "C:\soubor-s-heslem.xls", Password:="heslo"
Poznámka: Heslem je text v uvozovkách heslo ;), vím že to není originální, ale přeci neprozrazdím své oblíbené heslo: 4rT#j&3š;Tk!2.
Sub OtevritSesitZaheslovany()
Dim MojeCesta As String
Dim MujSoubor As String
MojeCesta = "C:\dokumenty\heslovne"
MujSoubor = "soubor-s-heslem.xls"
Workbooks.Open MojeCesta & "\" & MujSoubor, Password:="heslo"
End Sub
Řešením je kód:
Workbooks.Open "C:\dokument.csv"
Do řešení se musí dodat informace (Local).
Workbooks.Open "C:\dokument.csv", Local:=True
CestaAdresare = ThisWorkbook.Path
Workbooks.Open Filename:=CestaAdresare & "\csv-oddelovac-strednik.csv"
Pokud chcete nědo doplnit použijte komentáře :)
Článek byl aktualizován: 19.09.2020 11:07
Ušetřil vám tento web čas, peníze? Pomohl vyřešit problém? Jste ochotni poskytnout symbolickou odměnu na další rozvoj? Vybrte si formu odměny, která vám vyhovuje.
Microsoft Office (Word, Excel, Google tabulky, PowerPoint) se věnuji od roku 2000 (od 2004 na této doméně) - V roce 2017 jsem od Microsoft získal prestižní ocenění MVP (zatím jsem jediný z ČR v kategorií Excel). Své vědomosti a zkušenosti dávám k dispozici i on-line ve videích pro SEDUO. Ve firmách školím a konzultuji, učím na MUNI. Tento web již tvořím přes 15 let. Zdarma je zde přes 1.000 návodu, tipů a triků, včetně přes 250 různých šablon, sešitů.
Přidáno: 28.06.12 13:37
Dobrý deň! Pôsobím ako účtovník v stavebnej firme. Práca nie je o účtovaní ale aj o hromadnej evidencii v exclovských tabulkách (majetok, evidencia nákladov a výnosov, positenie majetku, pokladna atd.) kedže majitel chce iba niektoré informácie z týchto tabukiek hladám riešenie ako urobiť nejaký výcuc týchto informácii a čo najlahšiu cestu . Neviete mi poradiť. s úctou Kríko zo Slovenska
Přidáno: 28.06.12 13:42
moja adresa: krikolubos@gmail.com
Přidáno: 28.06.12 16:21
To Kríko Luboš: Použít filtry http://office.lasakovi.com/excel/data/ms-excel-filtry-uvod/
Přidáno: 04.07.12 12:33
Dobry den. Existuje nejaky kod, kde by se mi ukladaly udaje uzivatelu (jako uzivatelska jmena, data, časy), neco jako log, do externiho excel souboru umisteneho v jinem adresari tak, aby se na liste nezobrazilo, ze ten dany soubor (treba log.xls) je pouzivan? Dekuju za odpoved.
Přidáno: 04.07.12 16:35
To Radek Orsag: Lze sepsal sjem podobný článek, kde se údaje ukládají do stejného souboru jen list je skryt (xlSheetHiden), lze upravit a data ukládat do jiného souboru. http://office.lasakovi.com/excel/vba-soubory/excel-vba-kdo-pristupuje-do-souboru/ Problém pokud někdo nepovolí makra tak nebude fungovat. Případně pokud umí dobře pracovat s MS Excelem tak může obejít.
Přidáno: 04.07.12 16:47
To Pavel Lasak: Ano, Vasim clankem o ukladani do jineho listu jsem se inspiroval. Ale kdyz ma soubor vlastnost "jen pro cteni", makro se sice spusti i tak, ale parametr se nezapise.
Přidáno: 04.07.12 22:14
To Radek Orsag: Po dovolené zkusím prakticky ověřit změnit atribut souboru, zapsat a vrátit atribut.
Přidáno: 27.11.12 11:37
Dobrý deň! Skúšam otvoriť súbor podla návodu Workbooks.Open C:\dokument.xls ale stale mi vyhadzuje line number or label or statement or end of statement. Otvaram to v excel 2010. dakujem Kriko
Přidáno: 27.11.12 22:27
To Kriko Luboš: V kódi máte jen tento jeden řádek?
Přidáno: 28.11.12 12:07
Chcem sa opýtať na vytvorenie kódu na spustenie súboru v počítači z nejakého lubovolného podadresára. dakujem
Přidáno: 28.11.12 22:56
To Kríko Luboš: Jak je vyše uvedeno
MojeCesta = "D:\adresar\podadresar"
MujSoubor = "soubor-s-heslem.xls"
Workbooks.Open MojeCesta & "\" & MujSoubor
Přidáno: 24.08.13 19:10
Zdravím, importuji externí data do nového sešitu. Je to z dalšího excelovského souboru, např pm.xls. Zatím tam mám danou cestu natvrdo, takže ten soubor se musí mějak jmenovat a být v určitém předem zadaném adresáři, jinak to data neimportuje. Potřeboval bych nějaký userform, nebo něco podobného, aby mi po spuštění makra vyskočila klasická nabídka jako ve windows na otevření souboru. To znamená, abych si ten soubor mohl sám vybrat a pak už by to pokračovalo dále v proceduře. Díky
Přidáno: 25.08.13 16:11
To Arnie: Využít Application.GetOpenFilename:
SouborOtevrit = Application.GetOpenFilename _
(Title:="Vyber soubor pro import", _
FileFilter:="Excel Files *.xls (*.xls),")
Přidáno: 26.08.13 16:24
OK, to funguje, ale asi jsem se špatně vyjádřil. Potřeboval bych to udělat v příkazu : Data/Importovat externí data/Importovat data.
Viz. kod.:
Sub Import_datSM()
'
' Import_datSM Makro
' Import dat SM mereni ze souboru C:/MERENI/sm.xls
'
'
Sheets("Seznam").Select
Sheets.Add.Name = "SM-1310"
Sheets.Add.Name = "SM-1550"
Sheets.Add.Name = "SM-Vysledky"
With ActiveSheet.QueryTables.Add(Connection:=Array( _
"OLEDB;Provider=Microsoft.Jet.OLEDB.4.0;Password="""";User ID=Admin;Data Source=C:\MERENI\sm.xls;Mode=Share Deny Write;Extended Properties=""HDR=" _
, _
"YES;"";Jet OLEDB:System database="""";Jet OLEDB:Registry Path="""";Jet OLEDB:Database Password="""";Jet OLEDB:Engine Type=35;Jet OLEDB:" _
, _
"Database Locking Mode=0;Jet OLEDB:Global Partial Bulk Ops=2;Jet OLEDB:Global Bulk Transactions=1;Jet OLEDB:New Database Password" _
, _
"="""";Jet OLEDB:Create System Database=False;Jet OLEDB:Encrypt Database=False;Jet OLEDB:Don't Copy Locale on Compact=False;Jet OLE" _
, "DB:Compact Without Replica Repair=False;Jet OLEDB:SFP=False"), Destination _
:=Sheets("SM-1310").Range("A1"))
.CommandType = xlCmdTable
.CommandText = Array("List1$")
.Name = "sm"
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.PreserveColumnInfo = True
.SourceDataFile = "C:\MERENI\sm.xls"
.Refresh BackgroundQuery:=False
End With
Sheets("Seznam").Select
End Sub
Díky
Přidáno: 29.11.13 23:22
Pekne clanky, ale . . . ale zapasim s problemom otvorit subor xlsx (pravdepodobne excel2010) v office 2003. Compatibility pack nainstalovany, ale funguje divne. Poklepanim na ikonu suboru tento skonvertuje a otvori, ale v exceli Open tento subor neotvori. Takisto problem v makre, VBA . . . ako otvorim taky subor? Navyse s heslom, aby toho nebolo malo . . .(heslo poznam)
Přidáno: 21.01.14 13:12
Dobrý den, to funguje hezky, ALE mám problém o číslo vedle: Excel, dejme tomu kdo kdy má službu. Všichni se tam koukají, ale jen sekretářka píše změny. soubor má tedy Heslo pro úpravy (Password to modify), takže soubor se otevře a chce zadat heslo pro zápis nebo otevřít v režimu jen pro čtení ("Enter password for write access or open read only") a nabídne buď vyplnění hesla nebo tlačítka Jen pro čtení (Read only), Storno (Cancel). Našel jsem parametr IgnoreReadOnlyRecommended, ale to je o něčem jiném. Díky za radu
Přidáno: 21.10.14 23:05
Řešíte jak otevřít zamknutý XLS nebo XLSX soubor a nevíte jak na to? Zkoušíte instalovat další a další zaručeně funkční odheslovávací programy na váš počítač a jediný výsledek je beznaděj? Přečtěte tenhle článek www.erada.cz/?p=1337 a hned se dozvíte, jak s odheslováním uspějte snadno, bez nervů, navíc zadarmo a během chviličky!
Přidáno: 08.03.15 15:52
Hezký den, díky za tyto stránky, jsou pro mě velikým zdrojem inspirace. Trošku se teď potýkám s exportem dat z jiného sheetu.Výše je Tvé makro k otevření dialogu ke zdroji,což je dobré.Ale já ani tak nepotřebuji zdroj otevřít,jako z něj načíst data a zkopírovat do aktivního listu cíle.Data (čísla) se nachází v definovaném poli (např.A1:J3), těch polí je ve zdroji dohromady 25.A do stejně definovaných polí v cíli je potřebuju zkopírovat.V cíli se pole nachází na listu1 a ta samá současně na listu2-čili jedno pole zdroje zkopírovat do pole na listu1 a současně do listu2.Doufám,že jsem to popsal srozumitelně,nemělo by jít o žádnou vyšší dívčí.Díky za případnou pomoc.
Přidáno: 29.06.15 20:07
Dobrý den, zřejmě dělám někde nějakou chybu, ale kdykoliv makrem otevřu (bez problémů) nějaký sešit dle návodů výše. Sešit se sice otevře, ale v tu chvíli se ukončí běh makra :( Pokud jej neotvírám makrem ale je již otevřen, vše probíhá bez problémů ... Nebyl by prosím, někdo znalý tak laskav a neporadil mi "fintu" jak donutit makro v pokračování i po tom co si samo otevře sešit... Předem moc díky za případnou radu
Přidáno: 29.06.15 21:07
Doplnění: Jedná se o spuštění makra klávesovou zkratkou "CTRL+" ... při spuštění Makro - spustit je vše bez problémů.
Přidáno: 06.05.16 18:03
Dobrý den, potřeboval bych dozvědět jak ve VBA napsat kód aby mi otevřel soubor který jsem uložil předchozí den(makro: text + datum). Soubor má název "text"_datum (yyyymmdd) nejlíp s posledním, "nejvyšším" datem. P.S. existuje kód na zapsání času poslední změny (datum + čas) vybraného souboru do buňky?
Přidáno: 10.05.16 14:44
už to mám....
Dim dtTestDate As Date
Dim dtDate As String
Dim sStartWB As String
Const sPath As String = "L:\Section Logistics\"
Const dtEarliest = #1/5/2016#
dtTestDate = Date
sStartWB = ActiveWorkbook.Name
While ActiveWorkbook.Name = sStartWB And dtTestDate >= dtEarliest
On Error Resume Next
Workbooks.Open sPath & "text " & Format(dtTestDate, "ddmmyyyy") & ".xlsx"
dtTestDate = dtTestDate - 1
On Error GoTo 0
Wend
If ActiveWorkbook.Name = sStartWB Then MsgBox "Earlier file not found."
Přidáno: 16.05.16 12:50
SouborOtevrit = Application.GetOpenFilename _ (Title:="Vyber soubor pro import", _ FileFilter:="Excel Files *.xls (*.xls),") je supr. jak ještě zjistím jméno souboru? Abych se na něj později mohla odkázat. díky
Přidáno: 16.05.16 12:54
To Ivana: -- Nazov_suboru_a_Pripona z Cesta_a suborfNameExt = Dir(SouborOtevrit) ' iný spôsob je cez Split
Přidáno: 29.06.16 10:35
potřebuji z jednoho sešitu (pokus1.xls) otevřít druhý sešit (pokus2.xls) a současně hned pokus1.xls zavřít. Přepnutí do druhého sešitu není problém, ale při pokusu hned zavřít pokus1.xls mi to hází chybu.
Pomohl Vám návod? Sdílejte na Facebooku, G+ |
||
LinkedIn... |
Stránky o MS Office (Excel) produktu společnosti Microsoft. Neslouží jako technická podpora.
| Email na autora: pavel.lasak@gmail.com | Copyright © : Pavel Lasák 2004 - 2024 |