Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailem Makro pro uložení Wordu

Vážení a milí kolegové,
snažím se vytvořit makro ve Wordu 2007, které by mi uložilo soubor pod názvem, který je roven hodnotě uvedené v dokumentu.
Mám totiž vytvořenou hromadnou korespondenci, kde se mění některá data převzatá z excelu. Jedno z nich je i číslo jednací. Název souboru by se měl jmenovat podle části tohoto čísla. Již jsem si vytvořil makro, které mi aktuální záznam v hromadné korespondenci otevře jako samostatný soubor pro úpravu. A chtěl jsem aby hned po tomto vytvoření tento dokument uložil pod názvem do určité složky, abych už ho mohl jen upravit, uložit a vytisknout.
Snažil jsem se to udělat označením části toho čísla jednacího, pak "Ctrl+C" a po otevření okna pro uložení dát "Ctrl-V". Jenže ono to makro to pak uloží vždy s tím názvem, který jsem dal při nahrávání makra a né novým.
Upravoval jsem VB kód různými způsoby, ale nechce mi to šlapat.
Nedá se to nějak upravit?
Děkuji za odpovědi.
S pozdravem
Jarek

Předmět Autor Datum
musíš makro editovat ve VBA, místo hodnoty "natvrdo" je třeba zvolit aktuální hodnotu z formuláře (p…
touchwood 13.10.2010 10:05
touchwood
Díky za odpověď. Bohužel ve Wordu se mi nechce propojit formulářové pole s databází - nejde tam vlož…
JarekG 18.10.2010 16:14
JarekG
Hm, skusal si to cez premennu? V podstate potrebujes vygenerovat novy nazov suboru z polozky Excelov… poslední
Anonym 27.10.2010 16:18
Anonym

musíš makro editovat ve VBA, místo hodnoty "natvrdo" je třeba zvolit aktuální hodnotu z formuláře (předpokládám něco jako form.cisjednaci.value (toto je pouze "názorná ukázka, nevím přesně, jak se odkazovat na pole formuláře ve Wordu, ale určitě to jde))

Podle tohoto threadu by to mělo být nějak takto: ActiveDocument.FormFields("Text94").Result.

Díky za odpověď. Bohužel ve Wordu se mi nechce propojit formulářové pole s databází - nejde tam vložit pole z hromadné korespondence. A když dám někde "pole" hromadné korespondence, tak se na něj nedá odkázat jako na formulářové pole.
Ale princip byl asi v pohodě. O tom žádná.
Ještě jednou díky.
Klidně uvítám další nápady. :-D
Jarek

Hm, skusal si to cez premennu? V podstate potrebujes vygenerovat novy nazov suboru z polozky Excelovskej databazy. Teraz neviem, ci sa vobec da preniest premenna z Exceku do Wordu, ale napadol ma dost krkolomny sposob, ako by sa to dalo urobit. V Exceli spravis makro, ktore ti vygeneruje prazdny subor s nazvom, ktory potrebujes pre Word, ale s priponou xls.

Nieco ako
Sub Makro_VytvorZosit
Dim NovyNazov as String

Workbooks.Add

NovyNazov = "C:\PomocnyAdresar\" & Cstr (ActiveCell.Value) & ".xls" 'kurzor je na bunke s prislusnym c. jednacim
ActiveWorkbook.SaveAs Filename:= Novy Nazov
ActiveWorkbook.Close

End Sub

Potom do svojho existujuceho makra /toho co ti vytvara novy subor na editovanie/ z Wordu zistis meno /jedineho/ suboru v Zlozke C:\PomocnyAdresar

Sub Makro_ZistiNazov()
Dim Novy Nazov as String

With Application.FileSearch
.LookIn = "C:\PomocnyAdresar"
.Filename = *.*
.Execute
End With

NovyNazov = Right (Application.FileSearch.FoundFiles(1),4) 'odstrani z nazvu posledne 4 pismena teda .xls

NovyNazov = "Zlozka do ktorej chces ulozit subor na upravu" & NovyNazov & ".docx

ActiveDocument.SaveAs Filename:= Novy nazov

End Sub

Je silne pravdepododne, ze existuje aj elegantnejsi sposob na prenos premennej, ale toto by malo fungovat. Samozrejme, zo zlozky PomocnyAdresar treba vzdy nasledne odstranit ten prazdny excelovsky subor.
Este moze byt problem s tym Application.FileSEarch, mam taky pocit, ze to z 2007 odstranili /ja robim v 2003/, potom by sa muselo ist cez FSO objekt /viac na: http://officir.ic.cz/chipex05/10/excel_vba_jine.ht ml

Dufam ze ti to pomoze.

Zpět do poradny Odpovědět na původní otázku Nahoru