Excel-makro na "ovládání" wordu Vyřešeno

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

Moderátor: Mods_senior

saabturboclub
Level 1
Level 1
Příspěvky: 99
Registrován: červenec 10
Pohlaví: Muž
Stav:
Offline

Excel-makro na "ovládání" wordu  Vyřešeno

Příspěvekod saabturboclub » 17 srp 2013 00:15

Ahoj,
mohl bych někoho poprosit, zda by mi jen nenapsal "část" kódu ve VBA/makra do excelu, který bych si doplnil do již vytvořených částí a jednalo by se konkrétně o to, jak by měl kód vypadat, pokud bych chtěl aby mi excel "přepnul" na otevřený "daný názvem (např: xxxx.doc)" word dokument. Zbytek mám již připraveno,ale nemůžu najít jen tuto část,abych mohl dle názvu určit jaký "dokument" má excel z otevřených použít.
Případně ještě poprosím jen zas část kódu,který by mi případně řekl, že daný word dokument (dle zadaného názvu) není otevřený a vyhodil by na mně hlášku.

Děkuji moc za pomoc....Pavel (hledal jsem a koumal týden ale poprosím Vás o radu)

Reklama
Uziv00
Pohlaví: Nespecifikováno

Re: Excel-makro na "ovládání" wordu

Příspěvekod Uziv00 » 17 srp 2013 08:26

Není mi jasné co vlastně chceš.
Předpokládám, že pokud budeš mít na počítači otevřený dokument xxxx.doc, tak jej má zobrazit?

saabturboclub
Level 1
Level 1
Příspěvky: 99
Registrován: červenec 10
Pohlaví: Muž
Stav:
Offline

Re: Excel-makro na "ovládání" wordu

Příspěvekod saabturboclub » 17 srp 2013 20:20

