Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1529 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Séquence de fusion et publipostage

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Séquence de fusion et publipostage

n°1281755
lden
Posté le 11-01-2006 à 23:07:06  profilanswer
 

Bonjour
Al l'aide. je deviens fou
Je vous explique mon probleme!  :fou:  
J'ai un document word qui est compose de deux pages tres importantes...
la premieres lors de la fusion est censee editer que des docs donc le champ type de la base de donnée excel est egale a A  
le seconde que des docs dont le chp type dans la base de données excel est T!
le probleme c'est que j'aimerais arriver dans un premier tepms a le faire avec des signets ou SKIPIF...enfin un truc qui marche !
ca serait par expl
 
etiquette 1: si "A ok" je fusionne tout ce qui correspond a la premiere page, la fusion n'est donc pas appliquée sur la deuxieme page censée rapatrier des champs du fichier excel.
etiquette 2: si "T ok" je fusionne tout ce qui correspond à la deuxieme page, apres l'etiquette 2 donc la page 1 n'est pas publipostée.
commun peut on dans un meme fichier sequencer l'enregistrement ou bien separer lors de la fusion.
 
 
need some help please!
thx
lden


Message édité par lden le 18-01-2006 à 08:10:36
mood
Publicité
Posté le 11-01-2006 à 23:07:06  profilanswer
 

n°1281834
Manu la Sc​ience
...la science ... pas toujours
Posté le 12-01-2006 à 09:04:45  profilanswer
 

Dis-donc, tu n'as que des problèmes  ;) ...
 
Ne serait-ce pas plus facile si il y avait 2 fichiers word... 1 pour la première page et 1 pour la seconde ?


---------------
Proverbe chinois: il vaut mieux apprendre à pêcher à un mendiant que de lui donner du poisson...
n°1281925
lden
Posté le 12-01-2006 à 11:26:19  profilanswer
 

si d'ailleur sc'est ce que j'ai fais mais mine de rien!!! ca doit pouvoir se faire?

n°1281933
Manu la Sc​ience
...la science ... pas toujours
Posté le 12-01-2006 à 11:29:06  profilanswer
 

Est-ce que ca marche avec deux fichiers différents ?


---------------
Proverbe chinois: il vaut mieux apprendre à pêcher à un mendiant que de lui donner du poisson...
n°1281949
lden
Posté le 12-01-2006 à 11:49:00  profilanswer
 

oui

n°1281957
Manu la Sc​ience
...la science ... pas toujours
Posté le 12-01-2006 à 11:51:49  profilanswer
 

Tu peux mettre le code pour l'adapter à un seul fichier ?


---------------
Proverbe chinois: il vaut mieux apprendre à pêcher à un mendiant que de lui donner du poisson...
n°1281968
lden
Posté le 12-01-2006 à 11:59:23  profilanswer
 

Oue mais ca va etre hardu car le code run un user form et ce la requete SQLstatement qui specifie quelle donnée importer!
Comment sur le fichier "double" je peux adapter une requete d'une macro ainsi que des conditions ecrite sur le fichier.
expl, la macro prend les donnee du mois date system et peux analyser le fichiers ^pour passer à la sequence suivante!!
à mon avis ce choo!
 
voila le code de la macro qui rapatrie la base avec la requete month!
 
Function fusion_master(month As String) As Boolean
'
' e_c_t Macro
' Macro enregistrée le 06/01/2006 par DENISE Louis
'
MyMonth_num = Array("1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12" )
MyMonth_letter = Array("Janvier", "Fevrier", "Mars", "Avril", "mai", "Juin", "juillet", "Aout", "Septembre", "Octobre", "Novenbre", "Decembre" )
 
Const separateur As String = "/"
Const appos As String = "'"
Dim i As Integer
Dim MyDate
MyDate = Date
 
If month = "mois_anterieur" Then
    i = 0
    iret2 = Split(MyDate, separateur, -1, vbTextCompare)
    mois = CInt(iret2(1))
    fusion_master = True
    Do
    i = i + 1
    Loop Until (CInt(MyMonth_num(i - 1)) = mois)
    st = MyMonth_letter(i - 1)
    X = "(Mois = " & appos & st & appos & " )"
 
