cancellare il contenuto dei bookmarks ,from excel to word

551 views
Skip to first unread message

archimede

unread,
Apr 22, 2011, 4:41:21 AM4/22/11
to Excel VBA
ciao a tutti,
sto impazzendo con i bookmarks di word !!!
ho un foglio di excel con due celle il cui contenuto va a finire in
foglio word con i due bookmark; in qualche modo ho scritto il codice
(mezzo copiato da un libro e adattato!) che pero' funziona, cioe' mi
copia il contenuto delle celle nei relativi bookmarks , ma poi quando
ripeto il codice mi continua ad aggiungere sempre il contenuto delle
celle nei bookmars senza cancellare quelli vecchi!
cosi mi ritrovo i bookmars pieni di parole (anziche trovare bookmark
nr.1 =ciao, mi trovo se esempio ho ripetuto il codice tre volte
bookmark nr.1 =ciaociaociao)
ho messo anche un DocRange.delete ma mi cancella solo una lettera e
non tutta la parola vecchia!

secondo voi cosa c'e di sbagliato? ho messo anche il codice che ho
scritto nella domanda:
speriamo che ci sia qualcuno che abbia una soluzione, perche questo
sistema mi verrebbe comodo al lavoro anziche usare la stampa unione.
intanto vi ringrazio di avermi letto e buona giornata
ciao ciao
Sub BOOKMARKS()

Dim WordApp As Object
Dim WordDoc As Object