Ahoj, v excelu mám částečně naprogramované tlačítko, které mi po stisku nakopíruje určitou oblast buněk (kde se i tlačítko nachází) a tuto část mi má vložit do wordu = do dokumentu .doc . Ale podařilo se mi dát dohromady (z různých jiných příkladů) to, že mi tu oblast nakopíruje do dokumentu,který jsem naposledy proklikl na liště (=mám třeba více .doc otevřených souborů). Tak že nakopíruje dobře, ale poslední dokument,který prokliknu nemusí být ten,kam chci data kopírovat, proto by mi postačilo poradit, napsat jen tu "část" kódu, jak by mělo vypadat když chci kopírovat oblast do wordu, ale definuji i název do jakého dokumentu má data kopírovat = pokud bych na liště z třeba tří dokumentů měl jeden,co se jmenu např. test.doc, tak by nakopíroval data do něj, pokud bych neměl na liště tento test.doc otevřený, tak by to mohlo vyhodit hlášku, že nemám otevřený "daný" dokument.
Nebo nějak jinak,jestli je lepší způsob, než co mně napadl...... nebo jestli je jednodušší aby excel vypsal třeba po stisku tlačítka otevřené .doc dokumenty a já bych vybral do jakého chci z otevřených danou oblast kopírovat?
Mně už to někdy nemyslí nad banalitou:-(

Děkuji Pavel

Uziv00
Pohlaví: Nespecifikováno

Re: Excel-makro na "ovládání" wordu

Příspěvekod Uziv00 » 18 srp 2013 07:46

Pořád mi není moc jasné wocogo...
Nicméně, pokud je word uzavřen, pak můžeš použít tohle: (nakopíruje to do zavřeného souboru)

Kód: Vybrat vše

Const END_OF_STORY = 6
Const MOVE_SELECTION = 0

Set objWord = CreateObject("Word.Application")
objWord.Visible = True

Set objDoc = objWord.Documents.Open("c:\test\testdoc.docx")
Set objSelection = objWord.Selection
objSelection.EndKey END_OF_STORY, MOVE_SELECTION
Text = "pokusný text 007"
objSelection.TypeText "" & Text
objDoc.SaveAs ("c:\test\testdoc.docx")
objWord.Quit

Na otevřený dokument to ale nefunguje. Pokud máš vyřešeno kopírování do otevřeného dokumentu, pak by mělo stačit nastavit onen otevřený dokument před kopírováním jako aktivní.
Kontrolu na otevřenost souboru lze řešit pokusem o jeho otevření pro zápis a zachycením chyby:

Kód: Vybrat vše

sFilePath = "C:\test\testdoc.docx"


    Dim oFso : Set oFso = CreateObject("Scripting.FileSystemObject")

    On Error Resume Next

    Dim nErr : nErr = 0
    Dim sDesc : sDesc = ""
    Dim oFile : Set oFile = oFso.OpenTextFile(sFilePath, 8)
    If Err.Number = 0 Then
        oFile.Close
        If Err Then
            nErr = Err.Number
            sDesc = Err.Description
        End if
   End If
    Set oFile = Nothing
    Set oFso = Nothing
 WScript.Echo Err.Number & "  " & Err.Description

To funguje tak, že pokud je chyba = 0, pak je možné do souboru zapsat => soubor není používán (otevřen).

A pro aktivaci dokumentu by mohlo fungovat:

Kód: Vybrat vše

Set objShell = CreateObject("WScript.Shell")
objShell.AppActivate "Nazev_Dokoumentu" '(nebo část - v podstatě to, co se objevuje nahoře v liště dokumentu)

ještě doplním - pokud by byl dokument v liště a požadoval bys jeho maximalizaci:

Kód: Vybrat vše

Set objShell = CreateObject("WScript.Shell")
vysledek = objShell.AppActivate ("Technici")
' WScript.Echo vysledek
If vysledek = 0 Then objShell.sendkeys "% x" '...restore

saabturboclub
Level 1
Level 1
Příspěvky: 99
Registrován: červenec 10
Pohlaví: Muž
Stav:
Offline

Re: Excel-makro na "ovládání" wordu

Příspěvekod saabturboclub » 18 srp 2013 23:01

Ahoj, děkuji za příklady a možnosti, použil jsem pomalu vše + implementoval do daných kódů a akorát mám drobný problém = od dopoledne jsem si s tím vším hrál na PC a zkoušel a "chyby" error či hlášky a další možnosti vyskakovali dobře a fungovalo a teďka jsem k večeru típnul celej word a i excel a chtěl jsem si to pro jistotu zkusit po xxTÉ, zda tlačítka a vše funguje (do té doby jsem ani jednu aplikaci Excel či Word za celej den úplně nezavřel), tak najednou přestalo v těch kódech fungovat vše co se týče "on Error" a kontrol :idea: celé odpoledne to vše fungovalo přesně jak má a jak i píšeš, když soubor nebyl tak mi to vyhodilo hlášku jakou jsem chtěl a stoplo vba a podmínky tím šli jak mají, ale nevím proč po vypnutí celé office aplikace to najednou nefunguje dle podmínek jak má a to jsem si vytvořil průběžně hodně záloh excelu, kdy to vždy během dneška šlo a v žádném to teďka nejde....(podmínky a chyby...)

Nevíš či nevíte, kde je asi problém? Mně to připadne, jak kdybych během dopoledne "něco" v excelu aktivoval pomocí "kódu" a celou dobu se to drželo a šlo a po vypnutí a zapnutí tam danou věc nemusím mít aktivní....no jen doměnka, nic jiného mně nenapadá, když vše šlo OK a jen típnutí celého wordu a zpět zase otevření všeho to najednou dělá jiné věci....

DĚKUJI, Pavel

Uziv00
Pohlaví: Nespecifikováno

Re: Excel-makro na "ovládání" wordu

Příspěvekod Uziv00 » 19 srp 2013 21:42

Kde je problém netuším. Jinak pokud nepoužíváš testování souboru jako funkci, nebo proceduru, mělo by být testování ukončeno nastavením Err.Number na 0 a dodán příkaz On Error Goto 0. Tím se zruší resume next.
Což (si myslím) ale nijak nesouvisí s tím, jak se to chová. Nicméně tvoje popisy jsou bohužel tak nepřesné a dvojjaké (či spíše několikajaké), že z toho těžko můžu něco najít. makro je jednou makro a zavření a znovu otevření souboru na ně nemá vliv - pokud zrovna tohle není součástí kódu.

saabturboclub
Level 1
Level 1
Příspěvky: 99
Registrován: červenec 10
Pohlaví: Muž
Stav:
Offline

Re: Excel-makro na "ovládání" wordu

Příspěvekod saabturboclub » 25 srp 2013 15:04

Ahoj, tak jsem to vyřešil, měls pravdu, špatně jsem tam měl ukončeno nastavení a jednu proceduru funkce někde jinde.
DĚKUJI MOC JINAK, PAVEL


  • Mohlo by vás zajímat
    Odpovědi
    Zobrazení
    Poslední příspěvek
  • EXCEL -jak otevřít 2 excel sobory abych je viděla současne a samostatně
    od Ketty02 » 30 srp 2024 21:19 » v Vše ostatní (sw)
    2
    4774
    od Riviera kid Zobrazit poslední příspěvek
    02 zář 2024 16:21
  • Jak odstranit zelená čísla ve wordu Příloha(y)
    od symetrala » 14 zář 2024 13:54 » v Kancelářské balíky
    3
    3348
    od elninoslov Zobrazit poslední příspěvek
    15 zář 2024 09:27
  • Jak odstranit zaškrtávací ikonu (prázdný čtverec) ve WORDU? Příloha(y)
    od Zabral688 » 08 pro 2024 12:20 » v Kancelářské balíky
    9
    4032
    od mmmartin Zobrazit poslední příspěvek
    09 pro 2024 08:27
  • Přechod z Excel 21 na Excel 24
    od Snekment » 29 led 2025 13:46 » v Kancelářské balíky
    2
    12191
    od Snekment Zobrazit poslední příspěvek
    29 led 2025 15:05
  • Pohoda a excel Příloha(y)
    od brownwld » 06 kvě 2025 17:28 » v Kancelářské balíky
    1
    4613
    od atari Zobrazit poslední příspěvek
    07 kvě 2025 09:41

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

Kdo je online

Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 8 hostů