fredpro59
Messages postés9Date d'inscriptionmardi 1 septembre 2009StatutMembreDernière intervention22 juillet 2010 23 sept. 2009 à 09:56
Bonjour,
Très bien ce code ! Je l'ai enrichi avec la possibilité de créer une instance de document Word, donc ouvrir un modèle (.dot) sans risque d'écraser le fichier d'origine.
Public Sub Word_Instance_document(Nom_Document As Variant, Visible As Boolean)
Word_Création_Lien_OLE
With Word_Application
.Visible = Visible
.WindowState = wdWindowStateMaximize
.Documents.Add Template:=Nom_Document
End With
End Sub
Bonne utilisation
johan3240
Messages postés10Date d'inscriptionvendredi 6 mai 2005StatutMembreDernière intervention 6 juillet 2009 6 juil. 2009 à 10:24
Bonjour,
Je voudrais le code source pour pouvoir créer, à partir de VBA Excel (d'une feuille ou d 'une macro peu importe), un tableau vierge, dans un document word, sans devoir parcourir un range ou des cellules d'un tableau excel.
Je veux qu'il soit vierge et pouvoir y mettre des variables d'une bdd access par la suite.
Donc pour faire simple, je veux pouvoir créer un tableau en lui définissant un nombre de colonnes et u nnombre de cellules sans devoir parcourir le tableur Excel!!!!!
Merci,
cs_asimengo
Messages postés280Date d'inscriptionjeudi 24 mars 2005StatutMembreDernière intervention18 mars 2009 10 déc. 2007 à 05:46
cs_asimengo
Messages postés280Date d'inscriptionjeudi 24 mars 2005StatutMembreDernière intervention18 mars 2009 2 déc. 2007 à 19:10
Je viens de faire une étude plus approfondie sur le sujet, pour mon idée d'utiliser word pour créer des états c impec avec impresion, visualisation, sauvegarde état depuis VB, au fait il suffit de faire les bonne declarations dim oDoc as Word.Document et chaque fois il sera facile de trouver les propriétés et méthodes qu'il faut avec la suggestion de VB.
il en ressort que ce code est peut-etre bien mais a quelque limite, il intereagit avec la version de word ouverte. Il faut plutot faire une classe et ouvrir sa propre session word, genre
Dim oWord As Word.Application
set oWord = new Word.Application
set oDoc=oWord.open(...)
le reste c rien que la POO, un peu d'aide sur la hiérarchie des objets et t'as pas forcement besoin à l'avance pour les propriétés et les méthodes les libellés parlent d'eux mêmes.
phoenix14
Messages postés15Date d'inscriptionvendredi 10 mai 2002StatutMembreDernière intervention 3 décembre 2007 30 nov. 2007 à 16:57
Super !
Presque tout ce qu'il me fallait :))
Par contre, si jamais quelqu'un savait comment modifier une "zone de texte", je suis preneur, j'ai tenté plein de truc sans résultat...:'(
cs_asimengo
Messages postés280Date d'inscriptionjeudi 24 mars 2005StatutMembreDernière intervention18 mars 2009 20 nov. 2007 à 07:19
Super, je vais juste commencer à le décortiquer ce code. Au vu des commentaires il doit être super interessant.
Mon projet est le suivant, créer un générateur d'état de type lettre depuis VB6, pour éditer les requetes à un seul enregistrement. Il s'agit un objet qu'on pourra intégrer à n'importe quel appli qui permette d'imprimer un doc word prédéfini en remplacant les signets par des valeurs de la BD.
Je travaille sur un logiciel pour la gestion des prestations affectées à un dossier, les opérations étant paramétrable, avec également un paramètre du genre "Chemin fichier Etat", j'ai une table qui fait les correspondances Nom Signet avec Nom d'un champ de la BD, après tout devient léger et facile. Pour les requêtes à plusieurs enregistrements on fait un état crystal report.
Voila, je pense que cette analyse pourra également aider bien d'autres.
cs_didine003
Messages postés12Date d'inscriptiondimanche 12 février 2006StatutMembreDernière intervention 4 avril 2011 4 avril 2007 à 15:08
salut a vous tous c'est tres interissant ce code si quelqu'un peu m'envoye un petit exemple ZIP pour bien comprendre le truc car je vient de faire un programme d'agence de location de voiture et je trouve ca tres interissant je voudrai bien travaille sur word que crystal report et merci d'avance de toute membre de vbfrance et
bonne courage a tous mon email et didinefeu@hotmail.com
pedro_el_bruno
Messages postés1Date d'inscriptionmardi 16 mai 2006StatutMembreDernière intervention21 février 2007 21 févr. 2007 à 19:59
Salut,
J'étais en train de mettre au point ce genre de code pour un cas spécifique :
1. replacement de "<canevas>" dans un document template par fichier "canevas.doc"
2. replacement de "<tagx>" par valeurx
Le point 1. n'est pas repris dans tes fonctions ... juste une idée pour faire évoluer ton modèle ;-)
Voici mon code :
objWord.Selection.HomeKey(Unit:=wdStory)
'''''Selection.Find.ClearFormatting()
With objWord
'''''.Selection.Find.ClearFormatting()
With .Selection.Find
.ClearFormatting()
.Text = FindWord
.Replacement.Text = ""
.Forward = True
.Wrap = wdFindAsk
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
.Selection.Find.Execute()
End With
Voici mon problème: En DOTNET 1.0, solution de type "CONSOLE APPLICATION", quel que soit l'endroit où je place le statement "ClearFormatting()", VisualStudio me jette hors du debugging.
unhandeled exception de type System.NullReferenceException (object reference is not set to an instance of an object)
En macro excel, quand je pilote word, pas de problème, mais je n'ai pas de parenthèses après "ClearFormatting". C'est Visual studio qui me les rajoute.
Toutes mes autres instructions word (open, saveAs, printout, ...) fonctionnent.
Une idée ?
(bravo pour la recherche et le travail de doocumentation)
cs_somehelpplease
Messages postés1Date d'inscriptiondimanche 18 février 2007StatutMembreDernière intervention18 février 2007 18 févr. 2007 à 23:17
Bonjour,
d'abord,merci beaucoup pour ce code!
en fait, j'aimerais bien savoir si qqn a eu le même problème que moi quand j'execute la fonction de test, word se lance et le résultat est là mais quand je ferme word l'application plante! et là je ne sais pas comment résoudre ce prob!
et merci d'avance pour votre aide!
Me
bepus
Messages postés2Date d'inscriptionmercredi 25 janvier 2006StatutMembreDernière intervention 3 mai 2007 14 févr. 2007 à 14:29
Slt!
balaise le code. J'apprécie
merkhaled
Messages postés26Date d'inscriptionmercredi 8 décembre 2004StatutMembreDernière intervention 8 octobre 2007 21 nov. 2006 à 12:17
bonjour,
est-il possible d'intégrer ton code dans une page php ?
merci
rorgmanche
Messages postés4Date d'inscriptionjeudi 14 octobre 2004StatutMembreDernière intervention 9 août 2005 1 nov. 2006 à 20:15
Salut,
Super doc
Petite question subsidaire: est il possible de récupérer les évènements fermeture de Word, enregistrement du document courant, etc... dans VB ??
A+
Rorgmanche
cs_Wbbrcaal
Messages postés16Date d'inscriptionmercredi 1 octobre 2003StatutMembreDernière intervention11 mars 2004 26 août 2006 à 10:47
Jacques,
merci pour ce tuto EXELLENT.
Je cherche un moyen d'effectuer une recherche une fonction permettant d'extraire des données du genre ( nom 20:10 )
1 extraire le nom
2 extraire le num. avant les deux points
3 extraire le num. aprés les deux points
les mettre dans des variables et établir un lien hypertext sur le nom complet nom 20:10 qui renvoie à une page.
merci de tout l'aide que l'on peut m'apporté
Wbbr
Little_Dev
Messages postés36Date d'inscriptionmercredi 8 septembre 2004StatutMembreDernière intervention 4 mars 2008 25 août 2006 à 11:22
Je n'ai q'une chose a dire "E.X.C.E.L.L.E.N.T"
Merci beaucoup pour ton code ;-)
@+
theangelus
Messages postés14Date d'inscriptiondimanche 28 novembre 2004StatutMembreDernière intervention25 janvier 2007 7 janv. 2006 à 20:43
Hey Ben, justement j'en avai besoin. Ton code est absolument génial.
Encore Bravo à toi, tu le mérite.
Bonne continuation à toi, et à tous les autres développeur.
++
kokise
Messages postés120Date d'inscriptionjeudi 5 mai 2005StatutMembreDernière intervention21 décembre 2017 7 nov. 2005 à 13:15
Géant ton code trop cool je dirai même super. Bravo et Merci
chbani4
Messages postés1Date d'inscriptionmardi 22 avril 2003StatutMembreDernière intervention 7 octobre 2005 7 oct. 2005 à 14:20
Tout simplement parfait... Merci Je t'aurai bien payé un verre tellement ça m'a aidé...je suis en train de piloter Word à partir d'Excel pour editer des rapports... prise de tete :-(
cyfred
Messages postés1Date d'inscriptionmardi 26 octobre 2004StatutMembreDernière intervention15 septembre 2005 15 sept. 2005 à 09:05
Merci beaucoup. Très complet, et bien utile !
Seul bémole, les commentaires.
En tt cas , merci à toi
Cyfred
cs_Wbbrcaal
Messages postés16Date d'inscriptionmercredi 1 octobre 2003StatutMembreDernière intervention11 mars 2004 31 août 2005 à 23:12
Bonsoir à tous,
juste pour vous dire que j'ai résolu mon problèmes de signets automatique.
je voyai trop grand au départ
Le tuto est formidable
Wbbr
cs_Dnx
Messages postés16Date d'inscriptionjeudi 9 octobre 2003StatutMembreDernière intervention16 juillet 2007 31 août 2005 à 15:55
Tout d'abord bravo pour ce tutocode :)
j'ai un petit souci :
comment dire a VB de tuer WORD dès qu'il a rencontré un problème d'ouverture de fichier.
En effet, j'ai quelques documents (aléatoire) sur 85.000 qui sont "corrompus/endommagés" et lorsque je fais word.application.open "nom_du_doc_endommagé"
il bloque complètement l'application!
j'ai d'abord pensé à mettre un timer pour lui dire si après 10 secondes VB n'a pas repris la main, il tue le processus de WORD mais ca ne marche pas car lorsque vb demande a word d'ouvrir le document endommagé, il reste complètement bloqué!
d'avance, merci.
sssccc
Messages postés7Date d'inscriptionsamedi 11 novembre 2000StatutMembreDernière intervention16 avril 2007 19 août 2005 à 11:46
Salut tout le monde
Ce code m'a été d' une grande utilité, sauf que la j ai un probleme
Alors:j'ai utilisé ce code dans mon pc au travail, mon programme marche a merveille
Sauf que quand j'ai voulu l'utiliser dans un autre pc, ca marche pas, le probléme c ke l'autre pc ne reconnait pas certains objet membres de Word comme par exemple :Wdgotobookmark
Je ne sais pas comment le faire marcher, en fait je trouve les objets dans "Examinateur de projet" mais quand j'execute y a un message d'erreur disant qu'il ne reconnait pas l'objet
pleaze j'ai besoin de réponse le plus to possible car je quitte le boulo aujourd'hui pour vacance et tout doit marcher aujord'hui
cs_Wbbrcaal
Messages postés16Date d'inscriptionmercredi 1 octobre 2003StatutMembreDernière intervention11 mars 2004 26 juil. 2005 à 16:32
Salut à tous,
mon problème ? c'est que jaimerais depuis Vb piloter word pour y inserer automatiquement des signets .
sans que je doive intervenir pour localiser l'endroit ou mettre ce signet
es-t-il possible de faire cela ?
Je sais c'est pas clair mais le but est d'insérer des signets en evitant ce laborieu travail de pointage
Mrerci pour vos réponse
Aldo
boisbaudry
Messages postés1Date d'inscriptionsamedi 13 novembre 2004StatutMembreDernière intervention20 juillet 2005 20 juil. 2005 à 10:03
Merci pour ce code.
Les commentaires c'est bien mais le code c'est mieux, et il n'a pas évolué depuis 2001 ! Pourtant les demandes semblent fortes et la doc à ce sujet difficile à trouver. Que se passe-t-il ? Jacques Prestreau est fatigué, en vacances ?
S'il fallait poser quelques questions :
- comment positionner les images (photos) que j'envoie dans Word ?
- comment donner une même dimension (en cm) à toutes ces images ?
- depuis Access, je ne puis lancer l'application qu'une seule fois (pb d'instance ?)
Merci encore pour celui, celle ou ceux qui pourront nous éclairer.
VirginieGE
Messages postés23Date d'inscriptionvendredi 23 juillet 2004StatutMembreDernière intervention20 mai 2005 20 mai 2005 à 11:39
Salut, j'ai essayé :
With Word_Application
Selection.Find.ClearFormatting
With Selection.Find
.text = Texte
.Replacement.text = ""
.Forward = Vers_le_bas
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
If Not Prompt_utilisateur Then
Word_Chercher_texte = .Execute
End If
End With
End With
Je bosse sur un projet en VB6 et reçois tjrs le même message : la méthode Replacement de l'objet Find a échoué... est-ce que qqn pourrait m'aider ?!?
Merci mille fois d'avance, commence à désespérer...
VirginieGE
Messages postés23Date d'inscriptionvendredi 23 juillet 2004StatutMembreDernière intervention20 mai 2005 20 mai 2005 à 11:36
Salut, j'ai essayé :
With Word_Application
Selection.Find.ClearFormatting
With Selection.Find
.text = Texte
.Replacement.text = ""
.Forward = Vers_le_bas
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
If Not Prompt_utilisateur Then
Word_Chercher_texte = .Execute
End If
End With
End With
Je bosse sur un projet en VB6 et reçois tjrs le même message : la méthode Replacement de l'objet Find a échoué... est-ce que qqn pourrait m'aider ?!?
Merci mille fois d'avance, commence à désespérer...
cs_Patrick92
Messages postés1Date d'inscriptionmercredi 5 mai 2004StatutMembreDernière intervention31 mars 2005 31 mars 2005 à 17:05
Trés Bien,
J'ai un petit problême :
Quand j'ouvre en VB6 un document de publipostage
Word l'ouvre comme un document normal (propriété STATE=0) . Comment faire pour l'ouvrir en tant que document principal de publipostage
Merci
Patrick92
Evy1
Messages postés1Date d'inscriptionlundi 7 février 2005StatutMembreDernière intervention 7 février 2005 7 févr. 2005 à 16:36
Chers tous,
Bonjour !
Quelqu'un peut dire comment faire pour activer la commande "Break Page" lorsque je travaille avec l'objet Word.Application en Background (avec Visible=False).
Merci !
Evy1
angy0503
Messages postés1Date d'inscriptiondimanche 5 janvier 2003StatutMembreDernière intervention24 janvier 2005 24 janv. 2005 à 14:06
très intéressant dommage que tu n'aies pas mis les créations des tableaux .
Connaitrais-tu le moyen pour créer un tableau? J'ai trouvé un début de code mais ça marche une fois sur deux.
zeunz
Messages postés200Date d'inscriptionjeudi 26 février 2004StatutMembreDernière intervention30 juin 2008 20 janv. 2005 à 01:22
tres bien.
je vais pouvoir me baser sur ton "tutoriel"
merci bcp.
patoucanard
Messages postés3Date d'inscriptiondimanche 25 juillet 2004StatutMembreDernière intervention25 juillet 2013 24 août 2004 à 10:43
Bonjour,
Si Word est déjà ouvert, cela crée une erreur dans Access 97 et le rest ne se fait plus, comment peut-on faire pour savoir si Word est déjà ouvert
Merci de me répondre, besoin professionnel
@+
cs_papillon76
Messages postés2Date d'inscriptionjeudi 12 août 2004StatutMembreDernière intervention12 août 2004 12 août 2004 à 14:25
Un immense merci d'avoir mis ce code à disposition... C'est très sympa.
Exactement ce dont j'avais besoin.
MERCI MERCI MERCI MERCI MERCI
PS: mon chef rentre de vacances la semaine prochaine... et il va voir que j'ai fait du "bon" boulot ;-) grâce à toi !! mais chut...
bea_dupuis
Messages postés3Date d'inscriptionjeudi 26 février 2004StatutMembreDernière intervention10 août 2004 10 août 2004 à 14:48
Bonjour,
C'est génial. Merci, merci merci et encore merci....
Pratique et marche très facilement.
Manquerait juste le traitement des tableaux....
Encore merci. Si, si, j'insiste.
Bonne continuation,
Béa.
AbsolutBeauty
Messages postés26Date d'inscriptionjeudi 24 juillet 2003StatutMembreDernière intervention15 septembre 2005 6 juil. 2004 à 12:24
Bonjour tout le monde,
Une question pour les champions de word sous VB:
J'insere une image dans mon document, mais comment placer cette image devant le texte? A la main faut faire click droit sur l'image/Propriétés/Habillage et choisir "devant le texte".
Ne connaissant pas le code j'ai voulu créer une nouvelle macro sous word et faire ca a la main, pour recuperer le code généré, mais impossible, je peux pas jouer avec le style d'habillage pendant l'enregistrement de la macro.
Merci a celui/celle qui aura la réponse, merci aussi a ceux qui auront cherché sans resultats :)
Abs
sehn
Messages postés41Date d'inscriptionmardi 16 avril 2002StatutMembreDernière intervention 8 octobre 2004 15 juin 2004 à 15:40
bon condensé
Voila une autre fonction pour ton code : insertion d'un document word dans le document en cours
Public Sub Word_Insertion_Document(ls_fichier As String)
'si le document existe
If UCase(Dir(ls_fichier, vbNormal)) = UCase(Right(ls_fichier, Len(ls_fichier) - InStrRev(ls_fichier, "", -1))) Then
Word_Application.Selection.InsertFile FileName:=ls_fichier, Range:="", ConfirmConversions:=False, Link:=False, Attachment:=False
End If
SeHN
cs_Snurf
Messages postés4Date d'inscriptionlundi 25 mars 2002StatutMembreDernière intervention16 juin 20041 15 juin 2004 à 11:43
Très beau boulot !!! il existe plus simple? noooon c'est du condensé du prêt à utiliser, rien à dire !!
Bravo et merci
djoul1001
Messages postés2Date d'inscriptionmardi 18 mai 2004StatutMembreDernière intervention24 mai 2004 19 mai 2004 à 16:21
Bonjour,
Ce code est vraiment bien, et m'aide beaucoup.
J'utilise vb.net et débute avec vb.
Je ne parviens pas, après avoir réussi à lancer word depuis mon appli, à ouvrir un nouveau document Word (j'en suis à : Dim MonDocumentWord2 As Microsoft.Office.Interop.Word.Document)
Quelqu'un peut-il m'aider ?
De plus, est il possible de lancer une session word dans un panel vb ?
merci beaucoup d'avance
srogers
Messages postés7Date d'inscriptionvendredi 30 avril 2004StatutMembreDernière intervention14 février 2005 30 avril 2004 à 22:38
Bonjour,
En voyant cette source, je me suis dit peut etre quelqu'un pourrait résoudre un probleme que j'ai depuis longtemps malgré mes recherches auprès de personnes compétentes.
Voila : J'utilisais des formulaires sous access 97 me permettant de visualiser des documents word en cliquant sur un bouton du formulaire. Ce document Word comportait des mots clés qui étaient remplacés par les informations du formulaire sur l'enregistrement en cours.
je n'utilisais aucun rapport sous access et passais toujours par cette fonctionnalité qui me permettait de modifier aisément sous word, d'éviter les espaces importants selon la longueur des champs et allégeait la base de données et bien d'autre encore)
J'avais donc des documents maitres avec word avec des mots clés entre crochets ex. {NomEmploye} ... et ces mots clés étaient remplacés par les champs de ma base de données (de l'enregistrement en cours, ex. NomEmploye) lorsque j'appuyai sur le bouton du formulaire
Cela fonctionnait très bien (comme un publipostage sous Word)
Mais depuis l'apparition d'Office 2000, certaines fonctions (entre autre apptivate ... ne sont plus reconnues.
Je suis novice en VBA mais si quelqu'un a une réponse à mon problème, de préférence avec un exemple (car étant novice), je lui en serai vraiment très reconnaissant.
Merci à tous
cs_Mangusta
Messages postés1Date d'inscriptionjeudi 15 avril 2004StatutMembreDernière intervention15 avril 2004 15 avril 2004 à 09:57
Très pratique, juste une petite chose, faire référence à l'objet Word_Application pour définir les tabulation :
cs_yodinho
Messages postés2Date d'inscriptionmercredi 31 mars 2004StatutMembreDernière intervention31 mars 2004 31 mars 2004 à 10:04
Oh la la jcapte rien... :-( en fait je voudrais rechercher un mot sur word à partir de VB alors si qq1 peut m'aider SOS!!!!
chrisou31
Messages postés4Date d'inscriptionvendredi 11 juillet 2003StatutMembreDernière intervention13 février 2004 13 févr. 2004 à 21:26
super source
vraiment il n'y a rien à dire, c'est presque complet (ça c'est vraiment pour chipoter)
10/10
cs_jon26
Messages postés11Date d'inscriptionmercredi 21 mai 2003StatutMembreDernière intervention 1 mars 2004 3 nov. 2003 à 13:19
Excellent. Tu me sauves la vie avec ton code. Tu me fais gagner un temps précieux, merci beaucoup. Pour ceux que ça intéresse, j'ai rajouter deux fonctions qui utilisent les tables. J'ai un fichier modèle dans lequel il y à une table que je remodèle à ma guise.
La routine "Word_Inserer_Ligne_Avant_Totaux" insère une ligne avant les 3 lignes finales du seul tableau de ma page. La petite routine enlève les bordures du haut de la ligne insérée.
Sub Enlever_Bordure_Haut_Ligne(RowObject As Row)
RowObject.Borders(wdBorderTop).LineStyle = wdLineStyleNone
End Sub
Sub Word_Inserer_Ligne_Avant_Totaux()
Dim b As Tables, a As Table, RowObject As Row, RowObject2 As Row, x As String
Set b = Word_Application.ActiveDocument.Tables
Set a = b(1)
'avant avant dernière ligne du tableau
Set RowObject = a.Rows.Last.Previous.Previous
'on insère une ligne avant la ligne RowObject
a.Rows.Add RowObject
'on crée l'objet que c'est la ligne avant RowObject
Set RowObject2 = RowObject.Previous
Enlever_Bordure_Haut_Ligne RowObject2
End Sub
SirCapello
Messages postés2Date d'inscriptionlundi 29 septembre 2003StatutMembreDernière intervention31 octobre 2003 31 oct. 2003 à 17:18
Très bonnes sources, très utile !
Une remarque : pour ceux qui se plaignent de ne pas comprendre, faute de commentaires, la réponse est simplement dans le nom des procédures...
C'est très explicite, essayez juste de faire abstraction de la nature des arguments qui est parfois complexe...
Je cherche un moyen de verrouiller WORD à partir de VB. L'utilisateur ne doit pas pouvoir modifier le contenu du document après la fusion de VB vers WORD.
Peut-être sais-tu comment faire ?
devmax98799
Messages postés76Date d'inscriptionmercredi 5 février 2003StatutMembreDernière intervention12 août 2009 12 sept. 2003 à 20:40
Salut a tous.J'ai un probleme d'ouverture d'un fichier existant "RunTime 5174" fichier inexistant. J'ai essayé plein de trucs mais je trouve pas. Si quelqu'un a la soluce. Sinon C un super module
yalard
Messages postés2Date d'inscriptionsamedi 21 juin 2003StatutMembreDernière intervention 2 juillet 2003 2 juil. 2003 à 16:44
si tu comprends pas un truc, poses une question plutot que de raller MEGAmickx
MegaMickx
Messages postés24Date d'inscriptionlundi 30 septembre 2002StatutMembreDernière intervention17 juillet 2003 1 juil. 2003 à 10:07
Il n'y a pas un seul commentaire!!!!!
Je débute en VB et pour moi c'est impossible a comprendre!!!!
yalard
Messages postés2Date d'inscriptionsamedi 21 juin 2003StatutMembreDernière intervention 2 juillet 2003 30 juin 2003 à 14:40
juste un problème que je n'ai pas encore résolu ...
c'est sur ta procédure : Sub Word_Insère_Numéros_de_pages()
le résultat est bizarre, ca me donne juste : page 1 sur
et puis rien du tout ...
Kelkun peut m'aider
ps : j'ai reprie le meme code
un grand merci pr le reste
cs_Rank
Messages postés4Date d'inscriptionlundi 12 mai 2003StatutMembreDernière intervention25 juillet 2003 13 mai 2003 à 16:57
Très interessant, merci!
Il ne manque que l'utilisation des tableaux!
;)
cs_ramzy
Messages postés27Date d'inscriptionlundi 18 novembre 2002StatutMembreDernière intervention19 juin 2006 5 mai 2003 à 13:18
Félicitations pour ton code.
Par contre tu pourrais peut etre m'aider. Je cherche comment générer des étiquettes (pour enveloppes) à partir de vb. Il faudrait 3 étiquettes sur la largeur et 8 sur la hauteur. Pour le moment j'ai un fichier word que je fusionne avec une base access.
Merci
bobbond
Messages postés3Date d'inscriptionvendredi 6 décembre 2002StatutMembreDernière intervention 6 décembre 2002 2 mars 2003 à 16:53
je voudrais seulement savoir comment faire pour copier une image jpeg ou bmp dans un fichier word exploitable.
Toi qui a l'air de metriser, j'espère que tu pourras m'aider.
Merci beaucoup pour le code qui m'a particulièrement aidé pour mon projet de stage. J'y ai rajouté des fonctions sur les tableaux, la tables de matières, des liens hypertexte etc.
Félicitations! mais j'aimerai piloter word à partir d'Excel: par exemple mettre en page un document avec des données provenant de contrôles sous Excel! Comment faire?
Juste un petit bug mais c'est plutot la faute de l'analyseur de syntaxe de vb6 :
Public Sub Word_Insère_Numéros_de_pages()
'NormalTemplate.AutoTextEntries("Page X sur Y").Insert Where:=Selection.Range
Word_Application.NormalTemplate.AutoTextEntries("Page X sur Y").Insert Where:=Word_Application.Selection.Range
End Sub
cela donne l'erreur 462 : le serveur distant n'existe pas ou n'est pas dispo.
Pour provoquer le problème, j'appelle la fonction WORD_Test deux fois en fermant WORD entre les deux.
Sinon je trouve ce code extrèmement interessant quand on veut automatiser des rapports.
Est - ce qu'on peut utiliser ton programme avec asp 3.0 (cad du web) j'ai w2k, iis5, sql server.
Moi je cherche a mettre un pied de page a tout les documents telecharger depuis mon site, qui dira bla bla télécharger depuis le site ...
23 sept. 2009 à 09:56
Très bien ce code ! Je l'ai enrichi avec la possibilité de créer une instance de document Word, donc ouvrir un modèle (.dot) sans risque d'écraser le fichier d'origine.
Public Sub Word_Instance_document(Nom_Document As Variant, Visible As Boolean)
Word_Création_Lien_OLE
With Word_Application
.Visible = Visible
.WindowState = wdWindowStateMaximize
.Documents.Add Template:=Nom_Document
End With
End Sub
Bonne utilisation
6 juil. 2009 à 10:24
Je voudrais le code source pour pouvoir créer, à partir de VBA Excel (d'une feuille ou d 'une macro peu importe), un tableau vierge, dans un document word, sans devoir parcourir un range ou des cellules d'un tableau excel.
Je veux qu'il soit vierge et pouvoir y mettre des variables d'une bdd access par la suite.
Donc pour faire simple, je veux pouvoir créer un tableau en lui définissant un nombre de colonnes et u nnombre de cellules sans devoir parcourir le tableur Excel!!!!!
Merci,
10 déc. 2007 à 05:46
2 déc. 2007 à 19:10
il en ressort que ce code est peut-etre bien mais a quelque limite, il intereagit avec la version de word ouverte. Il faut plutot faire une classe et ouvrir sa propre session word, genre
Dim oWord As Word.Application
set oWord = new Word.Application
set oDoc=oWord.open(...)
le reste c rien que la POO, un peu d'aide sur la hiérarchie des objets et t'as pas forcement besoin à l'avance pour les propriétés et les méthodes les libellés parlent d'eux mêmes.
30 nov. 2007 à 16:57
Presque tout ce qu'il me fallait :))
Par contre, si jamais quelqu'un savait comment modifier une "zone de texte", je suis preneur, j'ai tenté plein de truc sans résultat...:'(
20 nov. 2007 à 07:19
Mon projet est le suivant, créer un générateur d'état de type lettre depuis VB6, pour éditer les requetes à un seul enregistrement. Il s'agit un objet qu'on pourra intégrer à n'importe quel appli qui permette d'imprimer un doc word prédéfini en remplacant les signets par des valeurs de la BD.
Je travaille sur un logiciel pour la gestion des prestations affectées à un dossier, les opérations étant paramétrable, avec également un paramètre du genre "Chemin fichier Etat", j'ai une table qui fait les correspondances Nom Signet avec Nom d'un champ de la BD, après tout devient léger et facile. Pour les requêtes à plusieurs enregistrements on fait un état crystal report.
Voila, je pense que cette analyse pourra également aider bien d'autres.
4 avril 2007 à 15:08
bonne courage a tous mon email et didinefeu@hotmail.com
21 févr. 2007 à 19:59
J'étais en train de mettre au point ce genre de code pour un cas spécifique :
1. replacement de "<canevas>" dans un document template par fichier "canevas.doc"
2. replacement de "<tagx>" par valeurx
Le point 1. n'est pas repris dans tes fonctions ... juste une idée pour faire évoluer ton modèle ;-)
Voici mon code :
objWord.Selection.HomeKey(Unit:=wdStory)
'''''Selection.Find.ClearFormatting()
With objWord
'''''.Selection.Find.ClearFormatting()
With .Selection.Find
.ClearFormatting()
.Text = FindWord
.Replacement.Text = ""
.Forward = True
.Wrap = wdFindAsk
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
.Selection.Find.Execute()
End With
Voici mon problème: En DOTNET 1.0, solution de type "CONSOLE APPLICATION", quel que soit l'endroit où je place le statement "ClearFormatting()", VisualStudio me jette hors du debugging.
unhandeled exception de type System.NullReferenceException (object reference is not set to an instance of an object)
En macro excel, quand je pilote word, pas de problème, mais je n'ai pas de parenthèses après "ClearFormatting". C'est Visual studio qui me les rajoute.
Toutes mes autres instructions word (open, saveAs, printout, ...) fonctionnent.
Une idée ?
(bravo pour la recherche et le travail de doocumentation)
18 févr. 2007 à 23:17
d'abord,merci beaucoup pour ce code!
en fait, j'aimerais bien savoir si qqn a eu le même problème que moi quand j'execute la fonction de test, word se lance et le résultat est là mais quand je ferme word l'application plante! et là je ne sais pas comment résoudre ce prob!
et merci d'avance pour votre aide!
Me
14 févr. 2007 à 14:29
balaise le code. J'apprécie
21 nov. 2006 à 12:17
est-il possible d'intégrer ton code dans une page php ?
merci
1 nov. 2006 à 20:15
Super doc
Petite question subsidaire: est il possible de récupérer les évènements fermeture de Word, enregistrement du document courant, etc... dans VB ??
A+
Rorgmanche
26 août 2006 à 10:47
merci pour ce tuto EXELLENT.
Je cherche un moyen d'effectuer une recherche une fonction permettant d'extraire des données du genre ( nom 20:10 )
1 extraire le nom
2 extraire le num. avant les deux points
3 extraire le num. aprés les deux points
les mettre dans des variables et établir un lien hypertext sur le nom complet nom 20:10 qui renvoie à une page.
merci de tout l'aide que l'on peut m'apporté
Wbbr
25 août 2006 à 11:22
Merci beaucoup pour ton code ;-)
@+
7 janv. 2006 à 20:43
Encore Bravo à toi, tu le mérite.
Bonne continuation à toi, et à tous les autres développeur.
++
7 nov. 2005 à 13:15
7 oct. 2005 à 14:20
15 sept. 2005 à 09:05
Seul bémole, les commentaires.
En tt cas , merci à toi
Cyfred
31 août 2005 à 23:12
juste pour vous dire que j'ai résolu mon problèmes de signets automatique.
je voyai trop grand au départ
Le tuto est formidable
Wbbr
31 août 2005 à 15:55
j'ai un petit souci :
comment dire a VB de tuer WORD dès qu'il a rencontré un problème d'ouverture de fichier.
En effet, j'ai quelques documents (aléatoire) sur 85.000 qui sont "corrompus/endommagés" et lorsque je fais word.application.open "nom_du_doc_endommagé"
il bloque complètement l'application!
j'ai d'abord pensé à mettre un timer pour lui dire si après 10 secondes VB n'a pas repris la main, il tue le processus de WORD mais ca ne marche pas car lorsque vb demande a word d'ouvrir le document endommagé, il reste complètement bloqué!
d'avance, merci.
19 août 2005 à 11:46
Ce code m'a été d' une grande utilité, sauf que la j ai un probleme
Alors:j'ai utilisé ce code dans mon pc au travail, mon programme marche a merveille
Sauf que quand j'ai voulu l'utiliser dans un autre pc, ca marche pas, le probléme c ke l'autre pc ne reconnait pas certains objet membres de Word comme par exemple :Wdgotobookmark
Je ne sais pas comment le faire marcher, en fait je trouve les objets dans "Examinateur de projet" mais quand j'execute y a un message d'erreur disant qu'il ne reconnait pas l'objet
pleaze j'ai besoin de réponse le plus to possible car je quitte le boulo aujourd'hui pour vacance et tout doit marcher aujord'hui
26 juil. 2005 à 16:32
mon problème ? c'est que jaimerais depuis Vb piloter word pour y inserer automatiquement des signets .
sans que je doive intervenir pour localiser l'endroit ou mettre ce signet
es-t-il possible de faire cela ?
Je sais c'est pas clair mais le but est d'insérer des signets en evitant ce laborieu travail de pointage
Mrerci pour vos réponse
Aldo
20 juil. 2005 à 10:03
Les commentaires c'est bien mais le code c'est mieux, et il n'a pas évolué depuis 2001 ! Pourtant les demandes semblent fortes et la doc à ce sujet difficile à trouver. Que se passe-t-il ? Jacques Prestreau est fatigué, en vacances ?
S'il fallait poser quelques questions :
- comment positionner les images (photos) que j'envoie dans Word ?
- comment donner une même dimension (en cm) à toutes ces images ?
- depuis Access, je ne puis lancer l'application qu'une seule fois (pb d'instance ?)
Merci encore pour celui, celle ou ceux qui pourront nous éclairer.
20 mai 2005 à 11:39
With Word_Application
Selection.Find.ClearFormatting
With Selection.Find
.text = Texte
.Replacement.text = ""
.Forward = Vers_le_bas
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
If Not Prompt_utilisateur Then
Word_Chercher_texte = .Execute
End If
End With
End With
Je bosse sur un projet en VB6 et reçois tjrs le même message : la méthode Replacement de l'objet Find a échoué... est-ce que qqn pourrait m'aider ?!?
Merci mille fois d'avance, commence à désespérer...
20 mai 2005 à 11:36
With Word_Application
Selection.Find.ClearFormatting
With Selection.Find
.text = Texte
.Replacement.text = ""
.Forward = Vers_le_bas
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
If Not Prompt_utilisateur Then
Word_Chercher_texte = .Execute
End If
End With
End With
Je bosse sur un projet en VB6 et reçois tjrs le même message : la méthode Replacement de l'objet Find a échoué... est-ce que qqn pourrait m'aider ?!?
Merci mille fois d'avance, commence à désespérer...
31 mars 2005 à 17:05
J'ai un petit problême :
Quand j'ouvre en VB6 un document de publipostage
Word l'ouvre comme un document normal (propriété STATE=0) . Comment faire pour l'ouvrir en tant que document principal de publipostage
Merci
Patrick92
7 févr. 2005 à 16:36
Bonjour !
Quelqu'un peut dire comment faire pour activer la commande "Break Page" lorsque je travaille avec l'objet Word.Application en Background (avec Visible=False).
Merci !
Evy1
24 janv. 2005 à 14:06
Connaitrais-tu le moyen pour créer un tableau? J'ai trouvé un début de code mais ça marche une fois sur deux.
20 janv. 2005 à 01:22
je vais pouvoir me baser sur ton "tutoriel"
merci bcp.
24 août 2004 à 10:43
Si Word est déjà ouvert, cela crée une erreur dans Access 97 et le rest ne se fait plus, comment peut-on faire pour savoir si Word est déjà ouvert
Merci de me répondre, besoin professionnel
@+
12 août 2004 à 14:25
Exactement ce dont j'avais besoin.
MERCI MERCI MERCI MERCI MERCI
PS: mon chef rentre de vacances la semaine prochaine... et il va voir que j'ai fait du "bon" boulot ;-) grâce à toi !! mais chut...
10 août 2004 à 14:48
C'est génial. Merci, merci merci et encore merci....
Pratique et marche très facilement.
Manquerait juste le traitement des tableaux....
Encore merci. Si, si, j'insiste.
Bonne continuation,
Béa.
6 juil. 2004 à 12:24
Une question pour les champions de word sous VB:
J'insere une image dans mon document, mais comment placer cette image devant le texte? A la main faut faire click droit sur l'image/Propriétés/Habillage et choisir "devant le texte".
Ne connaissant pas le code j'ai voulu créer une nouvelle macro sous word et faire ca a la main, pour recuperer le code généré, mais impossible, je peux pas jouer avec le style d'habillage pendant l'enregistrement de la macro.
Merci a celui/celle qui aura la réponse, merci aussi a ceux qui auront cherché sans resultats :)
Abs
15 juin 2004 à 15:40
Voila une autre fonction pour ton code : insertion d'un document word dans le document en cours
Public Sub Word_Insertion_Document(ls_fichier As String)
'si le document existe
If UCase(Dir(ls_fichier, vbNormal)) = UCase(Right(ls_fichier, Len(ls_fichier) - InStrRev(ls_fichier, "", -1))) Then
Word_Application.Selection.InsertFile FileName:=ls_fichier, Range:="", ConfirmConversions:=False, Link:=False, Attachment:=False
End If
SeHN
15 juin 2004 à 11:43
Bravo et merci
19 mai 2004 à 16:21
Ce code est vraiment bien, et m'aide beaucoup.
J'utilise vb.net et débute avec vb.
Je ne parviens pas, après avoir réussi à lancer word depuis mon appli, à ouvrir un nouveau document Word (j'en suis à : Dim MonDocumentWord2 As Microsoft.Office.Interop.Word.Document)
Quelqu'un peut-il m'aider ?
De plus, est il possible de lancer une session word dans un panel vb ?
merci beaucoup d'avance
30 avril 2004 à 22:38
En voyant cette source, je me suis dit peut etre quelqu'un pourrait résoudre un probleme que j'ai depuis longtemps malgré mes recherches auprès de personnes compétentes.
Voila : J'utilisais des formulaires sous access 97 me permettant de visualiser des documents word en cliquant sur un bouton du formulaire. Ce document Word comportait des mots clés qui étaient remplacés par les informations du formulaire sur l'enregistrement en cours.
je n'utilisais aucun rapport sous access et passais toujours par cette fonctionnalité qui me permettait de modifier aisément sous word, d'éviter les espaces importants selon la longueur des champs et allégeait la base de données et bien d'autre encore)
J'avais donc des documents maitres avec word avec des mots clés entre crochets ex. {NomEmploye} ... et ces mots clés étaient remplacés par les champs de ma base de données (de l'enregistrement en cours, ex. NomEmploye) lorsque j'appuyai sur le bouton du formulaire
Cela fonctionnait très bien (comme un publipostage sous Word)
Mais depuis l'apparition d'Office 2000, certaines fonctions (entre autre apptivate ... ne sont plus reconnues.
Je suis novice en VBA mais si quelqu'un a une réponse à mon problème, de préférence avec un exemple (car étant novice), je lui en serai vraiment très reconnaissant.
Merci à tous
15 avril 2004 à 09:57
Word_Application.Selection.ParagraphFormat.TabStops.Add Position:=Word_Application.CentimetersToPoints(En_Position), Alignment:=wdAlignTabCenter, Leader:=wdTabLeaderSpaces
Sinon erreur 462
31 mars 2004 à 10:04
13 févr. 2004 à 21:26
vraiment il n'y a rien à dire, c'est presque complet (ça c'est vraiment pour chipoter)
10/10
3 nov. 2003 à 13:19
La routine "Word_Inserer_Ligne_Avant_Totaux" insère une ligne avant les 3 lignes finales du seul tableau de ma page. La petite routine enlève les bordures du haut de la ligne insérée.
Sub Enlever_Bordure_Haut_Ligne(RowObject As Row)
RowObject.Borders(wdBorderTop).LineStyle = wdLineStyleNone
End Sub
Sub Word_Inserer_Ligne_Avant_Totaux()
Dim b As Tables, a As Table, RowObject As Row, RowObject2 As Row, x As String
Set b = Word_Application.ActiveDocument.Tables
Set a = b(1)
'avant avant dernière ligne du tableau
Set RowObject = a.Rows.Last.Previous.Previous
'on insère une ligne avant la ligne RowObject
a.Rows.Add RowObject
'on crée l'objet que c'est la ligne avant RowObject
Set RowObject2 = RowObject.Previous
Enlever_Bordure_Haut_Ligne RowObject2
End Sub
31 oct. 2003 à 17:18
Une remarque : pour ceux qui se plaignent de ne pas comprendre, faute de commentaires, la réponse est simplement dans le nom des procédures...
C'est très explicite, essayez juste de faire abstraction de la nature des arguments qui est parfois complexe...
Je cherche un moyen de verrouiller WORD à partir de VB. L'utilisateur ne doit pas pouvoir modifier le contenu du document après la fusion de VB vers WORD.
Peut-être sais-tu comment faire ?
12 sept. 2003 à 20:40
2 juil. 2003 à 16:44
1 juil. 2003 à 10:07
Je débute en VB et pour moi c'est impossible a comprendre!!!!
30 juin 2003 à 14:40
c'est sur ta procédure : Sub Word_Insère_Numéros_de_pages()
le résultat est bizarre, ca me donne juste : page 1 sur
et puis rien du tout ...
Kelkun peut m'aider
ps : j'ai reprie le meme code
un grand merci pr le reste
13 mai 2003 à 16:57
Il ne manque que l'utilisation des tableaux!
;)
5 mai 2003 à 13:18
Par contre tu pourrais peut etre m'aider. Je cherche comment générer des étiquettes (pour enveloppes) à partir de vb. Il faudrait 3 étiquettes sur la largeur et 8 sur la hauteur. Pour le moment j'ai un fichier word que je fusionne avec une base access.
Merci
2 mars 2003 à 16:53
23 nov. 2001 à 17:52
18 oct. 2001 à 18:29
Toi qui a l'air de metriser, j'espère que tu pourras m'aider.
17 oct. 2001 à 14:59
31 août 2001 à 14:48
Merci
14 août 2001 à 16:17
Un des meilleurs codes sur ce site, en tous cas un des plus utiles... Il ne manque rien...
9 août 2001 à 17:11
30 juil. 2001 à 09:52
25 juil. 2001 à 20:52
25 juin 2001 à 13:43
14 juin 2001 à 18:29
18 mai 2001 à 15:22
15 mai 2001 à 08:39
Public Sub Word_Insère_Numéros_de_pages()
'NormalTemplate.AutoTextEntries("Page X sur Y").Insert Where:=Selection.Range
Word_Application.NormalTemplate.AutoTextEntries("Page X sur Y").Insert Where:=Word_Application.Selection.Range
End Sub
cela donne l'erreur 462 : le serveur distant n'existe pas ou n'est pas dispo.
Pour provoquer le problème, j'appelle la fonction WORD_Test deux fois en fermant WORD entre les deux.
Sinon je trouve ce code extrèmement interessant quand on veut automatiser des rapports.
19 avril 2001 à 13:29
JE SUIS DEBUTANT
23 nov. 2000 à 18:23
Moi je cherche a mettre un pied de page a tout les documents telecharger depuis mon site, qui dira bla bla télécharger depuis le site ...
13 oct. 2000 à 09:25