Set WordApp = CreateObject("Word.Application")
Set WordDoc = WordApp.documents.Open("C:\Users\Fabio\D…

WordApp.Visible = True

Dim inizio As Long
Dim fine As Long
Dim DocRange As Object
Dim a As String
Dim b As String

a = Range("a2").Value
inizio = WordDoc.BOOKMARKS("a").Start
fine = WordDoc.BOOKMARKS("a").End
Set DocRange = WordDoc.Range(inizio, fine)
DocRange.Delete 'pero mi cancella solo la prima lettera
DocRange.InsertBefore (a)

b = Range("b2").Value
inizio = WordDoc.BOOKMARKS("b").Start
fine = WordDoc.BOOKMARKS("b").End
Set DocRange = WordDoc.Range(inizio, fine)
DocRange.Delete 'pero mi cancella solo la prima lettera
DocRange.InsertBefore (b)

WordDoc.Close
WordApp.Quit

End Sub

r

unread,
Apr 22, 2011, 4:49:55 AM4/22/11
to excel_v...@googlegroups.com
ciao Archimede ...
fammi solo capire ... il segnalibro al momento in cui apri il documento è vuoto o già c'è scritto qualcosa?

tu vuoi sostituire il vecchio testo con uno nuovo è corretto?
saluti
r

archimede

unread,
Apr 23, 2011, 4:04:27 AM4/23/11
to Excel VBA
Ciao, grazie intanto che mi hai letto !!!!!
questo foglio di word in cui ho messo i segnalibri deve funzionare
solo come modello, lui preleva i dati dalla cella A2 e B2 di excel,li
metti nei bookmars,poi io stampo con printout, e poi vorrei che word
si chiudesse, non mi deve chiedere mai se voglio salvarlo o no perche
deve rimanere un modello, e io continuo con il mio excel. il problema
e' che comunque con worddoc.close mi salva le modifiche e quando poi
apre il foglio un altra volta mi ritrovo i vecchi bookmars con i dati
vecchi, per cui se ho scritto una volta Ciao, alla fine mi trovo
CiaoCiao, e poi ancora ciaociaociao, ogni volta che avvio il codice i
bookmars non cancellano mai il vecchio contenuto e mi aggiungono
quello nuovo.

ho cercato anche altre soluzione ad esempio ......worddoc.close
savechanges(wddonotsavechanges) ma mi trovo "errore di
compilazione,vriabile non definita".eppure sul libro e' scritto cosi
ma non capisco come mai a me si inceppa!

inoltre ho trovato anche questo sistema ma arrivo alla 4 riga e mi da
errore , perche sembra che questi "wd" il mio pc non li capisce!!!
...
MyWd.Bookmarks("a").Select
MyWd.Bookmarks("a").Range = Range("a2").Value
x = Len(Range("a2").Value)
MyWd.Application.Selection.MoveRight Unit:=wdCharacter, Count:=x,
Extend:=wdExtend
MyWd.Bookmarks.Add Range:=MyWd.Application.Selection.Range, Name:="a"


ora , non ti voglio incasinare troppo la vita, a me va bene qualsiasi
sistema , importante apre word, riempio i segnalibri, stampo,e non
salvo word (logicamnete non voglio trovarmi le finestre di dialog che
mi chiedono di salvare ,a meno che sia inevitabile)

ti ringrazio , sono 4 giorni che sono sequestrato da questi
bookmarks!!!
ciao ciao

archimede

unread,
Apr 23, 2011, 5:28:34 PM4/23/11
to Excel VBA
ciao ho scoperto il problema, sono impazzito, ma mi ero dimenticato le
librerie da attivare in strumenti riferimenti !!!!!

il codice infatti adesso funziona che e' una bomba.

grazie R

al prossimo problema!

grazie e ciao ciao

roberto mensa

unread,
Apr 24, 2011, 5:16:29 PM4/24/11
to excel_v...@googlegroups.com
la macro che avevi postato non necessitava di alcun ulteriore riferimento ... probabilmente non l'avevi postata tutta ...
saluti
r



--
Hai ricevuto questo messaggio in quanto sei iscritto al gruppo "Excel VBA" di Google Gruppi.
Per mandare un messaggio a questo gruppo, invia una email a
excel_v...@googlegroups.com
Per modificare la tua iscrizione
http://groups.google.it/group/excel_vba_free/subscribe?hl=it
Per maggiori opzioni, visita questo gruppo all'indirizzo
http://groups.google.it/group/excel_vba_free?hl=it?hl=it

archimede

unread,
Apr 25, 2011, 10:02:44 AM4/25/11
to Excel VBA
ciao roberto
grazie comunque del tuo continuo interessamento, pero' oltre che su
questo codice stavo lavorando su altri 5-6 codice e tutti piu o meno
si inceppavano, miracolosamente appena ho attivato le librerie di
word, e vaiiiiiiiiiiiiiiiiiiiii....tutto a gonfie vele !!!!!
se arrrivavo alla riga wsDoNotSaveChanges mi diceva errore ,variabile
non definita , oppure se arrivavo alla riga (di un altro codice)
.............MyWd.Application.Selection.MoveRight Unit:=wdCharacter,
Count:=x,Extend:=wdExtend
MyWd.Bookmarks.Add Range:=MyWd.Application.Selection.Range,
Name:="a.......... idem , si bloccava al primo wd che incontrava.
invece appena inserito le librerie di word i bookmark macinavano
tutto !!!

addirittura c'erano codice copiati dal libro che si bloccavno, e
adesso dopo aver messo le librerie funzionano come da manuale!!

comunque ho imparato qualcosa, e se nell uovo di pasqua non ho trovato
il regalo, questo e' il mio vero regalo pasquale!

grazie comunque che hai seguito il mio problema, almeno ho trovato
qualcuno che mi poteva aiutare !!!

alla prossima. e buona pasqua!!!!

roberto mensa

unread,
Apr 25, 2011, 4:39:46 PM4/25/11
to excel_v...@googlegroups.com
ciao,
volevo solo precisare, per chi dovesse leggere più avanti.
Nella tua routine (quella che hai postato) fai uso di createobject per referenziare applicazione e documento word. In quella routine quindi non occorre aggiungere riferimenti alla libreria word. Le altre routine che hai usato non le vedo quindi non posso neppure eventualmente darti un consiglio. Rimane il fatto che non è necessario aggiungere i riferimenti basterebbe modificare leggermente le routine.
comunque sono contento che hai risolto.
buona pasqua anche a te e anche buon 25 aprile
r



--
Reply all
Reply to author
Forward
0 new messages