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 29/08/2007, 11h13   #1
Membre régulier
 
Inscription : janvier 2003
Messages : 376
Détails du profil
Informations forums :
Inscription : janvier 2003
Messages : 376
Points : 76
Points : 76
Par défaut Publipostage + fusion => pb date

Bonjour,


J'ai un souci qui m'emm... sérieusement car j'applique exactement les solutions proposées pour mon pb et rien y fait.

J'ai un tableau excel avec une colonne date ( la colonne est formatée en date jj.mm.aaaa).

Lorsque je fais le publipostage de mon tableau excel vers word, la date se transforme en date anglaise !!!! dans ma feuille word.
J'ai modifié le champs lié en faisant alt+F9 dans le format suivant :
Code :
{ MERGEFIELD "Date entrée" \@"dd MM yyyy"}
Rien y fait il me laisse la date en anglais.

Est ce que qq1 peut m'aider ?

Merci par avance

Nini
liop49 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/08/2007, 11h35   #2
Responsable Word

 
Avatar de Heureux-oli
 
Homme Olivier Lebeau
Contrôleur d'industrie
Inscription : février 2006
Messages : 17 354
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 354
Points : 29 270
Points : 29 270
Essaie de changer le type de serveur OLE en DDE.
__________________
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 déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/08/2007, 11h44   #3
Membre régulier
 
Inscription : janvier 2003
Messages : 376
Détails du profil
Informations forums :
Inscription : janvier 2003
Messages : 376
Points : 76
Points : 76
Oui je suis en train de le tester mais est ce qu'il y a une manip pour le faire sur l'existant ou dois je refaire le document de base ?
liop49 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/08/2007, 12h19   #4
Responsable Word

 
Avatar de Heureux-oli
 
Homme Olivier Lebeau
Contrôleur d'industrie
Inscription : février 2006
Messages : 17 354
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 354
Points : 29 270
Points : 29 270
Je ne parviens pas à reproduire ton problème, mais la date système est-elle de type anglais ou français.
__________________
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 déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/08/2007, 12h33   #5
Membre régulier
 
Inscription : janvier 2003
Messages : 376
Détails du profil
Informations forums :
Inscription : janvier 2003
Messages : 376
Points : 76
Points : 76
En fait, je pars d'un fichier excel (Famille.xls) qui permet à l'utilisateur de renseigner 4 choses :
Nom de la plante : via un menu déroulant
N° de lot : via une imputbox
Origine : via une imputbox
Date : via une imputbox

Les données renseignées dans les imputbox sont enregistrées dans un fichier excel (familletemporaire.xls) qui contient une seule ligne.

Le document word (CB_Famille.doc) de base utilise comme source de données familletemporaire.xls et à l'ouverture il lance la fusion ce qui me permet d'avoir uniquement la plante sélectionnée par l'utilisateur. Voici le code sous word :
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
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
 
Private Sub Document_Open()
 
' Macro enregistrée le 02/07/2007 par Nicolas BAUDRY
'
 
 
    With ActiveDocument.MailMerge
        .Destination = wdSendToNewDocument
        .SuppressBlankLines = True
        With .DataSource
            .FirstRecord = ActiveDocument.MailMerge.DataSource.ActiveRecord
            .LastRecord = ActiveDocument.MailMerge.DataSource.ActiveRecord
        End With
        .Execute Pause:=False
    End With
 
nomfich = Word.ActiveDocument.Name
 
'If nomfich = "CB.doc" Then
 
 
Msg = "Voulez-vous enregistrer le CB " & vbCrLf & "Cliquez sur 'Oui' pour enregistrer"    ' Définit le message.
        Style = vbYesNo + vbQuestion    ' Définit les boutons.
        Title = "Demande d'enregistrement"    ' Définit le titre.
 
        Response = MsgBox(Msg, Style, Title) ' Affiche le message.
 
        If Response = vbYes Then    ' L'utilisateur a choisi Oui.
 