ActiveDocument.MailMerge.OpenDataSource Name:= _
        "I:\comptabilité matiière\liste_MASTER.xls", ConfirmConversions:=False, _
        ReadOnly:=True, LinkToSource:=True, AddToRecentFiles:=False, _
        PasswordDocument:="", PasswordTemplate:="", WritePasswordDocument:="", _
        WritePasswordTemplate:="", Revert:=False, Format:=wdOpenFormatAuto, _
        Connection:= _
        "Provider=Microsoft.Jet.OLEDB.4.0;Password="""";User ID=Admin;Data Source=I:\comptabilité matiière\liste_MASTER.xls;Mode=Read;Extended Properties=""HDR=YES;IMEX=1;"";Jet OLEDB:System database="""";Jet OLEDB:Registry Path="""";Jet OLEDB:Database Password="""";Jet OLE" _
        , SQLStatement:="SELECT * FROM `'Fichier Master$'` WHERE ((Type = 'A') AND " & X & " )" & "", SQLStatement1:="", _
        SubType:=wdMergeSubTypeAccess
        With ActiveDocument.MailMerge
        .Destination = wdSendToNewDocument
        .SuppressBlankLines = True
        With .DataSource
            .FirstRecord = wdDefaultFirstRecord
            .LastRecord = wdDefaultLastRecord
        End With
        .Execute Pause:=False
    End With
ElseIf month = "" Then
    MsgBox ("veuillez sasir un mois" )
    fusion_master = False
Else
    X = "(Mois = " & appos & month & appos & " )"
    fusion_master = True
ActiveDocument.MailMerge.OpenDataSource Name:= _
        "I:\comptabilité matiière\liste_MASTER.xls", ConfirmConversions:=False, _
        ReadOnly:=True, LinkToSource:=True, AddToRecentFiles:=False, _
        PasswordDocument:="", PasswordTemplate:="", WritePasswordDocument:="", _
        WritePasswordTemplate:="", Revert:=False, Format:=wdOpenFormatAuto, _
        Connection:= _
        "Provider=Microsoft.Jet.OLEDB.4.0;Password="""";User ID=Admin;Data Source=I:\comptabilité matiière\liste_MASTER.xls;Mode=Read;Extended Properties=""HDR=YES;IMEX=1;"";Jet OLEDB:System database="""";Jet OLEDB:Registry Path="""";Jet OLEDB:Database Password="""";Jet OLE" _
        , SQLStatement:="SELECT * FROM `'Fichier Master$'` WHERE ((Type = 'A') AND " & X & " )" & "", SQLStatement1:="", _
        SubType:=wdMergeSubTypeAccess
        With ActiveDocument.MailMerge
        .Destination = wdSendToNewDocument
        .SuppressBlankLines = True
        With .DataSource
            .FirstRecord = wdDefaultFirstRecord
            .LastRecord = wdDefaultLastRecord
        End With
        .Execute Pause:=False
    End With
End If
End Function
 
voila!
 

n°1282082
Manu la Sc​ience
...la science ... pas toujours
Posté le 12-01-2006 à 13:59:14  profilanswer
 

Est-ce que tu peux écrire un exemple concret ?
 
Ta macro est bien sur le fichier Word, non ? Décris le cheminement à faire... J'ai pas tout compris (c'est l'heure de la sieste, donc je suis pas très réveillé...)


---------------
Proverbe chinois: il vaut mieux apprendre à pêcher à un mendiant que de lui donner du poisson...
n°1282111
lden
Posté le 12-01-2006 à 14:31:21  profilanswer
 

