Bonjour tous,
J'ai un problme avec la procdure ci-dessous.
Public Sub ImprimeNotification()
Dim qdf As dao.QueryDef
Dim rst As dao.Recordset
Dim oWrd As Object
Dim cTitre As String
Dim VarDataPath As String
Set qdf = CurrentDb.QueryDefs("Qry_ImpNotification")
Set rst = qdf.OpenRecordset
Set oWrd = CreateObject("word.application")
On Error GoTo err_QuitImprimenotification
'Appel de la fonction CreatRepertoire pour crer le sous-repertoire
"Transmis le ..."
CreatRepertoire
While Not rst.EOF
With oWrd
.Documents.Add Template:=GetDataPath & "notification.doc"
.ActiveDocument.Bookmarks("RL_Nom").Select
.Selection.TypeText Text:=UCase(rst!RL_Nom)
.ActiveDocument.Bookmarks("RL_ad1").Select
.Selection.TypeText Text:=UCase(rst!RL_ad1)
.ActiveDocument.Bookmarks("RL_ad2").Select
.Selection.TypeText Text:=IIf((rst!RL_ad2) <> "",
UCase(rst!RL_ad2), " ")
.ActiveDocument.Bookmarks("RL_cpville").Select
.Selection.TypeText Text:=UCase(rst!RL_cpville)
.ActiveDocument.Bookmarks("Elve").Select
.Selection.TypeText Text:=UCase(rst!Elve)
.ActiveDocument.Bookmarks("Dnaiss_eleve").Select
.Selection.TypeText Text:=rst!Dnaiss_eleve
' .Selection.TypeText Text:=FormatDateTime(rst!Dnaiss_eleve,
vbGeneralDate)
etc...
Que ce soit avec la dernire ligne (ici commente) ou l'avant-dernire, il y
a toujours une incompatibilit de type.
Le champ Dnaiss_eleve est bien sr au format date dans ma table d'origine.
Merci d'avance ceux et celles qui pourraient m'aider.
Bonne journe.
Bonjour tous,
J'ai un problme avec la procdure ci-dessous.
Public Sub ImprimeNotification()
Dim qdf As dao.QueryDef
Dim rst As dao.Recordset
Dim oWrd As Object
Dim cTitre As String
Dim VarDataPath As String
Set qdf = CurrentDb.QueryDefs("Qry_ImpNotification")
Set rst = qdf.OpenRecordset
Set oWrd = CreateObject("word.application")
On Error GoTo err_QuitImprimenotification
'Appel de la fonction CreatRepertoire pour crer le sous-repertoire
"Transmis le ..."
CreatRepertoire
While Not rst.EOF
With oWrd
.Documents.Add Template:=GetDataPath & "notification.doc"
.ActiveDocument.Bookmarks("RL_Nom").Select
.Selection.TypeText Text:=UCase(rst!RL_Nom)
.ActiveDocument.Bookmarks("RL_ad1").Select
.Selection.TypeText Text:=UCase(rst!RL_ad1)
.ActiveDocument.Bookmarks("RL_ad2").Select
.Selection.TypeText Text:=IIf((rst!RL_ad2) <> "",
UCase(rst!RL_ad2), " ")
.ActiveDocument.Bookmarks("RL_cpville").Select
.Selection.TypeText Text:=UCase(rst!RL_cpville)
.ActiveDocument.Bookmarks("Elve").Select
.Selection.TypeText Text:=UCase(rst!Elve)
.ActiveDocument.Bookmarks("Dnaiss_eleve").Select
.Selection.TypeText Text:=rst!Dnaiss_eleve
' .Selection.TypeText Text:=FormatDateTime(rst!Dnaiss_eleve,
vbGeneralDate)
etc...
Que ce soit avec la dernire ligne (ici commente) ou l'avant-dernire, il y
a toujours une incompatibilit de type.
Le champ Dnaiss_eleve est bien sr au format date dans ma table d'origine.
Merci d'avance ceux et celles qui pourraient m'aider.
Bonne journe.
Bonjour tous,
J'ai un problme avec la procdure ci-dessous.
Public Sub ImprimeNotification()
Dim qdf As dao.QueryDef
Dim rst As dao.Recordset
Dim oWrd As Object
Dim cTitre As String
Dim VarDataPath As String
Set qdf = CurrentDb.QueryDefs("Qry_ImpNotification")
Set rst = qdf.OpenRecordset
Set oWrd = CreateObject("word.application")
On Error GoTo err_QuitImprimenotification
'Appel de la fonction CreatRepertoire pour crer le sous-repertoire
"Transmis le ..."
CreatRepertoire
While Not rst.EOF
With oWrd
.Documents.Add Template:=GetDataPath & "notification.doc"
.ActiveDocument.Bookmarks("RL_Nom").Select
.Selection.TypeText Text:=UCase(rst!RL_Nom)
.ActiveDocument.Bookmarks("RL_ad1").Select
.Selection.TypeText Text:=UCase(rst!RL_ad1)
.ActiveDocument.Bookmarks("RL_ad2").Select
.Selection.TypeText Text:=IIf((rst!RL_ad2) <> "",
UCase(rst!RL_ad2), " ")
.ActiveDocument.Bookmarks("RL_cpville").Select
.Selection.TypeText Text:=UCase(rst!RL_cpville)
.ActiveDocument.Bookmarks("Elve").Select
.Selection.TypeText Text:=UCase(rst!Elve)
.ActiveDocument.Bookmarks("Dnaiss_eleve").Select
.Selection.TypeText Text:=rst!Dnaiss_eleve
' .Selection.TypeText Text:=FormatDateTime(rst!Dnaiss_eleve,
vbGeneralDate)
etc...
Que ce soit avec la dernire ligne (ici commente) ou l'avant-dernire, il y
a toujours une incompatibilit de type.
Le champ Dnaiss_eleve est bien sr au format date dans ma table d'origine.
Merci d'avance ceux et celles qui pourraient m'aider.
Bonne journe.
Bonjour,
Hummm, relisez votre code...
Tel qu'il est écrit, sans parler de l'erreur 13 qui est le sujet de votre
message, vous allez ouvrir autant de modèles Word que vous avez
d'enregistrement dans votre requête, donc, je ne pense pas que c'est ce que
vous souhaitez...
Sinon, pour repérer votre erreur, mettez un point d'arrêt en début de
procédure (F9) et exécutez pour nous dire sur quelle ligne cela plante car
dans un bloc With, c'est une erreur très fréquente quand on sollicite une
méthode ou que l'on définit une valeur à un objet qui ne peut pas la
comprendre ou la recevoir.
Enfin, une procédure générique pour solliciter les bookmarks du document
serait plus propre...
Sub DefinirSignet(ByVal NomSignet As String, ByVal ValeurSignet As String,
ByRef MonDoc As Word.Document, ByVal Majuscule As Boolean)
Dim oRng As Range
With MonDoc
Set oRng = .Bookmarks(NomSignet).Range
oRng.Text = IIf(Majuscule, UCase(ValeurSignet), ValeurSignet)
End With
Set oRng = Nothing
End Sub
que vous utilisez par exemple comme suit :
Sub RemplirDoc()
DefinirSignet "Signet1", "Une valeur quelconque", MonDoc, True
End Sub
--
Argy
http://argyronet.developpez.com/
Créez des programmes avec Microsoft Access 2007 (ISBN 2742982442)
VBA pour Office 2007 (ISBN 2742983910)
"Thierry" a écrit :
> Bonjour tous,
>
> J'ai un problme avec la procdure ci-dessous.
>
> Public Sub ImprimeNotification()
>
> Dim qdf As dao.QueryDef
> Dim rst As dao.Recordset
> Dim oWrd As Object
> Dim cTitre As String
> Dim VarDataPath As String
>
> Set qdf = CurrentDb.QueryDefs("Qry_ImpNotification")
>
> Set rst = qdf.OpenRecordset
>
> Set oWrd = CreateObject("word.application")
> On Error GoTo err_QuitImprimenotification
>
> 'Appel de la fonction CreatRepertoire pour crer le sous-repertoire
> "Transmis le ..."
> CreatRepertoire
>
> While Not rst.EOF
>
> With oWrd
>
> .Documents.Add Template:=GetDataPath & "notification.doc"
>
> .ActiveDocument.Bookmarks("RL_Nom").Select
> .Selection.TypeText Text:=UCase(rst!RL_Nom)
>
> .ActiveDocument.Bookmarks("RL_ad1").Select
> .Selection.TypeText Text:=UCase(rst!RL_ad1)
>
> .ActiveDocument.Bookmarks("RL_ad2").Select
> .Selection.TypeText Text:=IIf((rst!RL_ad2) <> "",
> UCase(rst!RL_ad2), " ")
>
> .ActiveDocument.Bookmarks("RL_cpville").Select
> .Selection.TypeText Text:=UCase(rst!RL_cpville)
>
> .ActiveDocument.Bookmarks("Elve").Select
> .Selection.TypeText Text:=UCase(rst!Elve)
>
> .ActiveDocument.Bookmarks("Dnaiss_eleve").Select
> .Selection.TypeText Text:=rst!Dnaiss_eleve
> ' .Selection.TypeText Text:=FormatDateTime(rst!Dnaiss_eleve,
> vbGeneralDate)
> etc...
>
> Que ce soit avec la dernire ligne (ici commente) ou l'avant-dernire, il y
> a toujours une incompatibilit de type.
> Le champ Dnaiss_eleve est bien sr au format date dans ma table d'origine.
>
> Merci d'avance ceux et celles qui pourraient m'aider.
> Bonne journe.
>
>
>
Bonjour,
Hummm, relisez votre code...
Tel qu'il est écrit, sans parler de l'erreur 13 qui est le sujet de votre
message, vous allez ouvrir autant de modèles Word que vous avez
d'enregistrement dans votre requête, donc, je ne pense pas que c'est ce que
vous souhaitez...
Sinon, pour repérer votre erreur, mettez un point d'arrêt en début de
procédure (F9) et exécutez pour nous dire sur quelle ligne cela plante car
dans un bloc With, c'est une erreur très fréquente quand on sollicite une
méthode ou que l'on définit une valeur à un objet qui ne peut pas la
comprendre ou la recevoir.
Enfin, une procédure générique pour solliciter les bookmarks du document
serait plus propre...
Sub DefinirSignet(ByVal NomSignet As String, ByVal ValeurSignet As String,
ByRef MonDoc As Word.Document, ByVal Majuscule As Boolean)
Dim oRng As Range
With MonDoc
Set oRng = .Bookmarks(NomSignet).Range
oRng.Text = IIf(Majuscule, UCase(ValeurSignet), ValeurSignet)
End With
Set oRng = Nothing
End Sub
que vous utilisez par exemple comme suit :
Sub RemplirDoc()
DefinirSignet "Signet1", "Une valeur quelconque", MonDoc, True
End Sub
--
Argy
http://argyronet.developpez.com/
Créez des programmes avec Microsoft Access 2007 (ISBN 2742982442)
VBA pour Office 2007 (ISBN 2742983910)
"Thierry" a écrit :
> Bonjour tous,
>
> J'ai un problme avec la procdure ci-dessous.
>
> Public Sub ImprimeNotification()
>
> Dim qdf As dao.QueryDef
> Dim rst As dao.Recordset
> Dim oWrd As Object
> Dim cTitre As String
> Dim VarDataPath As String
>
> Set qdf = CurrentDb.QueryDefs("Qry_ImpNotification")
>
> Set rst = qdf.OpenRecordset
>
> Set oWrd = CreateObject("word.application")
> On Error GoTo err_QuitImprimenotification
>
> 'Appel de la fonction CreatRepertoire pour crer le sous-repertoire
> "Transmis le ..."
> CreatRepertoire
>
> While Not rst.EOF
>
> With oWrd
>
> .Documents.Add Template:=GetDataPath & "notification.doc"
>
> .ActiveDocument.Bookmarks("RL_Nom").Select
> .Selection.TypeText Text:=UCase(rst!RL_Nom)
>
> .ActiveDocument.Bookmarks("RL_ad1").Select
> .Selection.TypeText Text:=UCase(rst!RL_ad1)
>
> .ActiveDocument.Bookmarks("RL_ad2").Select
> .Selection.TypeText Text:=IIf((rst!RL_ad2) <> "",
> UCase(rst!RL_ad2), " ")
>
> .ActiveDocument.Bookmarks("RL_cpville").Select
> .Selection.TypeText Text:=UCase(rst!RL_cpville)
>
> .ActiveDocument.Bookmarks("Elve").Select
> .Selection.TypeText Text:=UCase(rst!Elve)
>
> .ActiveDocument.Bookmarks("Dnaiss_eleve").Select
> .Selection.TypeText Text:=rst!Dnaiss_eleve
> ' .Selection.TypeText Text:=FormatDateTime(rst!Dnaiss_eleve,
> vbGeneralDate)
> etc...
>
> Que ce soit avec la dernire ligne (ici commente) ou l'avant-dernire, il y
> a toujours une incompatibilit de type.
> Le champ Dnaiss_eleve est bien sr au format date dans ma table d'origine.
>
> Merci d'avance ceux et celles qui pourraient m'aider.
> Bonne journe.
>
>
>
Bonjour,
Hummm, relisez votre code...
Tel qu'il est écrit, sans parler de l'erreur 13 qui est le sujet de votre
message, vous allez ouvrir autant de modèles Word que vous avez
d'enregistrement dans votre requête, donc, je ne pense pas que c'est ce que
vous souhaitez...
Sinon, pour repérer votre erreur, mettez un point d'arrêt en début de
procédure (F9) et exécutez pour nous dire sur quelle ligne cela plante car
dans un bloc With, c'est une erreur très fréquente quand on sollicite une
méthode ou que l'on définit une valeur à un objet qui ne peut pas la
comprendre ou la recevoir.
Enfin, une procédure générique pour solliciter les bookmarks du document
serait plus propre...
Sub DefinirSignet(ByVal NomSignet As String, ByVal ValeurSignet As String,
ByRef MonDoc As Word.Document, ByVal Majuscule As Boolean)
Dim oRng As Range
With MonDoc
Set oRng = .Bookmarks(NomSignet).Range
oRng.Text = IIf(Majuscule, UCase(ValeurSignet), ValeurSignet)
End With
Set oRng = Nothing
End Sub
que vous utilisez par exemple comme suit :
Sub RemplirDoc()
DefinirSignet "Signet1", "Une valeur quelconque", MonDoc, True
End Sub
--
Argy
http://argyronet.developpez.com/
Créez des programmes avec Microsoft Access 2007 (ISBN 2742982442)
VBA pour Office 2007 (ISBN 2742983910)
"Thierry" a écrit :
> Bonjour tous,
>
> J'ai un problme avec la procdure ci-dessous.
>
> Public Sub ImprimeNotification()
>
> Dim qdf As dao.QueryDef
> Dim rst As dao.Recordset
> Dim oWrd As Object
> Dim cTitre As String
> Dim VarDataPath As String
>
> Set qdf = CurrentDb.QueryDefs("Qry_ImpNotification")
>
> Set rst = qdf.OpenRecordset
>
> Set oWrd = CreateObject("word.application")
> On Error GoTo err_QuitImprimenotification
>
> 'Appel de la fonction CreatRepertoire pour crer le sous-repertoire
> "Transmis le ..."
> CreatRepertoire
>
> While Not rst.EOF
>
> With oWrd
>
> .Documents.Add Template:=GetDataPath & "notification.doc"
>
> .ActiveDocument.Bookmarks("RL_Nom").Select
> .Selection.TypeText Text:=UCase(rst!RL_Nom)
>
> .ActiveDocument.Bookmarks("RL_ad1").Select
> .Selection.TypeText Text:=UCase(rst!RL_ad1)
>
> .ActiveDocument.Bookmarks("RL_ad2").Select
> .Selection.TypeText Text:=IIf((rst!RL_ad2) <> "",
> UCase(rst!RL_ad2), " ")
>
> .ActiveDocument.Bookmarks("RL_cpville").Select
> .Selection.TypeText Text:=UCase(rst!RL_cpville)
>
> .ActiveDocument.Bookmarks("Elve").Select
> .Selection.TypeText Text:=UCase(rst!Elve)
>
> .ActiveDocument.Bookmarks("Dnaiss_eleve").Select
> .Selection.TypeText Text:=rst!Dnaiss_eleve
> ' .Selection.TypeText Text:=FormatDateTime(rst!Dnaiss_eleve,
> vbGeneralDate)
> etc...
>
> Que ce soit avec la dernire ligne (ici commente) ou l'avant-dernire, il y
> a toujours une incompatibilit de type.
> Le champ Dnaiss_eleve est bien sr au format date dans ma table d'origine.
>
> Merci d'avance ceux et celles qui pourraient m'aider.
> Bonne journe.
>
>
>
Bonjour et merci d'avoir pris du temps pour me repondre.
Le code que j'ai mis dans mon message est un EXTRAIT d'une procedure que
j'utilise dans d'autres bases ACCESS et qui fonctionne parfaitement.
Je le mets en entier à la fin de ce message et je l'utilise souvent pour des
publipostages de + de 400 enregistrements et je n'ai pas l'impression
d'ouvrir 400 fois Word... Mais si vous pouvez jeter un oeil sur le code
complet, merci de me dire pourquoi Word s'ouvre x fois.
En ce qui concerne l'incompatibilite de type, c'est comme je l'ecris dans
mon premier message, la ligne :
.Selection.TypeText Text:=rst!Dnaiss_eleve
qui pose probleme.
Voici la procedure complete ( j'essaierai d'etudier la votre, de la
comprendre et de l'utiliser mais je ne suis pas informaticien de formation
...) :
Public Sub ImprimeNotification()
Dim qdf As dao.QueryDef
Dim rst As dao.Recordset
Dim oWrd As Object
Dim cTitre As String
Dim VarDataPath As String
Set qdf = CurrentDb.QueryDefs("Qry_ImpNotification")
Set rst = qdf.OpenRecordset
Set oWrd = CreateObject("word.application")
On Error GoTo err_QuitImprimenotification
'Appel de la fonction CreatRepertoire pour créer le sous-repertoire
"Transmis le ..."
CreatRepertoire
While Not rst.EOF
With oWrd
.Documents.Add Template:=GetDataPath & "notification.doc"
.ActiveDocument.Bookmarks("RL_Nom").Select
.Selection.TypeText Text:=UCase(rst!RL_Nom)
.ActiveDocument.Bookmarks("RL_ad1").Select
.Selection.TypeText Text:=UCase(rst!RL_ad1)
.ActiveDocument.Bookmarks("RL_ad2").Select
.Selection.TypeText Text:=IIf((rst!RL_ad2) <> "",
UCase(rst!RL_ad2), " ")
.ActiveDocument.Bookmarks("RL_cpville").Select
.Selection.TypeText Text:=UCase(rst!RL_cpville)
.ActiveDocument.Bookmarks("Elève").Select
.Selection.TypeText Text:=UCase(rst!Elève)
.ActiveDocument.Bookmarks("Dnaiss_eleve").Select
.Selection.TypeText Text:=rst!Dnaiss_eleve
.ActiveDocument.Bookmarks("origine_scolaire").Select
.Selection.TypeText.Date Text:=UCase(rst!Origine_scolaire)
.ActiveDocument.Bookmarks("decision").Select
.Selection.TypeText Text:=(rst!Decision)
.ActiveDocument.Bookmarks("dateretour").Select
.Selection.TypeText Text:=(rst!Dateretour)
.ActiveDocument.PrintOut Background:úlse
End With
rst.MoveNext
Wend
Call MajDateEnvoiNotification
ExitImprimenotification:
oWrd.Application.Quit savechanges:=wdDoNotSaveChanges
Set oWrd = Nothing
Set rst = Nothing
Set qdf = Nothing
Exit Sub
err_QuitImprimenotification:
MsgBox Err.Description
Resume ExitImprimenotification
End Sub
Merci d'avance
"Argyronet" a écrit :
> Bonjour,
>
> Hummm, relisez votre code...
> Tel qu'il est écrit, sans parler de l'erreur 13 qui est le sujet de votre
> message, vous allez ouvrir autant de modèles Word que vous avez
> d'enregistrement dans votre requête, donc, je ne pense pas que c'est ce que
> vous souhaitez...
>
> Sinon, pour repérer votre erreur, mettez un point d'arrêt en début de
> procédure (F9) et exécutez pour nous dire sur quelle ligne cela plante car
> dans un bloc With, c'est une erreur très fréquente quand on sollicite une
> méthode ou que l'on définit une valeur à un objet qui ne peut pas la
> comprendre ou la recevoir.
>
> Enfin, une procédure générique pour solliciter les bookmarks du document
> serait plus propre...
>
> Sub DefinirSignet(ByVal NomSignet As String, ByVal ValeurSignet As String,
> ByRef MonDoc As Word.Document, ByVal Majuscule As Boolean)
> Dim oRng As Range
> With MonDoc
> Set oRng = .Bookmarks(NomSignet).Range
> oRng.Text = IIf(Majuscule, UCase(ValeurSignet), ValeurSignet)
> End With
> Set oRng = Nothing
> End Sub
>
> que vous utilisez par exemple comme suit :
>
> Sub RemplirDoc()
> DefinirSignet "Signet1", "Une valeur quelconque", MonDoc, True
> End Sub
> --
> Argy
> http://argyronet.developpez.com/
> Créez des programmes avec Microsoft Access 2007 (ISBN 2742982442)
> VBA pour Office 2007 (ISBN 2742983910)
>
>
>
> "Thierry" a écrit :
>
> > Bonjour tous,
> >
> > J'ai un problme avec la procdure ci-dessous.
> >
> > Public Sub ImprimeNotification()
> >
> > Dim qdf As dao.QueryDef
> > Dim rst As dao.Recordset
> > Dim oWrd As Object
> > Dim cTitre As String
> > Dim VarDataPath As String
> >
> > Set qdf = CurrentDb.QueryDefs("Qry_ImpNotification")
> >
> > Set rst = qdf.OpenRecordset
> >
> > Set oWrd = CreateObject("word.application")
> > On Error GoTo err_QuitImprimenotification
> >
> > 'Appel de la fonction CreatRepertoire pour crer le sous-repertoire
> > "Transmis le ..."
> > CreatRepertoire
> >
> > While Not rst.EOF
> >
> > With oWrd
> >
> > .Documents.Add Template:=GetDataPath & "notification.doc"
> >
> > .ActiveDocument.Bookmarks("RL_Nom").Select
> > .Selection.TypeText Text:=UCase(rst!RL_Nom)
> >
> > .ActiveDocument.Bookmarks("RL_ad1").Select
> > .Selection.TypeText Text:=UCase(rst!RL_ad1)
> >
> > .ActiveDocument.Bookmarks("RL_ad2").Select
> > .Selection.TypeText Text:=IIf((rst!RL_ad2) <> "",
> > UCase(rst!RL_ad2), " ")
> >
> > .ActiveDocument.Bookmarks("RL_cpville").Select
> > .Selection.TypeText Text:=UCase(rst!RL_cpville)
> >
> > .ActiveDocument.Bookmarks("Elve").Select
> > .Selection.TypeText Text:=UCase(rst!Elve)
> >
> > .ActiveDocument.Bookmarks("Dnaiss_eleve").Select
> > .Selection.TypeText Text:=rst!Dnaiss_eleve
> > ' .Selection.TypeText Text:=FormatDateTime(rst!Dnaiss_eleve,
> > vbGeneralDate)
> > etc...
> >
> > Que ce soit avec la dernire ligne (ici commente) ou l'avant-dernire, il y
> > a toujours une incompatibilit de type.
> > Le champ Dnaiss_eleve est bien sr au format date dans ma table d'origine.
> >
> > Merci d'avance ceux et celles qui pourraient m'aider.
> > Bonne journe.
> >
> >
> >
Bonjour et merci d'avoir pris du temps pour me repondre.
Le code que j'ai mis dans mon message est un EXTRAIT d'une procedure que
j'utilise dans d'autres bases ACCESS et qui fonctionne parfaitement.
Je le mets en entier à la fin de ce message et je l'utilise souvent pour des
publipostages de + de 400 enregistrements et je n'ai pas l'impression
d'ouvrir 400 fois Word... Mais si vous pouvez jeter un oeil sur le code
complet, merci de me dire pourquoi Word s'ouvre x fois.
En ce qui concerne l'incompatibilite de type, c'est comme je l'ecris dans
mon premier message, la ligne :
.Selection.TypeText Text:=rst!Dnaiss_eleve
qui pose probleme.
Voici la procedure complete ( j'essaierai d'etudier la votre, de la
comprendre et de l'utiliser mais je ne suis pas informaticien de formation
...) :
Public Sub ImprimeNotification()
Dim qdf As dao.QueryDef
Dim rst As dao.Recordset
Dim oWrd As Object
Dim cTitre As String
Dim VarDataPath As String
Set qdf = CurrentDb.QueryDefs("Qry_ImpNotification")
Set rst = qdf.OpenRecordset
Set oWrd = CreateObject("word.application")
On Error GoTo err_QuitImprimenotification
'Appel de la fonction CreatRepertoire pour créer le sous-repertoire
"Transmis le ..."
CreatRepertoire
While Not rst.EOF
With oWrd
.Documents.Add Template:=GetDataPath & "notification.doc"
.ActiveDocument.Bookmarks("RL_Nom").Select
.Selection.TypeText Text:=UCase(rst!RL_Nom)
.ActiveDocument.Bookmarks("RL_ad1").Select
.Selection.TypeText Text:=UCase(rst!RL_ad1)
.ActiveDocument.Bookmarks("RL_ad2").Select
.Selection.TypeText Text:=IIf((rst!RL_ad2) <> "",
UCase(rst!RL_ad2), " ")
.ActiveDocument.Bookmarks("RL_cpville").Select
.Selection.TypeText Text:=UCase(rst!RL_cpville)
.ActiveDocument.Bookmarks("Elève").Select
.Selection.TypeText Text:=UCase(rst!Elève)
.ActiveDocument.Bookmarks("Dnaiss_eleve").Select
.Selection.TypeText Text:=rst!Dnaiss_eleve
.ActiveDocument.Bookmarks("origine_scolaire").Select
.Selection.TypeText.Date Text:=UCase(rst!Origine_scolaire)
.ActiveDocument.Bookmarks("decision").Select
.Selection.TypeText Text:=(rst!Decision)
.ActiveDocument.Bookmarks("dateretour").Select
.Selection.TypeText Text:=(rst!Dateretour)
.ActiveDocument.PrintOut Background:úlse
End With
rst.MoveNext
Wend
Call MajDateEnvoiNotification
ExitImprimenotification:
oWrd.Application.Quit savechanges:=wdDoNotSaveChanges
Set oWrd = Nothing
Set rst = Nothing
Set qdf = Nothing
Exit Sub
err_QuitImprimenotification:
MsgBox Err.Description
Resume ExitImprimenotification
End Sub
Merci d'avance
"Argyronet" a écrit :
> Bonjour,
>
> Hummm, relisez votre code...
> Tel qu'il est écrit, sans parler de l'erreur 13 qui est le sujet de votre
> message, vous allez ouvrir autant de modèles Word que vous avez
> d'enregistrement dans votre requête, donc, je ne pense pas que c'est ce que
> vous souhaitez...
>
> Sinon, pour repérer votre erreur, mettez un point d'arrêt en début de
> procédure (F9) et exécutez pour nous dire sur quelle ligne cela plante car
> dans un bloc With, c'est une erreur très fréquente quand on sollicite une
> méthode ou que l'on définit une valeur à un objet qui ne peut pas la
> comprendre ou la recevoir.
>
> Enfin, une procédure générique pour solliciter les bookmarks du document
> serait plus propre...
>
> Sub DefinirSignet(ByVal NomSignet As String, ByVal ValeurSignet As String,
> ByRef MonDoc As Word.Document, ByVal Majuscule As Boolean)
> Dim oRng As Range
> With MonDoc
> Set oRng = .Bookmarks(NomSignet).Range
> oRng.Text = IIf(Majuscule, UCase(ValeurSignet), ValeurSignet)
> End With
> Set oRng = Nothing
> End Sub
>
> que vous utilisez par exemple comme suit :
>
> Sub RemplirDoc()
> DefinirSignet "Signet1", "Une valeur quelconque", MonDoc, True
> End Sub
> --
> Argy
> http://argyronet.developpez.com/
> Créez des programmes avec Microsoft Access 2007 (ISBN 2742982442)
> VBA pour Office 2007 (ISBN 2742983910)
>
>
>
> "Thierry" a écrit :
>
> > Bonjour tous,
> >
> > J'ai un problme avec la procdure ci-dessous.
> >
> > Public Sub ImprimeNotification()
> >
> > Dim qdf As dao.QueryDef
> > Dim rst As dao.Recordset
> > Dim oWrd As Object
> > Dim cTitre As String
> > Dim VarDataPath As String
> >
> > Set qdf = CurrentDb.QueryDefs("Qry_ImpNotification")
> >
> > Set rst = qdf.OpenRecordset
> >
> > Set oWrd = CreateObject("word.application")
> > On Error GoTo err_QuitImprimenotification
> >
> > 'Appel de la fonction CreatRepertoire pour crer le sous-repertoire
> > "Transmis le ..."
> > CreatRepertoire
> >
> > While Not rst.EOF
> >
> > With oWrd
> >
> > .Documents.Add Template:=GetDataPath & "notification.doc"
> >
> > .ActiveDocument.Bookmarks("RL_Nom").Select
> > .Selection.TypeText Text:=UCase(rst!RL_Nom)
> >
> > .ActiveDocument.Bookmarks("RL_ad1").Select
> > .Selection.TypeText Text:=UCase(rst!RL_ad1)
> >
> > .ActiveDocument.Bookmarks("RL_ad2").Select
> > .Selection.TypeText Text:=IIf((rst!RL_ad2) <> "",
> > UCase(rst!RL_ad2), " ")
> >
> > .ActiveDocument.Bookmarks("RL_cpville").Select
> > .Selection.TypeText Text:=UCase(rst!RL_cpville)
> >
> > .ActiveDocument.Bookmarks("Elve").Select
> > .Selection.TypeText Text:=UCase(rst!Elve)
> >
> > .ActiveDocument.Bookmarks("Dnaiss_eleve").Select
> > .Selection.TypeText Text:=rst!Dnaiss_eleve
> > ' .Selection.TypeText Text:=FormatDateTime(rst!Dnaiss_eleve,
> > vbGeneralDate)
> > etc...
> >
> > Que ce soit avec la dernire ligne (ici commente) ou l'avant-dernire, il y
> > a toujours une incompatibilit de type.
> > Le champ Dnaiss_eleve est bien sr au format date dans ma table d'origine.
> >
> > Merci d'avance ceux et celles qui pourraient m'aider.
> > Bonne journe.
> >
> >
> >
Bonjour et merci d'avoir pris du temps pour me repondre.
Le code que j'ai mis dans mon message est un EXTRAIT d'une procedure que
j'utilise dans d'autres bases ACCESS et qui fonctionne parfaitement.
Je le mets en entier à la fin de ce message et je l'utilise souvent pour des
publipostages de + de 400 enregistrements et je n'ai pas l'impression
d'ouvrir 400 fois Word... Mais si vous pouvez jeter un oeil sur le code
complet, merci de me dire pourquoi Word s'ouvre x fois.
En ce qui concerne l'incompatibilite de type, c'est comme je l'ecris dans
mon premier message, la ligne :
.Selection.TypeText Text:=rst!Dnaiss_eleve
qui pose probleme.
Voici la procedure complete ( j'essaierai d'etudier la votre, de la
comprendre et de l'utiliser mais je ne suis pas informaticien de formation
...) :
Public Sub ImprimeNotification()
Dim qdf As dao.QueryDef
Dim rst As dao.Recordset
Dim oWrd As Object
Dim cTitre As String
Dim VarDataPath As String
Set qdf = CurrentDb.QueryDefs("Qry_ImpNotification")
Set rst = qdf.OpenRecordset
Set oWrd = CreateObject("word.application")
On Error GoTo err_QuitImprimenotification
'Appel de la fonction CreatRepertoire pour créer le sous-repertoire
"Transmis le ..."
CreatRepertoire
While Not rst.EOF
With oWrd
.Documents.Add Template:=GetDataPath & "notification.doc"
.ActiveDocument.Bookmarks("RL_Nom").Select
.Selection.TypeText Text:=UCase(rst!RL_Nom)
.ActiveDocument.Bookmarks("RL_ad1").Select
.Selection.TypeText Text:=UCase(rst!RL_ad1)
.ActiveDocument.Bookmarks("RL_ad2").Select
.Selection.TypeText Text:=IIf((rst!RL_ad2) <> "",
UCase(rst!RL_ad2), " ")
.ActiveDocument.Bookmarks("RL_cpville").Select
.Selection.TypeText Text:=UCase(rst!RL_cpville)
.ActiveDocument.Bookmarks("Elève").Select
.Selection.TypeText Text:=UCase(rst!Elève)
.ActiveDocument.Bookmarks("Dnaiss_eleve").Select
.Selection.TypeText Text:=rst!Dnaiss_eleve
.ActiveDocument.Bookmarks("origine_scolaire").Select
.Selection.TypeText.Date Text:=UCase(rst!Origine_scolaire)
.ActiveDocument.Bookmarks("decision").Select
.Selection.TypeText Text:=(rst!Decision)
.ActiveDocument.Bookmarks("dateretour").Select
.Selection.TypeText Text:=(rst!Dateretour)
.ActiveDocument.PrintOut Background:úlse
End With
rst.MoveNext
Wend
Call MajDateEnvoiNotification
ExitImprimenotification:
oWrd.Application.Quit savechanges:=wdDoNotSaveChanges
Set oWrd = Nothing
Set rst = Nothing
Set qdf = Nothing
Exit Sub
err_QuitImprimenotification:
MsgBox Err.Description
Resume ExitImprimenotification
End Sub
Merci d'avance
"Argyronet" a écrit :
> Bonjour,
>
> Hummm, relisez votre code...
> Tel qu'il est écrit, sans parler de l'erreur 13 qui est le sujet de votre
> message, vous allez ouvrir autant de modèles Word que vous avez
> d'enregistrement dans votre requête, donc, je ne pense pas que c'est ce que
> vous souhaitez...
>
> Sinon, pour repérer votre erreur, mettez un point d'arrêt en début de
> procédure (F9) et exécutez pour nous dire sur quelle ligne cela plante car
> dans un bloc With, c'est une erreur très fréquente quand on sollicite une
> méthode ou que l'on définit une valeur à un objet qui ne peut pas la
> comprendre ou la recevoir.
>
> Enfin, une procédure générique pour solliciter les bookmarks du document
> serait plus propre...
>
> Sub DefinirSignet(ByVal NomSignet As String, ByVal ValeurSignet As String,
> ByRef MonDoc As Word.Document, ByVal Majuscule As Boolean)
> Dim oRng As Range
> With MonDoc
> Set oRng = .Bookmarks(NomSignet).Range
> oRng.Text = IIf(Majuscule, UCase(ValeurSignet), ValeurSignet)
> End With
> Set oRng = Nothing
> End Sub
>
> que vous utilisez par exemple comme suit :
>
> Sub RemplirDoc()
> DefinirSignet "Signet1", "Une valeur quelconque", MonDoc, True
> End Sub
> --
> Argy
> http://argyronet.developpez.com/
> Créez des programmes avec Microsoft Access 2007 (ISBN 2742982442)
> VBA pour Office 2007 (ISBN 2742983910)
>
>
>
> "Thierry" a écrit :
>
> > Bonjour tous,
> >
> > J'ai un problme avec la procdure ci-dessous.
> >
> > Public Sub ImprimeNotification()
> >
> > Dim qdf As dao.QueryDef
> > Dim rst As dao.Recordset
> > Dim oWrd As Object
> > Dim cTitre As String
> > Dim VarDataPath As String
> >
> > Set qdf = CurrentDb.QueryDefs("Qry_ImpNotification")
> >
> > Set rst = qdf.OpenRecordset
> >
> > Set oWrd = CreateObject("word.application")
> > On Error GoTo err_QuitImprimenotification
> >
> > 'Appel de la fonction CreatRepertoire pour crer le sous-repertoire
> > "Transmis le ..."
> > CreatRepertoire
> >
> > While Not rst.EOF
> >
> > With oWrd
> >
> > .Documents.Add Template:=GetDataPath & "notification.doc"
> >
> > .ActiveDocument.Bookmarks("RL_Nom").Select
> > .Selection.TypeText Text:=UCase(rst!RL_Nom)
> >
> > .ActiveDocument.Bookmarks("RL_ad1").Select
> > .Selection.TypeText Text:=UCase(rst!RL_ad1)
> >
> > .ActiveDocument.Bookmarks("RL_ad2").Select
> > .Selection.TypeText Text:=IIf((rst!RL_ad2) <> "",
> > UCase(rst!RL_ad2), " ")
> >
> > .ActiveDocument.Bookmarks("RL_cpville").Select
> > .Selection.TypeText Text:=UCase(rst!RL_cpville)
> >
> > .ActiveDocument.Bookmarks("Elve").Select
> > .Selection.TypeText Text:=UCase(rst!Elve)
> >
> > .ActiveDocument.Bookmarks("Dnaiss_eleve").Select
> > .Selection.TypeText Text:=rst!Dnaiss_eleve
> > ' .Selection.TypeText Text:=FormatDateTime(rst!Dnaiss_eleve,
> > vbGeneralDate)
> > etc...
> >
> > Que ce soit avec la dernire ligne (ici commente) ou l'avant-dernire, il y
> > a toujours une incompatibilit de type.
> > Le champ Dnaiss_eleve est bien sr au format date dans ma table d'origine.
> >
> > Merci d'avance ceux et celles qui pourraient m'aider.
> > Bonne journe.
> >
> >
> >
Je viens de trouver, il faut mettre : Cstr(rst!Dnaiss_eleve)
Pour argyronet, je suis toujours interesse pour les explications sur
l'ouverture multiple de Word...
Merci encore et bonne fin de journee.
"Thierry" a écrit :
> Bonjour et merci d'avoir pris du temps pour me repondre.
> Le code que j'ai mis dans mon message est un EXTRAIT d'une procedure que
> j'utilise dans d'autres bases ACCESS et qui fonctionne parfaitement.
> Je le mets en entier à la fin de ce message et je l'utilise souvent pour des
> publipostages de + de 400 enregistrements et je n'ai pas l'impression
> d'ouvrir 400 fois Word... Mais si vous pouvez jeter un oeil sur le code
> complet, merci de me dire pourquoi Word s'ouvre x fois.
> En ce qui concerne l'incompatibilite de type, c'est comme je l'ecris dans
> mon premier message, la ligne :
> .Selection.TypeText Text:=rst!Dnaiss_eleve
>
> qui pose probleme.
>
> Voici la procedure complete ( j'essaierai d'etudier la votre, de la
> comprendre et de l'utiliser mais je ne suis pas informaticien de formation
> ...) :
>
> Public Sub ImprimeNotification()
>
> Dim qdf As dao.QueryDef
> Dim rst As dao.Recordset
> Dim oWrd As Object
> Dim cTitre As String
> Dim VarDataPath As String
>
> Set qdf = CurrentDb.QueryDefs("Qry_ImpNotification")
>
> Set rst = qdf.OpenRecordset
>
> Set oWrd = CreateObject("word.application")
> On Error GoTo err_QuitImprimenotification
>
> 'Appel de la fonction CreatRepertoire pour créer le sous-repertoire
> "Transmis le ..."
> CreatRepertoire
>
> While Not rst.EOF
>
> With oWrd
>
> .Documents.Add Template:=GetDataPath & "notification.doc"
>
> .ActiveDocument.Bookmarks("RL_Nom").Select
> .Selection.TypeText Text:=UCase(rst!RL_Nom)
>
> .ActiveDocument.Bookmarks("RL_ad1").Select
> .Selection.TypeText Text:=UCase(rst!RL_ad1)
>
> .ActiveDocument.Bookmarks("RL_ad2").Select
> .Selection.TypeText Text:=IIf((rst!RL_ad2) <> "",
> UCase(rst!RL_ad2), " ")
>
> .ActiveDocument.Bookmarks("RL_cpville").Select
> .Selection.TypeText Text:=UCase(rst!RL_cpville)
>
> .ActiveDocument.Bookmarks("Elève").Select
> .Selection.TypeText Text:=UCase(rst!Elève)
>
> .ActiveDocument.Bookmarks("Dnaiss_eleve").Select
> .Selection.TypeText Text:=rst!Dnaiss_eleve
>
> .ActiveDocument.Bookmarks("origine_scolaire").Select
> .Selection.TypeText.Date Text:=UCase(rst!Origine_scolaire)
>
> .ActiveDocument.Bookmarks("decision").Select
> .Selection.TypeText Text:=(rst!Decision)
>
> .ActiveDocument.Bookmarks("dateretour").Select
> .Selection.TypeText Text:=(rst!Dateretour)
> .ActiveDocument.PrintOut Background:úlse
>
> End With
>
> rst.MoveNext
> Wend
>
> Call MajDateEnvoiNotification
>
> ExitImprimenotification:
> oWrd.Application.Quit savechanges:=wdDoNotSaveChanges
> Set oWrd = Nothing
> Set rst = Nothing
> Set qdf = Nothing
> Exit Sub
>
> err_QuitImprimenotification:
> MsgBox Err.Description
> Resume ExitImprimenotification
>
> End Sub
>
> Merci d'avance
>
>
> "Argyronet" a écrit :
>
> > Bonjour,
> >
> > Hummm, relisez votre code...
> > Tel qu'il est écrit, sans parler de l'erreur 13 qui est le sujet de votre
> > message, vous allez ouvrir autant de modèles Word que vous avez
> > d'enregistrement dans votre requête, donc, je ne pense pas que c'est ce que
> > vous souhaitez...
> >
> > Sinon, pour repérer votre erreur, mettez un point d'arrêt en début de
> > procédure (F9) et exécutez pour nous dire sur quelle ligne cela plante car
> > dans un bloc With, c'est une erreur très fréquente quand on sollicite une
> > méthode ou que l'on définit une valeur à un objet qui ne peut pas la
> > comprendre ou la recevoir.
> >
> > Enfin, une procédure générique pour solliciter les bookmarks du document
> > serait plus propre...
> >
> > Sub DefinirSignet(ByVal NomSignet As String, ByVal ValeurSignet As String,
> > ByRef MonDoc As Word.Document, ByVal Majuscule As Boolean)
> > Dim oRng As Range
> > With MonDoc
> > Set oRng = .Bookmarks(NomSignet).Range
> > oRng.Text = IIf(Majuscule, UCase(ValeurSignet), ValeurSignet)
> > End With
> > Set oRng = Nothing
> > End Sub
> >
> > que vous utilisez par exemple comme suit :
> >
> > Sub RemplirDoc()
> > DefinirSignet "Signet1", "Une valeur quelconque", MonDoc, True
> > End Sub
> > --
> > Argy
> > http://argyronet.developpez.com/
> > Créez des programmes avec Microsoft Access 2007 (ISBN 2742982442)
> > VBA pour Office 2007 (ISBN 2742983910)
> >
> >
> >
> > "Thierry" a écrit :
> >
> > > Bonjour tous,
> > >
> > > J'ai un problme avec la procdure ci-dessous.
> > >
> > > Public Sub ImprimeNotification()
> > >
> > > Dim qdf As dao.QueryDef
> > > Dim rst As dao.Recordset
> > > Dim oWrd As Object
> > > Dim cTitre As String
> > > Dim VarDataPath As String
> > >
> > > Set qdf = CurrentDb.QueryDefs("Qry_ImpNotification")
> > >
> > > Set rst = qdf.OpenRecordset
> > >
> > > Set oWrd = CreateObject("word.application")
> > > On Error GoTo err_QuitImprimenotification
> > >
> > > 'Appel de la fonction CreatRepertoire pour crer le sous-repertoire
> > > "Transmis le ..."
> > > CreatRepertoire
> > >
> > > While Not rst.EOF
> > >
> > > With oWrd
> > >
> > > .Documents.Add Template:=GetDataPath & "notification.doc"
> > >
> > > .ActiveDocument.Bookmarks("RL_Nom").Select
> > > .Selection.TypeText Text:=UCase(rst!RL_Nom)
> > >
> > > .ActiveDocument.Bookmarks("RL_ad1").Select
> > > .Selection.TypeText Text:=UCase(rst!RL_ad1)
> > >
> > > .ActiveDocument.Bookmarks("RL_ad2").Select
> > > .Selection.TypeText Text:=IIf((rst!RL_ad2) <> "",
> > > UCase(rst!RL_ad2), " ")
> > >
> > > .ActiveDocument.Bookmarks("RL_cpville").Select
> > > .Selection.TypeText Text:=UCase(rst!RL_cpville)
> > >
> > > .ActiveDocument.Bookmarks("Elve").Select
> > > .Selection.TypeText Text:=UCase(rst!Elve)
> > >
> > > .ActiveDocument.Bookmarks("Dnaiss_eleve").Select
> > > .Selection.TypeText Text:=rst!Dnaiss_eleve
> > > ' .Selection.TypeText Text:=FormatDateTime(rst!Dnaiss_eleve,
> > > vbGeneralDate)
> > > etc...
> > >
> > > Que ce soit avec la dernire ligne (ici commente) ou l'avant-dernire, il y
> > > a toujours une incompatibilit de type.
> > > Le champ Dnaiss_eleve est bien sr au format date dans ma table d'origine.
> > >
> > > Merci d'avance ceux et celles qui pourraient m'aider.
> > > Bonne journe.
> > >
> > >
> > >
Je viens de trouver, il faut mettre : Cstr(rst!Dnaiss_eleve)
Pour argyronet, je suis toujours interesse pour les explications sur
l'ouverture multiple de Word...
Merci encore et bonne fin de journee.
"Thierry" a écrit :
> Bonjour et merci d'avoir pris du temps pour me repondre.
> Le code que j'ai mis dans mon message est un EXTRAIT d'une procedure que
> j'utilise dans d'autres bases ACCESS et qui fonctionne parfaitement.
> Je le mets en entier à la fin de ce message et je l'utilise souvent pour des
> publipostages de + de 400 enregistrements et je n'ai pas l'impression
> d'ouvrir 400 fois Word... Mais si vous pouvez jeter un oeil sur le code
> complet, merci de me dire pourquoi Word s'ouvre x fois.
> En ce qui concerne l'incompatibilite de type, c'est comme je l'ecris dans
> mon premier message, la ligne :
> .Selection.TypeText Text:=rst!Dnaiss_eleve
>
> qui pose probleme.
>
> Voici la procedure complete ( j'essaierai d'etudier la votre, de la
> comprendre et de l'utiliser mais je ne suis pas informaticien de formation
> ...) :
>
> Public Sub ImprimeNotification()
>
> Dim qdf As dao.QueryDef
> Dim rst As dao.Recordset
> Dim oWrd As Object
> Dim cTitre As String
> Dim VarDataPath As String
>
> Set qdf = CurrentDb.QueryDefs("Qry_ImpNotification")
>
> Set rst = qdf.OpenRecordset
>
> Set oWrd = CreateObject("word.application")
> On Error GoTo err_QuitImprimenotification
>
> 'Appel de la fonction CreatRepertoire pour créer le sous-repertoire
> "Transmis le ..."
> CreatRepertoire
>
> While Not rst.EOF
>
> With oWrd
>
> .Documents.Add Template:=GetDataPath & "notification.doc"
>
> .ActiveDocument.Bookmarks("RL_Nom").Select
> .Selection.TypeText Text:=UCase(rst!RL_Nom)
>
> .ActiveDocument.Bookmarks("RL_ad1").Select
> .Selection.TypeText Text:=UCase(rst!RL_ad1)
>
> .ActiveDocument.Bookmarks("RL_ad2").Select
> .Selection.TypeText Text:=IIf((rst!RL_ad2) <> "",
> UCase(rst!RL_ad2), " ")
>
> .ActiveDocument.Bookmarks("RL_cpville").Select
> .Selection.TypeText Text:=UCase(rst!RL_cpville)
>
> .ActiveDocument.Bookmarks("Elève").Select
> .Selection.TypeText Text:=UCase(rst!Elève)
>
> .ActiveDocument.Bookmarks("Dnaiss_eleve").Select
> .Selection.TypeText Text:=rst!Dnaiss_eleve
>
> .ActiveDocument.Bookmarks("origine_scolaire").Select
> .Selection.TypeText.Date Text:=UCase(rst!Origine_scolaire)
>
> .ActiveDocument.Bookmarks("decision").Select
> .Selection.TypeText Text:=(rst!Decision)
>
> .ActiveDocument.Bookmarks("dateretour").Select
> .Selection.TypeText Text:=(rst!Dateretour)
> .ActiveDocument.PrintOut Background:úlse
>
> End With
>
> rst.MoveNext
> Wend
>
> Call MajDateEnvoiNotification
>
> ExitImprimenotification:
> oWrd.Application.Quit savechanges:=wdDoNotSaveChanges
> Set oWrd = Nothing
> Set rst = Nothing
> Set qdf = Nothing
> Exit Sub
>
> err_QuitImprimenotification:
> MsgBox Err.Description
> Resume ExitImprimenotification
>
> End Sub
>
> Merci d'avance
>
>
> "Argyronet" a écrit :
>
> > Bonjour,
> >
> > Hummm, relisez votre code...
> > Tel qu'il est écrit, sans parler de l'erreur 13 qui est le sujet de votre
> > message, vous allez ouvrir autant de modèles Word que vous avez
> > d'enregistrement dans votre requête, donc, je ne pense pas que c'est ce que
> > vous souhaitez...
> >
> > Sinon, pour repérer votre erreur, mettez un point d'arrêt en début de
> > procédure (F9) et exécutez pour nous dire sur quelle ligne cela plante car
> > dans un bloc With, c'est une erreur très fréquente quand on sollicite une
> > méthode ou que l'on définit une valeur à un objet qui ne peut pas la
> > comprendre ou la recevoir.
> >
> > Enfin, une procédure générique pour solliciter les bookmarks du document
> > serait plus propre...
> >
> > Sub DefinirSignet(ByVal NomSignet As String, ByVal ValeurSignet As String,
> > ByRef MonDoc As Word.Document, ByVal Majuscule As Boolean)
> > Dim oRng As Range
> > With MonDoc
> > Set oRng = .Bookmarks(NomSignet).Range
> > oRng.Text = IIf(Majuscule, UCase(ValeurSignet), ValeurSignet)
> > End With
> > Set oRng = Nothing
> > End Sub
> >
> > que vous utilisez par exemple comme suit :
> >
> > Sub RemplirDoc()
> > DefinirSignet "Signet1", "Une valeur quelconque", MonDoc, True
> > End Sub
> > --
> > Argy
> > http://argyronet.developpez.com/
> > Créez des programmes avec Microsoft Access 2007 (ISBN 2742982442)
> > VBA pour Office 2007 (ISBN 2742983910)
> >
> >
> >
> > "Thierry" a écrit :
> >
> > > Bonjour tous,
> > >
> > > J'ai un problme avec la procdure ci-dessous.
> > >
> > > Public Sub ImprimeNotification()
> > >
> > > Dim qdf As dao.QueryDef
> > > Dim rst As dao.Recordset
> > > Dim oWrd As Object
> > > Dim cTitre As String
> > > Dim VarDataPath As String
> > >
> > > Set qdf = CurrentDb.QueryDefs("Qry_ImpNotification")
> > >
> > > Set rst = qdf.OpenRecordset
> > >
> > > Set oWrd = CreateObject("word.application")
> > > On Error GoTo err_QuitImprimenotification
> > >
> > > 'Appel de la fonction CreatRepertoire pour crer le sous-repertoire
> > > "Transmis le ..."
> > > CreatRepertoire
> > >
> > > While Not rst.EOF
> > >
> > > With oWrd
> > >
> > > .Documents.Add Template:=GetDataPath & "notification.doc"
> > >
> > > .ActiveDocument.Bookmarks("RL_Nom").Select
> > > .Selection.TypeText Text:=UCase(rst!RL_Nom)
> > >
> > > .ActiveDocument.Bookmarks("RL_ad1").Select
> > > .Selection.TypeText Text:=UCase(rst!RL_ad1)
> > >
> > > .ActiveDocument.Bookmarks("RL_ad2").Select
> > > .Selection.TypeText Text:=IIf((rst!RL_ad2) <> "",
> > > UCase(rst!RL_ad2), " ")
> > >
> > > .ActiveDocument.Bookmarks("RL_cpville").Select
> > > .Selection.TypeText Text:=UCase(rst!RL_cpville)
> > >
> > > .ActiveDocument.Bookmarks("Elve").Select
> > > .Selection.TypeText Text:=UCase(rst!Elve)
> > >
> > > .ActiveDocument.Bookmarks("Dnaiss_eleve").Select
> > > .Selection.TypeText Text:=rst!Dnaiss_eleve
> > > ' .Selection.TypeText Text:=FormatDateTime(rst!Dnaiss_eleve,
> > > vbGeneralDate)
> > > etc...
> > >
> > > Que ce soit avec la dernire ligne (ici commente) ou l'avant-dernire, il y
> > > a toujours une incompatibilit de type.
> > > Le champ Dnaiss_eleve est bien sr au format date dans ma table d'origine.
> > >
> > > Merci d'avance ceux et celles qui pourraient m'aider.
> > > Bonne journe.
> > >
> > >
> > >
Je viens de trouver, il faut mettre : Cstr(rst!Dnaiss_eleve)
Pour argyronet, je suis toujours interesse pour les explications sur
l'ouverture multiple de Word...
Merci encore et bonne fin de journee.
"Thierry" a écrit :
> Bonjour et merci d'avoir pris du temps pour me repondre.
> Le code que j'ai mis dans mon message est un EXTRAIT d'une procedure que
> j'utilise dans d'autres bases ACCESS et qui fonctionne parfaitement.
> Je le mets en entier à la fin de ce message et je l'utilise souvent pour des
> publipostages de + de 400 enregistrements et je n'ai pas l'impression
> d'ouvrir 400 fois Word... Mais si vous pouvez jeter un oeil sur le code
> complet, merci de me dire pourquoi Word s'ouvre x fois.
> En ce qui concerne l'incompatibilite de type, c'est comme je l'ecris dans
> mon premier message, la ligne :
> .Selection.TypeText Text:=rst!Dnaiss_eleve
>
> qui pose probleme.
>
> Voici la procedure complete ( j'essaierai d'etudier la votre, de la
> comprendre et de l'utiliser mais je ne suis pas informaticien de formation
> ...) :
>
> Public Sub ImprimeNotification()
>
> Dim qdf As dao.QueryDef
> Dim rst As dao.Recordset
> Dim oWrd As Object
> Dim cTitre As String
> Dim VarDataPath As String
>
> Set qdf = CurrentDb.QueryDefs("Qry_ImpNotification")
>
> Set rst = qdf.OpenRecordset
>
> Set oWrd = CreateObject("word.application")
> On Error GoTo err_QuitImprimenotification
>
> 'Appel de la fonction CreatRepertoire pour créer le sous-repertoire
> "Transmis le ..."
> CreatRepertoire
>
> While Not rst.EOF
>
> With oWrd
>
> .Documents.Add Template:=GetDataPath & "notification.doc"
>
> .ActiveDocument.Bookmarks("RL_Nom").Select
> .Selection.TypeText Text:=UCase(rst!RL_Nom)
>
> .ActiveDocument.Bookmarks("RL_ad1").Select
> .Selection.TypeText Text:=UCase(rst!RL_ad1)
>
> .ActiveDocument.Bookmarks("RL_ad2").Select
> .Selection.TypeText Text:=IIf((rst!RL_ad2) <> "",
> UCase(rst!RL_ad2), " ")
>
> .ActiveDocument.Bookmarks("RL_cpville").Select
> .Selection.TypeText Text:=UCase(rst!RL_cpville)
>
> .ActiveDocument.Bookmarks("Elève").Select
> .Selection.TypeText Text:=UCase(rst!Elève)
>
> .ActiveDocument.Bookmarks("Dnaiss_eleve").Select
> .Selection.TypeText Text:=rst!Dnaiss_eleve
>
> .ActiveDocument.Bookmarks("origine_scolaire").Select
> .Selection.TypeText.Date Text:=UCase(rst!Origine_scolaire)
>
> .ActiveDocument.Bookmarks("decision").Select
> .Selection.TypeText Text:=(rst!Decision)
>
> .ActiveDocument.Bookmarks("dateretour").Select
> .Selection.TypeText Text:=(rst!Dateretour)
> .ActiveDocument.PrintOut Background:úlse
>
> End With
>
> rst.MoveNext
> Wend
>
> Call MajDateEnvoiNotification
>
> ExitImprimenotification:
> oWrd.Application.Quit savechanges:=wdDoNotSaveChanges
> Set oWrd = Nothing
> Set rst = Nothing
> Set qdf = Nothing
> Exit Sub
>
> err_QuitImprimenotification:
> MsgBox Err.Description
> Resume ExitImprimenotification
>
> End Sub
>
> Merci d'avance
>
>
> "Argyronet" a écrit :
>
> > Bonjour,
> >
> > Hummm, relisez votre code...
> > Tel qu'il est écrit, sans parler de l'erreur 13 qui est le sujet de votre
> > message, vous allez ouvrir autant de modèles Word que vous avez
> > d'enregistrement dans votre requête, donc, je ne pense pas que c'est ce que
> > vous souhaitez...
> >
> > Sinon, pour repérer votre erreur, mettez un point d'arrêt en début de
> > procédure (F9) et exécutez pour nous dire sur quelle ligne cela plante car
> > dans un bloc With, c'est une erreur très fréquente quand on sollicite une
> > méthode ou que l'on définit une valeur à un objet qui ne peut pas la
> > comprendre ou la recevoir.
> >
> > Enfin, une procédure générique pour solliciter les bookmarks du document
> > serait plus propre...
> >
> > Sub DefinirSignet(ByVal NomSignet As String, ByVal ValeurSignet As String,
> > ByRef MonDoc As Word.Document, ByVal Majuscule As Boolean)
> > Dim oRng As Range
> > With MonDoc
> > Set oRng = .Bookmarks(NomSignet).Range
> > oRng.Text = IIf(Majuscule, UCase(ValeurSignet), ValeurSignet)
> > End With
> > Set oRng = Nothing
> > End Sub
> >
> > que vous utilisez par exemple comme suit :
> >
> > Sub RemplirDoc()
> > DefinirSignet "Signet1", "Une valeur quelconque", MonDoc, True
> > End Sub
> > --
> > Argy
> > http://argyronet.developpez.com/
> > Créez des programmes avec Microsoft Access 2007 (ISBN 2742982442)
> > VBA pour Office 2007 (ISBN 2742983910)
> >
> >
> >
> > "Thierry" a écrit :
> >
> > > Bonjour tous,
> > >
> > > J'ai un problme avec la procdure ci-dessous.
> > >
> > > Public Sub ImprimeNotification()
> > >
> > > Dim qdf As dao.QueryDef
> > > Dim rst As dao.Recordset
> > > Dim oWrd As Object
> > > Dim cTitre As String
> > > Dim VarDataPath As String
> > >
> > > Set qdf = CurrentDb.QueryDefs("Qry_ImpNotification")
> > >
> > > Set rst = qdf.OpenRecordset
> > >
> > > Set oWrd = CreateObject("word.application")
> > > On Error GoTo err_QuitImprimenotification
> > >
> > > 'Appel de la fonction CreatRepertoire pour crer le sous-repertoire
> > > "Transmis le ..."
> > > CreatRepertoire
> > >
> > > While Not rst.EOF
> > >
> > > With oWrd
> > >
> > > .Documents.Add Template:=GetDataPath & "notification.doc"
> > >
> > > .ActiveDocument.Bookmarks("RL_Nom").Select
> > > .Selection.TypeText Text:=UCase(rst!RL_Nom)
> > >
> > > .ActiveDocument.Bookmarks("RL_ad1").Select
> > > .Selection.TypeText Text:=UCase(rst!RL_ad1)
> > >
> > > .ActiveDocument.Bookmarks("RL_ad2").Select
> > > .Selection.TypeText Text:=IIf((rst!RL_ad2) <> "",
> > > UCase(rst!RL_ad2), " ")
> > >
> > > .ActiveDocument.Bookmarks("RL_cpville").Select
> > > .Selection.TypeText Text:=UCase(rst!RL_cpville)
> > >
> > > .ActiveDocument.Bookmarks("Elve").Select
> > > .Selection.TypeText Text:=UCase(rst!Elve)
> > >
> > > .ActiveDocument.Bookmarks("Dnaiss_eleve").Select
> > > .Selection.TypeText Text:=rst!Dnaiss_eleve
> > > ' .Selection.TypeText Text:=FormatDateTime(rst!Dnaiss_eleve,
> > > vbGeneralDate)
> > > etc...
> > >
> > > Que ce soit avec la dernire ligne (ici commente) ou l'avant-dernire, il y
> > > a toujours une incompatibilit de type.
> > > Le champ Dnaiss_eleve est bien sr au format date dans ma table d'origine.
> > >
> > > Merci d'avance ceux et celles qui pourraient m'aider.
> > > Bonne journe.
> > >
> > >
> > >