With Selection.Find
    .Forward = True
    .ClearFormatting
    .MatchWholeWord = True
    .MatchCase = False
    .Wrap = wdFindContinue
    .Execute FindText:="Lot n° "
End With
    Selection.MoveRight Unit:=wdCharacter, Count:=1
    Selection.MoveRight Unit:=wdWord, Count:=1, Extend:=wdExtend
    Lot = Selection
 
With Selection.Find
    .Forward = True
    .ClearFormatting
    .MatchWholeWord = True
    .MatchCase = False
    .Wrap = wdFindContinue
    .Execute FindText:="ORIGINE"
End With
    Selection.MoveRight Unit:=wdCharacter, Count:=2
    Selection.MoveDown Unit:=wdParagraph, Count:=1, Extend:=wdExtend
    Selection.MoveLeft Unit:=wdCharacter, Count:=1, Extend:=wdExtend
    Nom = Selection
 
    Selection.MoveDown Unit:=wdLine, Count:=1
 
        Fichier = (Nom & Lot)
 
 
 
            'ChangeFileOpenDirectory "CB_internet"
            ChangeFileOpenDirectory "CB_En attente"
            ActiveDocument.SaveAs FileName:=Fichier, FileFormat:=wdFormatDocument, _
            LockComments:=False, Password:="", AddToRecentFiles:=True, WritePassword _
            :="", ReadOnlyRecommended:=False, EmbedTrueTypeFonts:=False, _
            SaveNativePictureFormat:=False, SaveFormsData:=False, SaveAsAOCELetter:= _
            False
 
            ChangeFileOpenDirectory "C:\CB_Internet_PC"
 
            ActiveDocument.SaveAs FileName:=Fichier, FileFormat:=wdFormatDocument, _
            LockComments:=False, Password:="", AddToRecentFiles:=True, WritePassword _
            :="", ReadOnlyRecommended:=False, EmbedTrueTypeFonts:=False, _
            SaveNativePictureFormat:=False, SaveFormsData:=False, SaveAsAOCELetter:= _
            False
 
            MsgBox ("Le fichier " & Fichier & ".doc a bien été enregistré dans les répertoires" & vbCrLf & "CB_internet" & vbCrLf & "C:\CB_Internet_PC")
 
            Else
 
 
        End If
'End If
 
 
Documents("CB_Famille.doc").Activate
Documents("CB_Famille.doc").Close False
 
End Sub
J'ai fait le chgt de serveur en passant sur DDE au lieu de OLE.
La date dans word s'affiche correctement maintenant.

Le pb s'est qu'à l'origine via le serveur OLE la source (familletemporaire.xls) ne restait pas ouverte alors que maintenant après la fusion je suis le fichier familletamporaire.xls

Je voudrais qu'il le ferme par défault une fois la fusion terminée et avoir le nouveau fichier issu du publipostage.

Suis je clair ?


Merci de ton aide si sais possible

Nini
liop49 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/08/2007, 14h12   #6
Responsable Word

 
Avatar de Heureux-oli
 
Homme Olivier Lebeau
Contrôleur d'industrie
Inscription : février 2006
Messages : 17 354
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 354
Points : 29 270
Points : 29 270
Je me suis un peu penché sur ton problème.
Perso, je passerais par un formulaire et avec un combo pour la liste des familles, des Texts box pour les autres informations.

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Private Sub UserForm_Initialize()
Dim xlApp As New Excel.Application
Dim xlSheet As Excel.Worksheet
Dim xlBook As Excel.Workbook
Dim myList(26) As String
Dim i As Integer
i = 1
Set xlBook = xlApp.Workbooks.Open("c:\temp\famille.xls")
 
Set xlSheet = xlBook.Worksheets("Sheet1")
For i = 1 To 26
myList(i) = xlSheet.Cells(i, 1).Value
ComboBox1.AddItem myList(i)
Debug.Print myList(i)
Next i
Set xlApp = Nothing
End Sub
Pour remplir le textbox

