Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Word > VBA Word
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 31/08/2011, 16h22   #1
Invité régulier
 
Femme
Inscription : juin 2011
Messages : 23
Détails du profil
Informations personnelles :
Sexe : Femme
Localisation : France

Informations professionnelles :
Secteur : Enseignement

Informations forums :
Inscription : juin 2011
Messages : 23
Points : 6
Points : 6
Par défaut Publipostage : problème de format de date

Bonjour,

Je cherche à automatiser un publipostage qui filtrerait les dates de fin d'études d'élèves.
Voici mon code :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
Private Sub CommandButton3_Click()
 
Dim appWord As Word.Application
Dim docWord As Word.Document
Dim appOffice As Office.OfficeDataSourceObject
Dim SQL As String
Dim fin As String
Dim chemin As String
Dim chemin2 As String
 
 
Application.ScreenUpdating = False
 
Set appWord = New Word.Application
appWord.Visible = True
 
 
chemin = "...\Pauline\Feuilles MMT\FB_matin"
chemin2 = "...\Pauline\Feuilles MMT\FB_aprem"
 
fin = ActiveDocument.FormFields(2).result
 
If CheckBox1.Value = True And CheckBox2.Value = False _
Then Set docWord = appWord.Documents.Open(chemin & "\" & fin & ".doc")
 
If CheckBox2.Value = True And CheckBox1.Value = False _
Then Set docWord = appWord.Documents.Open(chemin2 & fin & ".doc")
 
SQL = "SELECT *" & _
"FROM [INTENSIF$]" & _
"WHERE [DateFin1]= '" & fin & "';"
 
    With docWord.MailMerge
    .MainDocumentType = wdFormLetters
    .OpenDataSource _
    Name:="...\Pauline\Feuilles MMT\AllStudents_essai.xls", _
    SQLStatement:=SQL
 
    .Execute Pause:=True
 
    End With
 
Set docWord = Nothing
 
Exit Sub
 
erreurFin:
 If Err.Number = 5631 Then
    MsgBox ("Il n'y a pas de données. Vérifiez votre saisie et recommencez.")
    docWord.Close
    Else: MsgBox ("Une erreur s'est produite. Veuillez fermer les fichiers et recommencer le publipostage")
 
    End If
End Sub

Le publipostage ne se réalise pas correctement. Je pense qu'il s'agit d'une question de format de date : lorsque je fais le publipostage manuellement, je ne peux filtrer mes dates que lorsque j'entre dans la zone de filtre une date type "yyyy-mm-dd".

Or, le format par défaut de la date dans mon code est "dd.mm.yyyy".

J'ai bien essayé de formater la date ainsi :

Code :
1
2
fin = ActiveDocument.FormFields(2).result
fin = Format (fin, "yyyy-mm-dd")
mais cela ne fonctionne pas non plus...


Je fais donc appel une fois de plus à vos lumières pour me tirer de ce mauvais pas.

Merci !

Pauline
paulinegue est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/09/2011, 16h44   #2
Responsable Word

 
Avatar de Heureux-oli
 
Homme Olivier Lebeau
Contrôleur d'industrie
Inscription : février 2006
Messages : 17 332
Détails du profil
Informations personnelles :
Nom : Homme Olivier Lebeau
Âge : 47
Localisation : Belgique

Informations professionnelles :
Activité : Contrôleur d'industrie
Secteur : Aéronautique - Marine - Espace - Armement

Informations forums :
Inscription : février 2006
Messages : 17 332
Points : 29 238
Points : 29 238
Salut,

C'est le champ de publipostage que tu dois formater.

{ MergeField "MonChamp" \@ "dd-mm-yyyy" }
__________________
J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
Débutez en VBA

Mes articles


Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !
Heureux-oli est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/09/2011, 10h02   #3
Invité régulier
 
Femme
Inscription : juin 2011
Messages : 23
Détails du profil
Informations personnelles :
Sexe : Femme
Localisation : France

Informations professionnelles :
Secteur : Enseignement

Informations forums :
Inscription : juin 2011
Messages : 23
Points : 6
Points : 6
Bonjour,

Merci de ta réponse Heureux-Oli ! Cette méthode fonctionne bien quand je fais le publipostage manuellement, mais lorsque j'essaie d'automatiser le processus cela ne marche pas : Word ne semble pas capable d'identifier la base de données à ouvrir. Il m'ouvre une boîte de dialogues pour me proposer différentes tables (aucune ne correspond à ma base de données).

Il y a peut-être une erreur dans mon code pour que je n'arrive pas à reproduire ce qui marche manuellement...

Une autre idée ?


Merci de ton aide en tout cas !

Pauline
paulinegue est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 21h45.


 
 
 
 
Partenaires

Hébergement Web