en fait pr cette macro manu c'est pas presse car mon boss est ok pr deux fichiers word separé.
je ferai un description globale qd j'aurais plus le tps.
Par contre sais tu comment fonctionne la fct RECHERCHEV.
Je m'explique; j'ai deux onglets .
le premier est visible; le type commence à remplir la colonne 1 avec des noms qu'une liste lui propose, c'est le fameux pb de tout à l'heure que vs avez resolu! une fois qu'il a rempli la case, j'aimerai que la case d'a coté(A2 s"il à rempli A1) dans le feuillet visible se remplisse à son tour par la valeur du champ directement à la droite des valeur statique du feuillet 2.
 
expl:
 
feuillet 1:
choix pr A1 RN
la fct RECHERCHEV importe ds A2 du feuillet visible la valeur directement à droite de la case de la premiere colonne du feuillet contenant les données statiques. Elle va chercher la valeur à droite de RN dans le feuillet invisible puis l'exporte dans feuillet 1!Ca lui importe Raffinerie de normandie par ex!
C'est bete que l'on ne ouisse pas faire un schema!!!!
 


Message édité par lden le 12-01-2006 à 14:32:42
n°1282128
lden
Posté le 12-01-2006 à 14:43:14  profilanswer
 

je donne la reponse sauf que la formule s'applique actuellement que pour une ligne j'aimarai qu'elle s'applique pr toute une colonne:
 
=RECHERCHEV(Etablissements!A1:A15;Etablissements!A1:B15;2;FAUX)
 
bon jcherche pr appliquer la formule à toute la colonne!

mood
Publicité
Posté le 12-01-2006 à 14:43:14  profilanswer
 

n°1282143
Manu la Sc​ience
...la science ... pas toujours
Posté le 12-01-2006 à 14:51:55  profilanswer
 

Pour que cela marche pour toutes les cellules, tu n'as pas d'autres choix que de copier la formule dans toutes les cellules...


---------------
Proverbe chinois: il vaut mieux apprendre à pêcher à un mendiant que de lui donner du poisson...
n°1282183
lden
Posté le 12-01-2006 à 15:17:51  profilanswer
 

te sur!!! qu'on peut pas à l'aide d'une macro appliquer la formule à toute la plage; ou bien apres avoir defini un nom sur la plage dont les cellules sont touchées par la formule

n°1282192
Manu la Sc​ience
...la science ... pas toujours
Posté le 12-01-2006 à 15:24:18  profilanswer
 

Là, mes compétences s'arrêtent et débute mon ignorance...


---------------
Proverbe chinois: il vaut mieux apprendre à pêcher à un mendiant que de lui donner du poisson...
n°1282853
lden
Posté le 13-01-2006 à 12:11:34  profilanswer
 

voila je suis en train de resoudre le pb j'ai cree un macro qui fait ca toute seule comme une grande::
 
le probleme ce la derniere ligne il me dit que l'indice a ppartient pas a la selection HELP please!!!!!
 
Sub formule()
'
' formule Macro
' Macro enregistrée le 12/01/2006 par Louis DENISE
'
 
'
Dim CFIN As String
Dim CINIT As String
Dim DINIT As String
Dim DFIN As String
Dim FIN As Integer
Dim plage As String
DINIT = "D2"
CINIT = "C2"
FIN = 2
Do
    CFIN = "C" & CStr(FIN)
    If CFIN = CINIT Then
    Range("C2" ).Select
    Else
    plage = CINIT & ":" & CFIN
    Range(plage).Select
    End If
    FIN = FIN + 1
Loop Until IsEmpty(Worksheets("Fichier Master" ).Range(CFIN).Value) = True
    DFIN = "D" & CStr(FIN)
    plage_D = DINIT & ":" & DFIN
    Range(plage_D).Select
    Worksheets("Fihier Master" ).Range(plage_D).FormulaArray = _
    "=RECHERCHEV(Etablissements!$A$2:$A$14;Etablissements!$A$2:$B$14;1;FAUX)"
End Sub
 
 
la derniere bug jpense que les dollars peuvent etre enlevé j'essaie!
 

n°1282862
lden
Posté le 13-01-2006 à 12:13:38  profilanswer
 

lol j'ai oublie un c a fichier!! comme quoi travailler en 1600*1200 ce pas top parfois!!!!

n°1282865
lden
Posté le 13-01-2006 à 12:16:37  profilanswer
 

ca marche pas mainteant il me dit impossibilite de definir la prop FormulaArray de la classe range????la ce du foutage de guelle!

n°1282881
Manu la Sc​ience
...la science ... pas toujours
Posté le 13-01-2006 à 12:42:27  profilanswer
 

Fichier Master
 
Et maintenant ?

 
J'ai rien dit


Message édité par Manu la Science le 13-01-2006 à 12:43:12

---------------
Proverbe chinois: il vaut mieux apprendre à pêcher à un mendiant que de lui donner du poisson...
n°1282885
Manu la Sc​ience
...la science ... pas toujours
Posté le 13-01-2006 à 12:46:19  profilanswer
 

C'est le range(CFIN) qui ne doit pas lui plaire, je pense...


---------------
Proverbe chinois: il vaut mieux apprendre à pêcher à un mendiant que de lui donner du poisson...
n°1282924
lden
Posté le 13-01-2006 à 13:43:18  profilanswer
 

sis ca ce nickel t'inkiet ce juste la derniere ligne qui va pas! et oue pas evident la!!


Message édité par lden le 13-01-2006 à 13:50:06

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Séquence de fusion et publipostage

 

Sujets relatifs
Taille de page apres publipostage à contraindre(Resolu)Probleme de publipostage(Resolu)
passer d'une séquence à l'autre chez flashpublipostage sous php
fusion de fichiersMarcro et Fusion d'un tableau Excel dans Word
Publipostage Word avec PHP/MySqlSéquence d'incrémentation dans SQL Server 2000
Propagation du contexte apres fusion. (automate LALR)Flash et HTML : 1 seule séquence chargée
Plus de sujets relatifs à : Séquence de fusion et publipostage


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR