doplnění téma Skript na otevírání souboru .xlsm

Programy pro práci v kanceláři (Word, Excel, Access…=>Office)

Moderátor: Mods_senior

Zamčeno
Jsimi
Level 1.5
Level 1.5
Příspěvky: 119
Registrován: 17 čer 2012 19:12

doplnění téma Skript na otevírání souboru .xlsm

Příspěvek od Jsimi »

Ahoj,
jelikož je téma zamčené, založil jsem nové. Skript funguje jak má, ale jen pokud hledá cestu, ve které zložky nemají v názvu mezeru. Pokud je v názvu mezera tak ukáže, že bude hledat správný soubor, ale pak vyhodí hlášku že ho nemůže nalézt a jestli je cesta správná.

Kód: Vybrat vše

   '****************************************************
'*   Skript otevírá xlsm soubor dle roku a měsíce   *   
'****************************************************
'*           Vytvořeno pro PC-HELP                  *
'*            Etienn@Script v 1.0                   *
'****************************************************

Option Explicit
Dim rok, mesic, fso, WshShell, File, prikaz

rok = Year(Now())
mesic = Month(Now())
Set fso = CreateObject ("Scripting.FileSystemObject")
Set WshShell = CreateObject ("WScript.Shell")
File = "C:\pokus a\" & rok & "\PR_" & mesic & ".xlsm"
' WScript.Echo File
If (fso.FileExists(File)) Then
prikaz = "excel.exe " & File
WshShell.Run prikaz
Else
  WScript.Echo("Soubor nenalezen!")
End If
Pokud hledá "C:\pokus\" & rok & "\PR_" & mesic & ".xlsm" tak je vše OK, ale pokud cesta bude takto
"C:\pokus a\" & rok & "\PR_" & mesic & ".xlsm" tak vyhodí chybu.
Kde může být problém?
Azuzula
Level 3
Level 3
Příspěvky: 452
Registrován: 14 led 2012 18:44
Bydliště: Země, bohužel...
Kontaktovat uživatele:

Re: doplnění téma Skript na otevírání souboru .xlsm

Příspěvek od Azuzula »

Tipnu si, že přímo v té mezeře ;)
Vyvarovala bych se všech mezer v názvu souborů a adresářů, mezery můžete nahradit třeba podtržítkem. Některé programovací jazyky prostě mezery neberou.
Teoreticky by se to mohlo dát obejít když se mezera nahradí znakem chr(32) což je ASCI kód mezery

"C:\pokus" & chr(32) & "a\"
Pokud je to vše.
Vše co znám z VBA jsem se naučila tady na fóru, na Office.lasakovi, david-zbiral.cz a hlavně hledáním na googlu.
SZ není poradna, na pokládání dotazů je tu fórum. Děkuji.
Jsimi
Level 1.5
Level 1.5
Příspěvky: 119
Registrován: 17 čer 2012 19:12

Re: doplnění téma Skript na otevírání souboru .xlsm

Příspěvek od Jsimi »

To nepomůže,
budu citovat hlašku "Soubor C:\pokus.xlsx nelze nalézt"
Pokud je cesta delší, tak se tato hláška objeví pro každou složku která obsahuje mezery. Prostě pokaždé když je tam mezera tak místo té mezery tam vloží .xlsx a hledá soubor který se jmenuje "prvníslovovnázvuzložky.xlsx"
Mirdad69
Level 2
Level 2
Příspěvky: 219
Registrován: 01 čer 2012 15:38

Re: doplnění téma Skript na otevírání souboru .xlsm

Příspěvek od Mirdad69 »

no ten soubor to podle mě chápe jako dva parametry oddělené mezerou, co to zkusit dát celé do uvozovek?
""C:\pokus a\" & rok & "\PR_" & mesic & ".xlsm"" teď si nejsem jist, zda to tak stačí a nemusí se tam dát
"""C:\pokus a\" & rok & "\PR_" & mesic & ".xlsm"""
Jsimi
Level 1.5
Level 1.5
Příspěvky: 119
Registrován: 17 čer 2012 19:12

Re: doplnění téma Skript na otevírání souboru .xlsm