Pour remplir le document, au lieu de faire des finds, j'utiliserais des signets Bookmarks).
__________________
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 déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/08/2007, 10h03   #7
Membre régulier
 
Inscription : janvier 2003
Messages : 376
Détails du profil
Informations forums :
Inscription : janvier 2003
Messages : 376
Points : 76
Points : 76
Je te remercie pour le temps que tu as dû passer sur mon pauvre cas.

Je n'ai pas eu le temps hier après midi pour travailler dessus donc je vais m'y mettre et je te tiens au courant.

En ce qui concerne la conception en passant par un formulaire et puis par des combo, je veux bien te croire que ce soit mieux mais j'ai un noeud dans le cerveau et lorsque je pars sur une idée je veux aller où bout sans essayer une nouvelle manip si les résultats sont satisfaisants.
Bref, je suis un novice qui a du mal et je vais tester ton idée

Merci et je te tiens au courant.

Nini
liop49 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/08/2007, 10h07   #8
Responsable Word

 
Avatar de Heureux-oli
 
Homme Olivier Lebeau
Contrôleur d'industrie
Inscription : février 2006
Messages : 17 354
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 354
Points : 29 270
Points : 29 270
Pour revenir à ta première solution, il faut impérativement passer par le DDE et pas par l'OLE.

Outils Option Général Confirmer les conversion à l'ouverture.

Lors du publipostage, tu recevra une boîte de dialogue qui va te permettre de faire le choix entre OLE et DDE.
__________________
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 déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/08/2007, 10h12   #9
Membre régulier
 
Inscription : janvier 2003
Messages : 376
Détails du profil
Informations forums :
Inscription : janvier 2003
Messages : 376
Points : 76
Points : 76
Ouaip mais sur le post d'hier à 12h33 je t'explique que je l'ai fait et que çà fonctionne sauf que j'ai mon fichier excel (base de données) (familletemporaire.xls) qui reste ouvert alors qu'avec l'autre il ne reste pas ouvert et c'est ce que je veux.
liop49 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/08/2007, 10h33   #10
Responsable Word

 
Avatar de Heureux-oli
 
Homme Olivier Lebeau
Contrôleur d'industrie
Inscription : février 2006
Messages : 17 354
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 354
Points : 29 270
Points : 29 270
Je sais, c'est l'un ou l'autre.
Pour le format de date, je n'arrive pas à le modifier, en fait chez moi c'est en jj mm aaaa et j'essaie en vain de le mettre aaaa mm jj pour faire des essais.
__________________
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 déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/08/2007, 16h44   #11
Membre régulier
 
Inscription : janvier 2003
Messages : 376
Détails du profil
Informations forums :
Inscription : janvier 2003
Messages : 376
Points : 76
Points : 76
Bon par une opération du Saint Esprit et je ne sais pas pourquoi, j'ai réussi à mettre la date dans le bon sens !!!

En fait j'ai recréé mon document word à zéro - j'y ai mis une source de données via OLE et par magie maintenant ca fonctionne à merveille!!!!!

J'y comprends rien mais je suis heureux donc çà suffit à mon bonheur

PAr contre Heureux-oli, j'ai essayé de travaillé sur ton code et là je dois dire que je suis vraiment une merde car j'y ai rien compris
Désolé mais tu es trop fort pour moi et de ce fait il faudrait me macher un peu plus le travail pour que je puisse l'adapter. Mais comme çà fonctionne, je ne te le demand epas nécessairement.

Merci en tout cas car j'ai pu progresser sur la logique de mon code et sur mon prohain bidouillage de développement je pourrai m'inspirer de tes conseils.

A Bientôt et merci encore

Nini
liop49 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 22h56.


 
 
 
 
Partenaires

Hébergement Web