Dans une procédure VBA, je récupère les valeurs dans une table SQL Server
via les méthodes OpenDataBase et OpenRecordSet.
Comment ensuite renvoyer ces valeurs dans le document Word, à des
emplacements précis ? Je suppose qu'il faut insérer des champs, mais
lesquels et comment les adresser via VBA ?
Dans une procédure VBA, je récupère les valeurs dans une table SQL Server
via les méthodes OpenDataBase et OpenRecordSet.
Comment ensuite renvoyer ces valeurs dans le document Word, à des
emplacements précis ? Je suppose qu'il faut insérer des champs, mais
lesquels et comment les adresser via VBA ?
Dans une procédure VBA, je récupère les valeurs dans une table SQL Server
via les méthodes OpenDataBase et OpenRecordSet.
Comment ensuite renvoyer ces valeurs dans le document Word, à des
emplacements précis ? Je suppose qu'il faut insérer des champs, mais
lesquels et comment les adresser via VBA ?
Bonjour !
'JMD' nous a écrit ...Dans une procédure VBA, je récupère les valeurs dans une table SQL Server
via les méthodes OpenDataBase et OpenRecordSet.
Comment ensuite renvoyer ces valeurs dans le document Word, à des
emplacements précis ? Je suppose qu'il faut insérer des champs, mais
lesquels et comment les adresser via VBA ?
Word + une base de données ça fait publipostage* !! Votre document
principal
contient des champs de fusion. La procédure de fusion* dans un document
de fusion vous évite en général tout le travail de OpenRecordset et tous
les Move et Fields pour accéder aux données : Word sait faire ça tout seul
avec quelques instructions simples en vba, requête SQL comprise.
Si vous tenez malgré tout à accéder vous-même à votre base, aux
enregistrements
soumis à requête, et à tous les champs de ces enregistrements, la
procédure
générale pour insérer du texte à une place précise d'un document est d'y
définir à cet endroit un signet* (objet Bookmark en vba Word).
Anacoluthe
« Avant d'employer un beau mot, faites-lui une place. »
- Joseph JOUBERT
Bonjour !
'JMD' nous a écrit ...
Dans une procédure VBA, je récupère les valeurs dans une table SQL Server
via les méthodes OpenDataBase et OpenRecordSet.
Comment ensuite renvoyer ces valeurs dans le document Word, à des
emplacements précis ? Je suppose qu'il faut insérer des champs, mais
lesquels et comment les adresser via VBA ?
Word + une base de données ça fait publipostage* !! Votre document
principal
contient des champs de fusion. La procédure de fusion* dans un document
de fusion vous évite en général tout le travail de OpenRecordset et tous
les Move et Fields pour accéder aux données : Word sait faire ça tout seul
avec quelques instructions simples en vba, requête SQL comprise.
Si vous tenez malgré tout à accéder vous-même à votre base, aux
enregistrements
soumis à requête, et à tous les champs de ces enregistrements, la
procédure
générale pour insérer du texte à une place précise d'un document est d'y
définir à cet endroit un signet* (objet Bookmark en vba Word).
Anacoluthe
« Avant d'employer un beau mot, faites-lui une place. »
- Joseph JOUBERT
Bonjour !
'JMD' nous a écrit ...Dans une procédure VBA, je récupère les valeurs dans une table SQL Server
via les méthodes OpenDataBase et OpenRecordSet.
Comment ensuite renvoyer ces valeurs dans le document Word, à des
emplacements précis ? Je suppose qu'il faut insérer des champs, mais
lesquels et comment les adresser via VBA ?
Word + une base de données ça fait publipostage* !! Votre document
principal
contient des champs de fusion. La procédure de fusion* dans un document
de fusion vous évite en général tout le travail de OpenRecordset et tous
les Move et Fields pour accéder aux données : Word sait faire ça tout seul
avec quelques instructions simples en vba, requête SQL comprise.
Si vous tenez malgré tout à accéder vous-même à votre base, aux
enregistrements
soumis à requête, et à tous les champs de ces enregistrements, la
procédure
générale pour insérer du texte à une place précise d'un document est d'y
définir à cet endroit un signet* (objet Bookmark en vba Word).
Anacoluthe
« Avant d'employer un beau mot, faites-lui une place. »
- Joseph JOUBERT
Set ActiveDocument.Bookmark("Offre") = rstlct!Codeclient
Set ActiveDocument.Bookmark("Offre") = rstlct!Codeclient
Set ActiveDocument.Bookmark("Offre") = rstlct!Codeclient
Set ActiveDocument.Bookmark("Offre") = rstlct!Codeclient
ActiveDocument.BookmarkS("Offre")
--
A+
Set ActiveDocument.Bookmark("Offre") = rstlct!Codeclient
ActiveDocument.BookmarkS("Offre")
--
A+
Set ActiveDocument.Bookmark("Offre") = rstlct!Codeclient
ActiveDocument.BookmarkS("Offre")
--
A+
Merci d'avoir pris le temps de répondre.
J'ai donc créé un signet dans la feuille, nommé Offre.
Ensuite, dans le code, j'ai fais :
Set ActiveDocument.Bookmark("Offre") = rstlct!Codeclient
Mais j'obteins "Propriété ou méthode non gérée par cet objet".
Donc, j'ai pas compris. Auriez-vous l'amabilité d'être plus précis ?
Merci encore,
JMD
"Anacoluthe" a écrit dans le message de
news:Bonjour !
'JMD' nous a écrit ...Dans une procédure VBA, je récupère les valeurs dans une table SQL
Server via les méthodes OpenDataBase et OpenRecordSet.
Comment ensuite renvoyer ces valeurs dans le document Word, à des
emplacements précis ? Je suppose qu'il faut insérer des champs, mais
lesquels et comment les adresser via VBA ?
Word + une base de données ça fait publipostage* !! Votre document
principal
contient des champs de fusion. La procédure de fusion* dans un document
de fusion vous évite en général tout le travail de OpenRecordset et tous
les Move et Fields pour accéder aux données : Word sait faire ça tout
seul
avec quelques instructions simples en vba, requête SQL comprise.
Si vous tenez malgré tout à accéder vous-même à votre base, aux
enregistrements
soumis à requête, et à tous les champs de ces enregistrements, la
procédure
générale pour insérer du texte à une place précise d'un document est d'y
définir à cet endroit un signet* (objet Bookmark en vba Word).
Anacoluthe
« Avant d'employer un beau mot, faites-lui une place. »
- Joseph JOUBERT
Merci d'avoir pris le temps de répondre.
J'ai donc créé un signet dans la feuille, nommé Offre.
Ensuite, dans le code, j'ai fais :
Set ActiveDocument.Bookmark("Offre") = rstlct!Codeclient
Mais j'obteins "Propriété ou méthode non gérée par cet objet".
Donc, j'ai pas compris. Auriez-vous l'amabilité d'être plus précis ?
Merci encore,
JMD
"Anacoluthe" <nopub_anacoluthe@Ouanadoo.fr> a écrit dans le message de
news: OkMkOfJvHHA.3796@TK2MSFTNGP02.phx.gbl...
Bonjour !
'JMD' nous a écrit ...
Dans une procédure VBA, je récupère les valeurs dans une table SQL
Server via les méthodes OpenDataBase et OpenRecordSet.
Comment ensuite renvoyer ces valeurs dans le document Word, à des
emplacements précis ? Je suppose qu'il faut insérer des champs, mais
lesquels et comment les adresser via VBA ?
Word + une base de données ça fait publipostage* !! Votre document
principal
contient des champs de fusion. La procédure de fusion* dans un document
de fusion vous évite en général tout le travail de OpenRecordset et tous
les Move et Fields pour accéder aux données : Word sait faire ça tout
seul
avec quelques instructions simples en vba, requête SQL comprise.
Si vous tenez malgré tout à accéder vous-même à votre base, aux
enregistrements
soumis à requête, et à tous les champs de ces enregistrements, la
procédure
générale pour insérer du texte à une place précise d'un document est d'y
définir à cet endroit un signet* (objet Bookmark en vba Word).
Anacoluthe
« Avant d'employer un beau mot, faites-lui une place. »
- Joseph JOUBERT
Merci d'avoir pris le temps de répondre.
J'ai donc créé un signet dans la feuille, nommé Offre.
Ensuite, dans le code, j'ai fais :
Set ActiveDocument.Bookmark("Offre") = rstlct!Codeclient
Mais j'obteins "Propriété ou méthode non gérée par cet objet".
Donc, j'ai pas compris. Auriez-vous l'amabilité d'être plus précis ?
Merci encore,
JMD
"Anacoluthe" a écrit dans le message de
news:Bonjour !
'JMD' nous a écrit ...Dans une procédure VBA, je récupère les valeurs dans une table SQL
Server via les méthodes OpenDataBase et OpenRecordSet.
Comment ensuite renvoyer ces valeurs dans le document Word, à des
emplacements précis ? Je suppose qu'il faut insérer des champs, mais
lesquels et comment les adresser via VBA ?
Word + une base de données ça fait publipostage* !! Votre document
principal
contient des champs de fusion. La procédure de fusion* dans un document
de fusion vous évite en général tout le travail de OpenRecordset et tous
les Move et Fields pour accéder aux données : Word sait faire ça tout
seul
avec quelques instructions simples en vba, requête SQL comprise.
Si vous tenez malgré tout à accéder vous-même à votre base, aux
enregistrements
soumis à requête, et à tous les champs de ces enregistrements, la
procédure
générale pour insérer du texte à une place précise d'un document est d'y
définir à cet endroit un signet* (objet Bookmark en vba Word).
Anacoluthe
« Avant d'employer un beau mot, faites-lui une place. »
- Joseph JOUBERT
Bonjour.
"Utilisation incorrecte de la propriété".
Merci.
"Geo" a écrit dans le message de news:Set ActiveDocument.Bookmark("Offre") = rstlct!Codeclient
ActiveDocument.BookmarkS("Offre")
--
A+
Bonjour.
"Utilisation incorrecte de la propriété".
Merci.
"Geo" <Geo@sans.pub> a écrit dans le message de news:
mn.132c7d772580006e.41568@sans.pub...
Set ActiveDocument.Bookmark("Offre") = rstlct!Codeclient
ActiveDocument.BookmarkS("Offre")
--
A+
Bonjour.
"Utilisation incorrecte de la propriété".
Merci.
"Geo" a écrit dans le message de news:Set ActiveDocument.Bookmark("Offre") = rstlct!Codeclient
ActiveDocument.BookmarkS("Offre")
--
A+
Bonjour JMD,
ActiveDocument.Bookmarks("Offre").Range.Text = laVariable
Philippe
"JMD" a écrit dans le message de news:
en$Merci d'avoir pris le temps de répondre.
J'ai donc créé un signet dans la feuille, nommé Offre.
Ensuite, dans le code, j'ai fais :
Set ActiveDocument.Bookmark("Offre") = rstlct!Codeclient
Mais j'obteins "Propriété ou méthode non gérée par cet objet".
Donc, j'ai pas compris. Auriez-vous l'amabilité d'être plus précis ?
Merci encore,
JMD
"Anacoluthe" a écrit dans le message de
news:Bonjour !
'JMD' nous a écrit ...Dans une procédure VBA, je récupère les valeurs dans une table SQL
Server via les méthodes OpenDataBase et OpenRecordSet.
Comment ensuite renvoyer ces valeurs dans le document Word, à des
emplacements précis ? Je suppose qu'il faut insérer des champs, mais
lesquels et comment les adresser via VBA ?
Word + une base de données ça fait publipostage* !! Votre document
principal
contient des champs de fusion. La procédure de fusion* dans un document
de fusion vous évite en général tout le travail de OpenRecordset et tous
les Move et Fields pour accéder aux données : Word sait faire ça tout
seul
avec quelques instructions simples en vba, requête SQL comprise.
Si vous tenez malgré tout à accéder vous-même à votre base, aux
enregistrements
soumis à requête, et à tous les champs de ces enregistrements, la
procédure
générale pour insérer du texte à une place précise d'un document est d'y
définir à cet endroit un signet* (objet Bookmark en vba Word).
Anacoluthe
« Avant d'employer un beau mot, faites-lui une place. »
- Joseph JOUBERT
Bonjour JMD,
ActiveDocument.Bookmarks("Offre").Range.Text = laVariable
Philippe
"JMD" <pas@demail.fr> a écrit dans le message de news:
en$FOuJvHHA.1340@TK2MSFTNGP02.phx.gbl...
Merci d'avoir pris le temps de répondre.
J'ai donc créé un signet dans la feuille, nommé Offre.
Ensuite, dans le code, j'ai fais :
Set ActiveDocument.Bookmark("Offre") = rstlct!Codeclient
Mais j'obteins "Propriété ou méthode non gérée par cet objet".
Donc, j'ai pas compris. Auriez-vous l'amabilité d'être plus précis ?
Merci encore,
JMD
"Anacoluthe" <nopub_anacoluthe@Ouanadoo.fr> a écrit dans le message de
news: OkMkOfJvHHA.3796@TK2MSFTNGP02.phx.gbl...
Bonjour !
'JMD' nous a écrit ...
Dans une procédure VBA, je récupère les valeurs dans une table SQL
Server via les méthodes OpenDataBase et OpenRecordSet.
Comment ensuite renvoyer ces valeurs dans le document Word, à des
emplacements précis ? Je suppose qu'il faut insérer des champs, mais
lesquels et comment les adresser via VBA ?
Word + une base de données ça fait publipostage* !! Votre document
principal
contient des champs de fusion. La procédure de fusion* dans un document
de fusion vous évite en général tout le travail de OpenRecordset et tous
les Move et Fields pour accéder aux données : Word sait faire ça tout
seul
avec quelques instructions simples en vba, requête SQL comprise.
Si vous tenez malgré tout à accéder vous-même à votre base, aux
enregistrements
soumis à requête, et à tous les champs de ces enregistrements, la
procédure
générale pour insérer du texte à une place précise d'un document est d'y
définir à cet endroit un signet* (objet Bookmark en vba Word).
Anacoluthe
« Avant d'employer un beau mot, faites-lui une place. »
- Joseph JOUBERT
Bonjour JMD,
ActiveDocument.Bookmarks("Offre").Range.Text = laVariable
Philippe
"JMD" a écrit dans le message de news:
en$Merci d'avoir pris le temps de répondre.
J'ai donc créé un signet dans la feuille, nommé Offre.
Ensuite, dans le code, j'ai fais :
Set ActiveDocument.Bookmark("Offre") = rstlct!Codeclient
Mais j'obteins "Propriété ou méthode non gérée par cet objet".
Donc, j'ai pas compris. Auriez-vous l'amabilité d'être plus précis ?
Merci encore,
JMD
"Anacoluthe" a écrit dans le message de
news:Bonjour !
'JMD' nous a écrit ...Dans une procédure VBA, je récupère les valeurs dans une table SQL
Server via les méthodes OpenDataBase et OpenRecordSet.
Comment ensuite renvoyer ces valeurs dans le document Word, à des
emplacements précis ? Je suppose qu'il faut insérer des champs, mais
lesquels et comment les adresser via VBA ?
Word + une base de données ça fait publipostage* !! Votre document
principal
contient des champs de fusion. La procédure de fusion* dans un document
de fusion vous évite en général tout le travail de OpenRecordset et tous
les Move et Fields pour accéder aux données : Word sait faire ça tout
seul
avec quelques instructions simples en vba, requête SQL comprise.
Si vous tenez malgré tout à accéder vous-même à votre base, aux
enregistrements
soumis à requête, et à tous les champs de ces enregistrements, la
procédure
générale pour insérer du texte à une place précise d'un document est d'y
définir à cet endroit un signet* (objet Bookmark en vba Word).
Anacoluthe
« Avant d'employer un beau mot, faites-lui une place. »
- Joseph JOUBERT
Merci Philippe.
ActiveDocument.Bookmarks("Offre").Range.Text = "TOTO"
fonctionne parfaitement.
Par contre, une fois que le code a écrit "TOTO" dans la page, à
l'emplacement du signet en question, si on supprime TOTO on supprime aussi
le signet et le code est mort, l'objet n'existe plus. Bigre....
A +
"Corona" a écrit dans le message de news:Bonjour JMD,
ActiveDocument.Bookmarks("Offre").Range.Text = laVariable
Philippe
"JMD" a écrit dans le message de news:
en$Merci d'avoir pris le temps de répondre.
J'ai donc créé un signet dans la feuille, nommé Offre.
Ensuite, dans le code, j'ai fais :
Set ActiveDocument.Bookmark("Offre") = rstlct!Codeclient
Mais j'obteins "Propriété ou méthode non gérée par cet objet".
Donc, j'ai pas compris. Auriez-vous l'amabilité d'être plus précis ?
Merci encore,
JMD
"Anacoluthe" a écrit dans le message de
news:Bonjour !
'JMD' nous a écrit ...Dans une procédure VBA, je récupère les valeurs dans une table SQL
Server via les méthodes OpenDataBase et OpenRecordSet.
Comment ensuite renvoyer ces valeurs dans le document Word, à des
emplacements précis ? Je suppose qu'il faut insérer des champs, mais
lesquels et comment les adresser via VBA ?
Word + une base de données ça fait publipostage* !! Votre document
principal
contient des champs de fusion. La procédure de fusion* dans un document
de fusion vous évite en général tout le travail de OpenRecordset et
tous
les Move et Fields pour accéder aux données : Word sait faire ça tout
seul
avec quelques instructions simples en vba, requête SQL comprise.
Si vous tenez malgré tout à accéder vous-même à votre base, aux
enregistrements
soumis à requête, et à tous les champs de ces enregistrements, la
procédure
générale pour insérer du texte à une place précise d'un document est
d'y
définir à cet endroit un signet* (objet Bookmark en vba Word).
Anacoluthe
« Avant d'employer un beau mot, faites-lui une place. »
- Joseph JOUBERT
Merci Philippe.
ActiveDocument.Bookmarks("Offre").Range.Text = "TOTO"
fonctionne parfaitement.
Par contre, une fois que le code a écrit "TOTO" dans la page, à
l'emplacement du signet en question, si on supprime TOTO on supprime aussi
le signet et le code est mort, l'objet n'existe plus. Bigre....
A +
"Corona" <noadress@be.tf> a écrit dans le message de news:
u8DLU4JvHHA.5028@TK2MSFTNGP02.phx.gbl...
Bonjour JMD,
ActiveDocument.Bookmarks("Offre").Range.Text = laVariable
Philippe
"JMD" <pas@demail.fr> a écrit dans le message de news:
en$FOuJvHHA.1340@TK2MSFTNGP02.phx.gbl...
Merci d'avoir pris le temps de répondre.
J'ai donc créé un signet dans la feuille, nommé Offre.
Ensuite, dans le code, j'ai fais :
Set ActiveDocument.Bookmark("Offre") = rstlct!Codeclient
Mais j'obteins "Propriété ou méthode non gérée par cet objet".
Donc, j'ai pas compris. Auriez-vous l'amabilité d'être plus précis ?
Merci encore,
JMD
"Anacoluthe" <nopub_anacoluthe@Ouanadoo.fr> a écrit dans le message de
news: OkMkOfJvHHA.3796@TK2MSFTNGP02.phx.gbl...
Bonjour !
'JMD' nous a écrit ...
Dans une procédure VBA, je récupère les valeurs dans une table SQL
Server via les méthodes OpenDataBase et OpenRecordSet.
Comment ensuite renvoyer ces valeurs dans le document Word, à des
emplacements précis ? Je suppose qu'il faut insérer des champs, mais
lesquels et comment les adresser via VBA ?
Word + une base de données ça fait publipostage* !! Votre document
principal
contient des champs de fusion. La procédure de fusion* dans un document
de fusion vous évite en général tout le travail de OpenRecordset et
tous
les Move et Fields pour accéder aux données : Word sait faire ça tout
seul
avec quelques instructions simples en vba, requête SQL comprise.
Si vous tenez malgré tout à accéder vous-même à votre base, aux
enregistrements
soumis à requête, et à tous les champs de ces enregistrements, la
procédure
générale pour insérer du texte à une place précise d'un document est
d'y
définir à cet endroit un signet* (objet Bookmark en vba Word).
Anacoluthe
« Avant d'employer un beau mot, faites-lui une place. »
- Joseph JOUBERT
Merci Philippe.
ActiveDocument.Bookmarks("Offre").Range.Text = "TOTO"
fonctionne parfaitement.
Par contre, une fois que le code a écrit "TOTO" dans la page, à
l'emplacement du signet en question, si on supprime TOTO on supprime aussi
le signet et le code est mort, l'objet n'existe plus. Bigre....
A +
"Corona" a écrit dans le message de news:Bonjour JMD,
ActiveDocument.Bookmarks("Offre").Range.Text = laVariable
Philippe
"JMD" a écrit dans le message de news:
en$Merci d'avoir pris le temps de répondre.
J'ai donc créé un signet dans la feuille, nommé Offre.
Ensuite, dans le code, j'ai fais :
Set ActiveDocument.Bookmark("Offre") = rstlct!Codeclient
Mais j'obteins "Propriété ou méthode non gérée par cet objet".
Donc, j'ai pas compris. Auriez-vous l'amabilité d'être plus précis ?
Merci encore,
JMD
"Anacoluthe" a écrit dans le message de
news:Bonjour !
'JMD' nous a écrit ...Dans une procédure VBA, je récupère les valeurs dans une table SQL
Server via les méthodes OpenDataBase et OpenRecordSet.
Comment ensuite renvoyer ces valeurs dans le document Word, à des
emplacements précis ? Je suppose qu'il faut insérer des champs, mais
lesquels et comment les adresser via VBA ?
Word + une base de données ça fait publipostage* !! Votre document
principal
contient des champs de fusion. La procédure de fusion* dans un document
de fusion vous évite en général tout le travail de OpenRecordset et
tous
les Move et Fields pour accéder aux données : Word sait faire ça tout
seul
avec quelques instructions simples en vba, requête SQL comprise.
Si vous tenez malgré tout à accéder vous-même à votre base, aux
enregistrements
soumis à requête, et à tous les champs de ces enregistrements, la
procédure
générale pour insérer du texte à une place précise d'un document est
d'y
définir à cet endroit un signet* (objet Bookmark en vba Word).
Anacoluthe
« Avant d'employer un beau mot, faites-lui une place. »
- Joseph JOUBERT
Bonjour,
Voici une routine écrite par Guy Moncomble qui résoud ce problème.
C'est cette méthode que j'utilise.
Philippe
Public Sub MajSignet(NomSignet As String, TexteSignet As String)
' © Guy Moncomble 2001
Dim Début As Long
Application.ScreenUpdating = False
With ActiveDocument
If .Bookmarks.Exists(NomSignet) Then
Début = .Bookmarks(NomSignet).Range.Start
.Bookmarks(NomSignet).Range.Text = TexteSignet
.Bookmarks.Add Name:=NomSignet, Range:=.Range(Début, Début +
Len(TexteSignet))
End If
End With
Application.ScreenUpdating = True
End Sub
"JMD" a écrit dans le message de news:Merci Philippe.
ActiveDocument.Bookmarks("Offre").Range.Text = "TOTO"
fonctionne parfaitement.
Par contre, une fois que le code a écrit "TOTO" dans la page, à
l'emplacement du signet en question, si on supprime TOTO on supprime
aussi le signet et le code est mort, l'objet n'existe plus. Bigre....
A +
"Corona" a écrit dans le message de news:Bonjour JMD,
ActiveDocument.Bookmarks("Offre").Range.Text = laVariable
Philippe
"JMD" a écrit dans le message de news:
en$Merci d'avoir pris le temps de répondre.
J'ai donc créé un signet dans la feuille, nommé Offre.
Ensuite, dans le code, j'ai fais :
Set ActiveDocument.Bookmark("Offre") = rstlct!Codeclient
Mais j'obteins "Propriété ou méthode non gérée par cet objet".
Donc, j'ai pas compris. Auriez-vous l'amabilité d'être plus précis ?
Merci encore,
JMD
"Anacoluthe" a écrit dans le message de
news:Bonjour !
'JMD' nous a écrit ...Dans une procédure VBA, je récupère les valeurs dans une table SQL
Server via les méthodes OpenDataBase et OpenRecordSet.
Comment ensuite renvoyer ces valeurs dans le document Word, à des
emplacements précis ? Je suppose qu'il faut insérer des champs, mais
lesquels et comment les adresser via VBA ?
Word + une base de données ça fait publipostage* !! Votre document
principal
contient des champs de fusion. La procédure de fusion* dans un
document
de fusion vous évite en général tout le travail de OpenRecordset et
tous
les Move et Fields pour accéder aux données : Word sait faire ça tout
seul
avec quelques instructions simples en vba, requête SQL comprise.
Si vous tenez malgré tout à accéder vous-même à votre base, aux
enregistrements
soumis à requête, et à tous les champs de ces enregistrements, la
procédure
générale pour insérer du texte à une place précise d'un document est
d'y
définir à cet endroit un signet* (objet Bookmark en vba Word).
Anacoluthe
« Avant d'employer un beau mot, faites-lui une place. »
- Joseph JOUBERT
Bonjour,
Voici une routine écrite par Guy Moncomble qui résoud ce problème.
C'est cette méthode que j'utilise.
Philippe
Public Sub MajSignet(NomSignet As String, TexteSignet As String)
' © Guy Moncomble 2001
Dim Début As Long
Application.ScreenUpdating = False
With ActiveDocument
If .Bookmarks.Exists(NomSignet) Then
Début = .Bookmarks(NomSignet).Range.Start
.Bookmarks(NomSignet).Range.Text = TexteSignet
.Bookmarks.Add Name:=NomSignet, Range:=.Range(Début, Début +
Len(TexteSignet))
End If
End With
Application.ScreenUpdating = True
End Sub
"JMD" <pas@demail.fr> a écrit dans le message de news:
uwlyaAKvHHA.4552@TK2MSFTNGP03.phx.gbl...
Merci Philippe.
ActiveDocument.Bookmarks("Offre").Range.Text = "TOTO"
fonctionne parfaitement.
Par contre, une fois que le code a écrit "TOTO" dans la page, à
l'emplacement du signet en question, si on supprime TOTO on supprime
aussi le signet et le code est mort, l'objet n'existe plus. Bigre....
A +
"Corona" <noadress@be.tf> a écrit dans le message de news:
u8DLU4JvHHA.5028@TK2MSFTNGP02.phx.gbl...
Bonjour JMD,
ActiveDocument.Bookmarks("Offre").Range.Text = laVariable
Philippe
"JMD" <pas@demail.fr> a écrit dans le message de news:
en$FOuJvHHA.1340@TK2MSFTNGP02.phx.gbl...
Merci d'avoir pris le temps de répondre.
J'ai donc créé un signet dans la feuille, nommé Offre.
Ensuite, dans le code, j'ai fais :
Set ActiveDocument.Bookmark("Offre") = rstlct!Codeclient
Mais j'obteins "Propriété ou méthode non gérée par cet objet".
Donc, j'ai pas compris. Auriez-vous l'amabilité d'être plus précis ?
Merci encore,
JMD
"Anacoluthe" <nopub_anacoluthe@Ouanadoo.fr> a écrit dans le message de
news: OkMkOfJvHHA.3796@TK2MSFTNGP02.phx.gbl...
Bonjour !
'JMD' nous a écrit ...
Dans une procédure VBA, je récupère les valeurs dans une table SQL
Server via les méthodes OpenDataBase et OpenRecordSet.
Comment ensuite renvoyer ces valeurs dans le document Word, à des
emplacements précis ? Je suppose qu'il faut insérer des champs, mais
lesquels et comment les adresser via VBA ?
Word + une base de données ça fait publipostage* !! Votre document
principal
contient des champs de fusion. La procédure de fusion* dans un
document
de fusion vous évite en général tout le travail de OpenRecordset et
tous
les Move et Fields pour accéder aux données : Word sait faire ça tout
seul
avec quelques instructions simples en vba, requête SQL comprise.
Si vous tenez malgré tout à accéder vous-même à votre base, aux
enregistrements
soumis à requête, et à tous les champs de ces enregistrements, la
procédure
générale pour insérer du texte à une place précise d'un document est
d'y
définir à cet endroit un signet* (objet Bookmark en vba Word).
Anacoluthe
« Avant d'employer un beau mot, faites-lui une place. »
- Joseph JOUBERT
Bonjour,
Voici une routine écrite par Guy Moncomble qui résoud ce problème.
C'est cette méthode que j'utilise.
Philippe
Public Sub MajSignet(NomSignet As String, TexteSignet As String)
' © Guy Moncomble 2001
Dim Début As Long
Application.ScreenUpdating = False
With ActiveDocument
If .Bookmarks.Exists(NomSignet) Then
Début = .Bookmarks(NomSignet).Range.Start
.Bookmarks(NomSignet).Range.Text = TexteSignet
.Bookmarks.Add Name:=NomSignet, Range:=.Range(Début, Début +
Len(TexteSignet))
End If
End With
Application.ScreenUpdating = True
End Sub
"JMD" a écrit dans le message de news:Merci Philippe.
ActiveDocument.Bookmarks("Offre").Range.Text = "TOTO"
fonctionne parfaitement.
Par contre, une fois que le code a écrit "TOTO" dans la page, à
l'emplacement du signet en question, si on supprime TOTO on supprime
aussi le signet et le code est mort, l'objet n'existe plus. Bigre....
A +
"Corona" a écrit dans le message de news:Bonjour JMD,
ActiveDocument.Bookmarks("Offre").Range.Text = laVariable
Philippe
"JMD" a écrit dans le message de news:
en$Merci d'avoir pris le temps de répondre.
J'ai donc créé un signet dans la feuille, nommé Offre.
Ensuite, dans le code, j'ai fais :
Set ActiveDocument.Bookmark("Offre") = rstlct!Codeclient
Mais j'obteins "Propriété ou méthode non gérée par cet objet".
Donc, j'ai pas compris. Auriez-vous l'amabilité d'être plus précis ?
Merci encore,
JMD
"Anacoluthe" a écrit dans le message de
news:Bonjour !
'JMD' nous a écrit ...Dans une procédure VBA, je récupère les valeurs dans une table SQL
Server via les méthodes OpenDataBase et OpenRecordSet.
Comment ensuite renvoyer ces valeurs dans le document Word, à des
emplacements précis ? Je suppose qu'il faut insérer des champs, mais
lesquels et comment les adresser via VBA ?
Word + une base de données ça fait publipostage* !! Votre document
principal
contient des champs de fusion. La procédure de fusion* dans un
document
de fusion vous évite en général tout le travail de OpenRecordset et
tous
les Move et Fields pour accéder aux données : Word sait faire ça tout
seul
avec quelques instructions simples en vba, requête SQL comprise.
Si vous tenez malgré tout à accéder vous-même à votre base, aux
enregistrements
soumis à requête, et à tous les champs de ces enregistrements, la
procédure
générale pour insérer du texte à une place précise d'un document est
d'y
définir à cet endroit un signet* (objet Bookmark en vba Word).
Anacoluthe
« Avant d'employer un beau mot, faites-lui une place. »
- Joseph JOUBERT
Merci.
Cette procédure évite au code de planter, mais n'interdit pas à
l'utlisateur de détruire le signet, si j'ai bien lu le code.
Je vais donc créer une page comme un modèle (.dot) qui contiendra les
signets, et à partir duquel modèle on fera des .doc, enregistrés sous
rst!NumeroOffre.doc. Pour chaque nouveau document, on repartira du .dot,
qui de fait contiendra toujours les signets.
Cela te semble correct ?
A +
"Corona" a écrit dans le message de news:Bonjour,
Voici une routine écrite par Guy Moncomble qui résoud ce problème.
C'est cette méthode que j'utilise.
Philippe
Public Sub MajSignet(NomSignet As String, TexteSignet As String)
' © Guy Moncomble 2001
Dim Début As Long
Application.ScreenUpdating = False
With ActiveDocument
If .Bookmarks.Exists(NomSignet) Then
Début = .Bookmarks(NomSignet).Range.Start
.Bookmarks(NomSignet).Range.Text = TexteSignet
.Bookmarks.Add Name:=NomSignet, Range:=.Range(Début, Début +
Len(TexteSignet))
End If
End With
Application.ScreenUpdating = True
End Sub
"JMD" a écrit dans le message de news:Merci Philippe.
ActiveDocument.Bookmarks("Offre").Range.Text = "TOTO"
fonctionne parfaitement.
Par contre, une fois que le code a écrit "TOTO" dans la page, à
l'emplacement du signet en question, si on supprime TOTO on supprime
aussi le signet et le code est mort, l'objet n'existe plus. Bigre....
A +
"Corona" a écrit dans le message de news:Bonjour JMD,
ActiveDocument.Bookmarks("Offre").Range.Text = laVariable
Philippe
"JMD" a écrit dans le message de news:
en$Merci d'avoir pris le temps de répondre.
J'ai donc créé un signet dans la feuille, nommé Offre.
Ensuite, dans le code, j'ai fais :
Set ActiveDocument.Bookmark("Offre") = rstlct!Codeclient
Mais j'obteins "Propriété ou méthode non gérée par cet objet".
Donc, j'ai pas compris. Auriez-vous l'amabilité d'être plus précis ?
Merci encore,
JMD
"Anacoluthe" a écrit dans le message de
news:Bonjour !
'JMD' nous a écrit ...Dans une procédure VBA, je récupère les valeurs dans une table SQL
Server via les méthodes OpenDataBase et OpenRecordSet.
Comment ensuite renvoyer ces valeurs dans le document Word, à des
emplacements précis ? Je suppose qu'il faut insérer des champs, mais
lesquels et comment les adresser via VBA ?
Word + une base de données ça fait publipostage* !! Votre document
principal
contient des champs de fusion. La procédure de fusion* dans un
document
de fusion vous évite en général tout le travail de OpenRecordset et
tous
les Move et Fields pour accéder aux données : Word sait faire ça tout
seul
avec quelques instructions simples en vba, requête SQL comprise.
Si vous tenez malgré tout à accéder vous-même à votre base, aux
enregistrements
soumis à requête, et à tous les champs de ces enregistrements, la
procédure
générale pour insérer du texte à une place précise d'un document est
d'y
définir à cet endroit un signet* (objet Bookmark en vba Word).
Anacoluthe
« Avant d'employer un beau mot, faites-lui une place. »
- Joseph JOUBERT
Merci.
Cette procédure évite au code de planter, mais n'interdit pas à
l'utlisateur de détruire le signet, si j'ai bien lu le code.
Je vais donc créer une page comme un modèle (.dot) qui contiendra les
signets, et à partir duquel modèle on fera des .doc, enregistrés sous
rst!NumeroOffre.doc. Pour chaque nouveau document, on repartira du .dot,
qui de fait contiendra toujours les signets.
Cela te semble correct ?
A +
"Corona" <noadress@be.tf> a écrit dans le message de news:
uW7GjGKvHHA.3444@TK2MSFTNGP04.phx.gbl...
Bonjour,
Voici une routine écrite par Guy Moncomble qui résoud ce problème.
C'est cette méthode que j'utilise.
Philippe
Public Sub MajSignet(NomSignet As String, TexteSignet As String)
' © Guy Moncomble 2001
Dim Début As Long
Application.ScreenUpdating = False
With ActiveDocument
If .Bookmarks.Exists(NomSignet) Then
Début = .Bookmarks(NomSignet).Range.Start
.Bookmarks(NomSignet).Range.Text = TexteSignet
.Bookmarks.Add Name:=NomSignet, Range:=.Range(Début, Début +
Len(TexteSignet))
End If
End With
Application.ScreenUpdating = True
End Sub
"JMD" <pas@demail.fr> a écrit dans le message de news:
uwlyaAKvHHA.4552@TK2MSFTNGP03.phx.gbl...
Merci Philippe.
ActiveDocument.Bookmarks("Offre").Range.Text = "TOTO"
fonctionne parfaitement.
Par contre, une fois que le code a écrit "TOTO" dans la page, à
l'emplacement du signet en question, si on supprime TOTO on supprime
aussi le signet et le code est mort, l'objet n'existe plus. Bigre....
A +
"Corona" <noadress@be.tf> a écrit dans le message de news:
u8DLU4JvHHA.5028@TK2MSFTNGP02.phx.gbl...
Bonjour JMD,
ActiveDocument.Bookmarks("Offre").Range.Text = laVariable
Philippe
"JMD" <pas@demail.fr> a écrit dans le message de news:
en$FOuJvHHA.1340@TK2MSFTNGP02.phx.gbl...
Merci d'avoir pris le temps de répondre.
J'ai donc créé un signet dans la feuille, nommé Offre.
Ensuite, dans le code, j'ai fais :
Set ActiveDocument.Bookmark("Offre") = rstlct!Codeclient
Mais j'obteins "Propriété ou méthode non gérée par cet objet".
Donc, j'ai pas compris. Auriez-vous l'amabilité d'être plus précis ?
Merci encore,
JMD
"Anacoluthe" <nopub_anacoluthe@Ouanadoo.fr> a écrit dans le message de
news: OkMkOfJvHHA.3796@TK2MSFTNGP02.phx.gbl...
Bonjour !
'JMD' nous a écrit ...
Dans une procédure VBA, je récupère les valeurs dans une table SQL
Server via les méthodes OpenDataBase et OpenRecordSet.
Comment ensuite renvoyer ces valeurs dans le document Word, à des
emplacements précis ? Je suppose qu'il faut insérer des champs, mais
lesquels et comment les adresser via VBA ?
Word + une base de données ça fait publipostage* !! Votre document
principal
contient des champs de fusion. La procédure de fusion* dans un
document
de fusion vous évite en général tout le travail de OpenRecordset et
tous
les Move et Fields pour accéder aux données : Word sait faire ça tout
seul
avec quelques instructions simples en vba, requête SQL comprise.
Si vous tenez malgré tout à accéder vous-même à votre base, aux
enregistrements
soumis à requête, et à tous les champs de ces enregistrements, la
procédure
générale pour insérer du texte à une place précise d'un document est
d'y
définir à cet endroit un signet* (objet Bookmark en vba Word).
Anacoluthe
« Avant d'employer un beau mot, faites-lui une place. »
- Joseph JOUBERT
Merci.
Cette procédure évite au code de planter, mais n'interdit pas à
l'utlisateur de détruire le signet, si j'ai bien lu le code.
Je vais donc créer une page comme un modèle (.dot) qui contiendra les
signets, et à partir duquel modèle on fera des .doc, enregistrés sous
rst!NumeroOffre.doc. Pour chaque nouveau document, on repartira du .dot,
qui de fait contiendra toujours les signets.
Cela te semble correct ?
A +
"Corona" a écrit dans le message de news:Bonjour,
Voici une routine écrite par Guy Moncomble qui résoud ce problème.
C'est cette méthode que j'utilise.
Philippe
Public Sub MajSignet(NomSignet As String, TexteSignet As String)
' © Guy Moncomble 2001
Dim Début As Long
Application.ScreenUpdating = False
With ActiveDocument
If .Bookmarks.Exists(NomSignet) Then
Début = .Bookmarks(NomSignet).Range.Start
.Bookmarks(NomSignet).Range.Text = TexteSignet
.Bookmarks.Add Name:=NomSignet, Range:=.Range(Début, Début +
Len(TexteSignet))
End If
End With
Application.ScreenUpdating = True
End Sub
"JMD" a écrit dans le message de news:Merci Philippe.
ActiveDocument.Bookmarks("Offre").Range.Text = "TOTO"
fonctionne parfaitement.
Par contre, une fois que le code a écrit "TOTO" dans la page, à
l'emplacement du signet en question, si on supprime TOTO on supprime
aussi le signet et le code est mort, l'objet n'existe plus. Bigre....
A +
"Corona" a écrit dans le message de news:Bonjour JMD,
ActiveDocument.Bookmarks("Offre").Range.Text = laVariable
Philippe
"JMD" a écrit dans le message de news:
en$Merci d'avoir pris le temps de répondre.
J'ai donc créé un signet dans la feuille, nommé Offre.
Ensuite, dans le code, j'ai fais :
Set ActiveDocument.Bookmark("Offre") = rstlct!Codeclient
Mais j'obteins "Propriété ou méthode non gérée par cet objet".
Donc, j'ai pas compris. Auriez-vous l'amabilité d'être plus précis ?
Merci encore,
JMD
"Anacoluthe" a écrit dans le message de
news:Bonjour !
'JMD' nous a écrit ...Dans une procédure VBA, je récupère les valeurs dans une table SQL
Server via les méthodes OpenDataBase et OpenRecordSet.
Comment ensuite renvoyer ces valeurs dans le document Word, à des
emplacements précis ? Je suppose qu'il faut insérer des champs, mais
lesquels et comment les adresser via VBA ?
Word + une base de données ça fait publipostage* !! Votre document
principal
contient des champs de fusion. La procédure de fusion* dans un
document
de fusion vous évite en général tout le travail de OpenRecordset et
tous
les Move et Fields pour accéder aux données : Word sait faire ça tout
seul
avec quelques instructions simples en vba, requête SQL comprise.
Si vous tenez malgré tout à accéder vous-même à votre base, aux
enregistrements
soumis à requête, et à tous les champs de ces enregistrements, la
procédure
générale pour insérer du texte à une place précise d'un document est
d'y
définir à cet endroit un signet* (objet Bookmark en vba Word).
Anacoluthe
« Avant d'employer un beau mot, faites-lui une place. »
- Joseph JOUBERT