Příspěvek od Jsimi »

V prvním případě vyhodí chybu hned, ve druhém napíše, že bude hledat ve správném umístění, ale pak napíše soubor nenalezen.
Uziv00

Re: doplnění téma Skript na otevírání souboru .xlsm

Příspěvek od Uziv00 »

Chceš-li mezery, není to až tak problém, ale kód ztratí přehlednost a navíc si budeš muset tvořit spouštění bez kontroly. (Proměnná File bude sloužit jen pro kontrolu souboru, ale nelze ji použít pro spuštění, tedy vlastně cestu budeš muset zadávat dvakrát.) Změň řádek začínající WshShell.Run takto:

Kód: Vybrat vše

WshShell.Run "excel.exe" & " " & """C:\pokus a\" & rok & "\pokus_" & mesic & ".xlsm"""
Upozorňuji, že pokud mezeru z cesty zase odstraníš, bude to vyhazovat chyby.
Jsimi
Level 1.5
Level 1.5
Příspěvky: 119
Registrován: 17 čer 2012 19:12

Re: doplnění téma Skript na otevírání souboru .xlsm

Příspěvek od Jsimi »

Teď už to chodí. Ještě jednou díky.
Uziv00

Re: doplnění téma Skript na otevírání souboru .xlsm

Příspěvek od Uziv00 »

Není zač. Označ za vyřešené.
Jsimi
Level 1.5
Level 1.5
Příspěvky: 119
Registrován: 17 čer 2012 19:12

Re: doplnění téma Skript na otevírání souboru .xlsm

Příspěvek od Jsimi »

Omlouvám se,ale přehlédl jsem dodatek stou mezerou. Jde o to, že cesta k souboru vypadá takto.
"G:\GROUPS\Departments\Provoz Steti\BP-Balici papiry\Veřejné\Hlášení mistři nové\PR\" & rok & "\PR_" & mesic & ".xlsm"
Tudíž někde jsou mezery a někde ne.
Uziv00

Re: doplnění téma Skript na otevírání souboru .xlsm

Příspěvek od Uziv00 »

To si děláš srandu ne? Tak na tohle si přijdi sám. A díky, dávám to k dobru jak někdo může pojmenovat adresář :lol:
Něco zkusím, ale nezaručuju výsledek :-)
Uziv00

Re: doplnění téma Skript na otevírání souboru .xlsm

Příspěvek od Uziv00 »

Tak nakonec jsem na to přišel :D Člověk se furt učí. Normálně bych s něčím takovým každýho poslal někam, ale pak mi došlo, že nějak to jít musí. A není to až tak složité.
uprav řádek příkaz a řádek WshShell.Run takto:

Kód: Vybrat vše

prikaz = "excel.exe" & " " & Chr(34) & File & Chr(34)
WshShell.Run prikaz
Jak si všimneš, tak proměnná File je opět ve hře, takže stačí změnit pouze ji.
Jsimi
Level 1.5
Level 1.5
Příspěvky: 119
Registrován: 17 čer 2012 19:12

Re: doplnění téma Skript na otevírání souboru .xlsm

Příspěvek od Jsimi »

Dobrá práce. Moc dík
Zamčeno
  • Podobná témata
    Odpovědi
    Zobrazení
    Poslední příspěvek
  • Doplnění RAM do stolního PC
    od Slegr » » v Rady s výběrem hw a sestavením PC
    9 Odpovědi
    1620 Zobrazení
    Poslední příspěvek od Slegr
  • Doplnění grafické karty ke stávající sestavě
    od Kozina » » v Rady s výběrem hw a sestavením PC
    5 Odpovědi
    9573 Zobrazení
    Poslední příspěvek od Kogaku
  • Blokování stahovaných souborů
    od Riviera kid » » v Windows 11, 10, 8...
    10 Odpovědi
    7787 Zobrazení
    Poslední příspěvek od Riviera kid
  • Velikost souboru a složek na disku
    od L.L » » v Vše ostatní (sw)
    5 Odpovědi
    6567 Zobrazení
    Poslední příspěvek od L.L

Zpět na „Kancelářské balíky“