Přeskočit navigaci | Přeskočit na novinky

Jste zde: Úvodní stránka » excel » vba-soubory » otevrit-soubor-s-heslem-excel-vba

Otevřít soubor (i s heslem) - VBA Excel

Videokurzy Excel

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

Úvodem

Excel VBA logo

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.

Co se dozvíte

Aneb rychlý přehled:

  • Otevření sešitu (*.xls)
  • Otevření sešitu s heslem
  • Otevření csv souboru

Otevření sešitu (*.xls)

Řešení je jednoduché.

Workbooks.Open "C:\dokument.xls"

Poznámka: Předpoklad je, že soubor (sešit) existuje.

Profesionálnější řešení

Sub OtevritSesit() Dim MojeCesta As String Dim MujSoubor As String MojeCesta = "C:\dokumenty" MujSoubor = "soubor.xls" Workbooks.Open MojeCesta & "\" & MujSoubor End Sub

Otevření sešitu s heslem

Ř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.

Profesionálnější řešení

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

Otevření csv souboru

Excel 2003

Řešením je kód:

Workbooks.Open "C:\dokument.csv"

Otevření csv souboru - Excel 2007 - 2010

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"

Závěrem

Pokud chcete nědo doplnit použijte komentáře :)

Článek byl aktualizován: 19.09.2020 11:07

Odměna

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.


Pavel Lasák - autor webu

Pavel Lasák

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ů.

   Pavel Lasák LinkedIn Profil    Pavel Lasák Google+ Profil    Pavel Lasák facebook Profil    Pavel Lasák twitter Profil


Komentáře


Kríko Luboš

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

Kríko Luboš

Přidáno: 28.06.12 13:42

moja adresa: krikolubos@gmail.com

Pavel Lasák

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/

Radek Orsag

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.

Pavel Lasák

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.

Radek Orsag

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.

Pavel Lasák

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.

Kríko Luboš

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

Pavel Lasák

Přidáno: 27.11.12 22:27

To Kriko Luboš: V kódi máte jen tento jeden řádek?

Kríko Luboš

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

Pavel Lasák

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

Arnie

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

Pavel Lasák

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),")

Arnie

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

Llubik

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)

Jan.gregor@seznam.cz

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

Vojtěch

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!

karel.korec@gmail.com

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.

Hojší

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

Hojší

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ů.

Štefan

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."

Ivana

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

Jojo

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

lafo

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.






Excel


Sdílejte

Pomohl Vám návod?
Sdílejte na Facebooku, G+
LinkedIn...

Nové články


Reklama


TOPlist Licence Creative Commons webarchiv rss XML

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 |