publipostage depuis un tableau croisé dynamique à volume de données variabl

Le
kikizam Hors ligne
Bonjour Mesdemoiselles, Bonjour Mesdames, et bonjour Messieurs,
Aprés recherche sur GNT et Notre ami google, je me vois obligé d'exposer mon cas pour trouver une éventuelle réponse :

je désire faire un publipostage dont la source est un TCDynamique ; mon probléme est le suivant :

mon TCD se présente ainsi :
etiquette de ligne :
--NOM
--date
etiquette de colonne :
--Somme des données
valeur :
--nombre d'heure
--salaire brut

par ex :
Mr Hendrix .. 120h 2100€ (et ici les 2 lignes suivantes expliquent donc le details )
avril .100h ..1200€
mai 20h..900€
Mr Vaughan 45h..850€
mai ..45h..850€
Mr Hooker . 400h 5000€
fevrier .150h..2000€
mars 150h..2000€
avril100h1000€

Je voudrais adresser à chacun de mes Illustres salariés (ouaa le dream), un document word :
"bonjour mr, voici le recap de vos salaires semestriels .. "et en dessous le tableau correspondant à chacun
Le probleme est donc que le nombre de ligne est normalement traité comme une donnée dans le publipostage et dans mon cas, chaque ligne de l'ex ci dessus se voit créer une lettre.
Quelqu'un aurait une idée de soluc' please ?????

PS : mon logiciel de paye ne fais pas ce que je veux faire (j'ai ici simplifié l'exemple)
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
DanielCo
Le #23644341
Bonjour,
Le plus simple, vu la disposition de tes données est de faire une
lettre type sur une feuille Excel.
Qu'en penses-tu ?
Daniel


Bonjour Mesdemoiselles, Bonjour Mesdames, et bonjour Messieurs,
Aprés recherche sur GNT et Notre ami google, je me vois obligé d'exposer mon
cas pour trouver une éventuelle réponse :

je désire faire un publipostage dont la source est un TCDynamique ; mon
probléme est le suivant :

mon TCD se présente ainsi :
..etiquette de ligne :
-----NOM
-----date
..etiquette de colonne :
-----Somme des données
..valeur :
-----nombre d'heure
-----salaire brut

par ex :
Mr Hendrix ........ 120h ......... 2100¤ (et ici les 2 lignes suivantes
expliquent donc le details )
avril ...................100h ...........1200¤
mai .....................20h..............900¤
Mr Vaughan .........45h..............850¤
mai .......................45h..............850¤
Mr Hooker ............. 400h ............5000¤
fevrier ...................150h..............2000¤
mars .....................150h..............2000¤
avril........................100h...............1000¤

Je voudrais adresser à chacun de mes Illustres salariés (ouaa le dream), un
document word :
"bonjour mr, voici le recap de vos salaires semestriels .. "et en dessous le
tableau correspondant à chacun
Le probleme est donc que le nombre de ligne est normalement traité comme une
donnée dans le publipostage et dans mon cas, chaque ligne de l'ex ci dessus
se voit créer une lettre.
Quelqu'un aurait une idée de soluc' please ?????

PS : mon logiciel de paye ne fais pas ce que je veux faire (j'ai ici
simplifié l'exemple)
kikizam Hors ligne
Le #23644431
DanielCo a écrit le 10/08/2011 à 15h14 :
Bonjour,
Le plus simple, vu la disposition de tes données est de faire une
lettre type sur une feuille Excel.
Qu'en penses-tu ?
Daniel


Bonjour Mesdemoiselles, Bonjour Mesdames, et bonjour Messieurs,
Aprés recherche sur GNT et Notre ami google, je me vois obligé
d'exposer mon
cas pour trouver une éventuelle réponse :

je désire faire un publipostage dont la source est un TCDynamique ; mon
probléme est le suivant :

mon TCD se présente ainsi :
..etiquette de ligne :
-----NOM
-----date
..etiquette de colonne :
-----Somme des données
..valeur :
-----nombre d'heure
-----salaire brut

par ex :
Mr Hendrix ........ 120h ......... 2100¤ (et ici les 2 lignes
suivantes
expliquent donc le details )
avril ...................100h ...........1200¤
mai .....................20h..............900¤
Mr Vaughan .........45h..............850¤
mai .......................45h..............850¤
Mr Hooker ............. 400h ............5000¤
fevrier ...................150h..............2000¤
mars .....................150h..............2000¤
avril........................100h...............1000¤

Je voudrais adresser à chacun de mes Illustres salariés (ouaa le
dream), un
document word :
"bonjour mr, voici le recap de vos salaires semestriels .. "et en
dessous le
tableau correspondant à chacun
Le probleme est donc que le nombre de ligne est normalement traité
comme une
donnée dans le publipostage et dans mon cas, chaque ligne de l'ex ci
dessus
se voit créer une lettre.
Quelqu'un aurait une idée de soluc' please ?????

PS : mon logiciel de paye ne fais pas ce que je veux faire (j'ai ici
simplifié l'exemple)




Merci DanielCo pour ta réponse,

Le probléme est que j'ai une centaine de salariés environ et que je dois renouveller l'opération tous les mois, d'où ma recherche d'automation.
Or il me semble qu'en faisant ma lettre type dans excel, cela ne m'exonére pas de devoir créer pour chaque salarié une lettre une par une (copier coller de la partie qui les interesse ; ou selection dans le Tcd du salarié en question) ; or moi je cherche à créer toutes les lettres d'un coup avec un tcd qui chaque mois se remplis un peu plus.

ou peut être veux tu évoquer une solution que je ne comprends pas. Merci encore.
DanielCo
Le #23644731
Regarde le classeur joint. Naturellement, la mise en forme de la lettre
est à revoir :
http://www.cijoint.fr/cjlink.php?file=cj201108/cijxWDsb4v.xls
La macro Publipostage imprime les lettres et ne les enregistre pas,
c'est bien sûr modifiable.
La lettre modèle est la feuille "Lettre".
Daniel


Merci DanielCo pour ta réponse,

Le probléme est que j'ai une centaine de salariés environ et que je dois
renouveller l'opération tous les mois, d'où ma recherche d'automation.
Or il me semble qu'en faisant ma lettre type dans excel, cela ne m'exonére
pas de devoir créer pour chaque salarié une lettre une par une (copier
coller de la partie qui les interesse ; ou selection dans le Tcd du salarié
en question) ; or moi je cherche à créer toutes les lettres d'un coup avec
un tcd qui chaque mois se remplis un peu plus.

ou peut être veux tu évoquer une solution que je ne comprends pas. Merci
encore.
Jean-Claude
Le #23644831
Bonjour,

je tente une réponse avec un publipostage Excel/Word :

Si je reprends ton tableau (et que je ne trompe pas dans la mise en forme) :
Nom Date Nombre d'heures Salaire brut
Hendrix 120 2100
avril 100 1200
mai 20 900
Vaughan 45 850
mai 45 850
Hooker 400 5000
février 150 2000
mars 150 2000
avril 100 1000

Sous Word, utiliser les champs de fusion de la manière suivante :

Bonjour { MERGEFIELD "Nom" }, voici le récapitulatif de vos salaires :
{ SET NbreTotal { MERGEFIELD "Nombre_dheures" } } { SET Nbre 0 } { NEXT }
{ IF { Nbre } < { NbreTotal } { MERGEFIELD "Date" } "" }
{ IF { Nbre } < { NbreTotal } { SET Nbre { = Nbre + { MERGEFIELD
"Nombre_dheures" } } } "" }
{ NEXTIF { Nbre } < { NbreTotal } }

Répéter ces 3 dernières lignes autant de fois qu'il peut y avoir de mois
consécutifs, 6 fois si c'est semestriels.
NB : l'idée est d'utiliser le nombre d'heure pour savoir quand on peut ou
non passer à l'enregistrement suivant.
NB : peut-êre à modifier un peu si j'ai mal compris la disposition du
classeur Excel.
Jean-Claude
kikizam Hors ligne
Le #23645061
DanielCo a écrit le 10/08/2011 à 17h36 :
Regarde le classeur joint. Naturellement, la mise en forme de la lettre
est à revoir :
http://www.cijoint.fr/cjlink.php?file=cj201108/cijxWDsb4v.xls
La macro Publipostage imprime les lettres et ne les enregistre pas,
c'est bien sûr modifiable.
La lettre modèle est la feuille "Lettre".
Daniel


Merci DanielCo pour ta réponse,

Le probléme est que j'ai une centaine de salariés environ et que
je dois
renouveller l'opération tous les mois, d'où ma recherche
d'automation.
Or il me semble qu'en faisant ma lettre type dans excel, cela ne
m'exonére
pas de devoir créer pour chaque salarié une lettre une par une
(copier
coller de la partie qui les interesse ; ou selection dans le Tcd du
salarié
en question) ; or moi je cherche à créer toutes les lettres d'un
coup avec
un tcd qui chaque mois se remplis un peu plus.

ou peut être veux tu évoquer une solution que je ne comprends
pas. Merci
encore.




ouch DanielCO.... euh comment dire ...

j'aimerais tellement te dire que "je suis sur le derriere" en japonais (tient pourquoi pas) ...

Tu réponds parfaitement à mon probléme avec ta macro ; certe cela necessite un enregistrement l'un apres l'autre des pdf (je mettrai en liste d'attente pour n'obtenir qu'un seul fichier) mais miracle je pense ta solution faisable.
Je dois néanmoins la tester en profondeur pour voir si tout est ok. Je te tiens au courant de mes résultats.

Jean claude : Également ta solution m’intéresse beaucoup, de plus avec word ; trés astucieux cette idée de comparer la ligne d'h avec le montant total des h. Je vais tester tout cela et vous tiendrai informés dés que possible (risque d'être semaine prochaine (départ trés long WEnd demain...).

Merci les Balèzes, à trés bientot.
kikizam Hors ligne
Le #23646831
DanielCo a écrit le 10/08/2011 à 17h36 :
Regarde le classeur joint. Naturellement, la mise en forme de la lettre
est à revoir :
http://www.cijoint.fr/cjlink.php?file=cj201108/cijxWDsb4v.xls
La macro Publipostage imprime les lettres et ne les enregistre pas,
c'est bien sûr modifiable.
La lettre modèle est la feuille "Lettre".
Daniel


Merci DanielCo pour ta réponse,

Le probléme est que j'ai une centaine de salariés environ et que
je dois
renouveller l'opération tous les mois, d'où ma recherche
d'automation.
Or il me semble qu'en faisant ma lettre type dans excel, cela ne
m'exonére
pas de devoir créer pour chaque salarié une lettre une par une
(copier
coller de la partie qui les interesse ; ou selection dans le Tcd du
salarié
en question) ; or moi je cherche à créer toutes les lettres d'un
coup avec
un tcd qui chaque mois se remplis un peu plus.

ou peut être veux tu évoquer une solution que je ne comprends
pas. Merci
encore.




Bonjour DanielCo,
J'ai donc étudié ta macro qui se révèle quasiment parfaite.
Le seul soucis que j'ai est que salarié après salarié, les mois et salaires se placent de plus en plus bas .. je m'explique.

Pour le premier salarié, le premier mois s'inscrit bien en F7. le 2ieme en F8 .. nickel.
Pour le salarié suivant, son premier mois s'inscrit en F9 etc ... c'est balot !

Donc je tente de trouver la soluc , mais je ne suis pas un expert de VBA, donc si tu as une proposition, je suis super-preneur !!

Le "c.offset" serait-il en cause ?

Merci encore.
DanielCo
Le #23646911
Bonjour DanielCo,
J'ai donc étudié ta macro qui se révèle quasiment parfaite.
Le seul soucis que j'ai est que salarié après salarié, les mois et salaires
se placent de plus en plus bas .. je m'explique.

Pour le premier salarié, le premier mois s'inscrit bien en F7. le 2ieme en F8
.. nickel.
Pour le salarié suivant, son premier mois s'inscrit en F9 etc ... c'est
balot !

Donc je tente de trouver la soluc , mais je ne suis pas un expert de VBA,
donc si tu as une proposition, je suis super-preneur !!

Le "c.offset" serait-il en cause ?

Merci encore.



Bonjour,
voici :

Sub PubliPostage()
Dim rg As Range, Mois, Top As Boolean
Mois = Array("janvier", "février", "mars", "avril", "mai", _
"juin", "juillet", "août", "septembre", "octobre", _
"novembre", "décembre")
With Sheets("TCD").PivotTables(1)
Set rg = .DataBodyRange.Offset(, -1).Resize(, 1)
End With
For Each c In rg
If Not IsNumeric(Application.Match(c.Value, Mois, 0)) Then
If Top = False Then
Top = True
Else
ctr = 0
ActiveSheet.PrintPreview
ActiveWorkbook.Close False
End If
Sheets("Lettre").Copy
[G6] = c.Value
Columns(7).AutoFit
[L6] = c.Offset(, 1) & " h"
[M6] = c.Offset(, 2) & " euros"
Else
ctr = ctr + 1
[F6].Offset(ctr) = c.Value
[G6].Offset(ctr) = c.Offset(, 1) & " h"
[H6].Offset(ctr) = c.Offset(, 2) & " euros"
End If
Next c
End Sub
kikizam Hors ligne
Le #23647101
DanielCo a écrit le 11/08/2011 à 19h07 :
Bonjour DanielCo,
J'ai donc étudié ta macro qui se révèle quasiment
parfaite.
Le seul soucis que j'ai est que salarié après salarié,
les mois et salaires
se placent de plus en plus bas .. je m'explique.

Pour le premier salarié, le premier mois s'inscrit bien en F7. le 2ieme
en F8
.. nickel.
Pour le salarié suivant, son premier mois s'inscrit en F9 etc ...
c'est
balot !

Donc je tente de trouver la soluc , mais je ne suis pas un expert de VBA,
donc si tu as une proposition, je suis super-preneur !!

Le "c.offset" serait-il en cause ?

Merci encore.




Bonjour,
voici :

Sub PubliPostage()
Dim rg As Range, Mois, Top As Boolean
Mois = Array("janvier", "février", "mars",
"avril", "mai", _
"juin", "juillet", "août",
"septembre", "octobre", _
"novembre", "décembre")
With Sheets("TCD").PivotTables(1)
Set rg = .DataBodyRange.Offset(, -1).Resize(, 1)
End With
For Each c In rg
If Not IsNumeric(Application.Match(c.Value, Mois, 0)) Then
If Top = False Then
Top = True
Else
ctr = 0
ActiveSheet.PrintPreview
ActiveWorkbook.Close False
End If
Sheets("Lettre").Copy
[G6] = c.Value
Columns(7).AutoFit
[L6] = c.Offset(, 1) & " h"
[M6] = c.Offset(, 2) & " euros"
Else
ctr = ctr + 1
[F6].Offset(ctr) = c.Value
[G6].Offset(ctr) = c.Offset(, 1) & " h"
[H6].Offset(ctr) = c.Offset(, 2) & " euros"
End If
Next c
End Sub


DanielCo,
ta solution fonctionne avec le ctr remis à 0 (je l'avais tenté mais pas au bon endroit ...) ...
Poua c'est juste énorme tu m’enlèves non pas une épine du pied mais un véritable tronc d'arbre !!!

J'essaierai également la soluc que jean-claude a proposé, mais à priori la tienne est déjà trés trés bien !

Je te remercie infiniment, ton aide m'aura été très précieuse, sache que je suis très touché par le temps que tu m'a consacré.
DanielCo
Le #23647271
DanielCo,
ta solution fonctionne avec le ctr remis à 0 (je l'avais tenté mais pas au
bon endroit ...) ...
Poua c'est juste énorme tu m’enlèves non pas une épine du pied mais un
véritable tronc d'arbre !!!

J'essaierai également la soluc que jean-claude a proposé, mais à priori la
tienne est déjà trés trés bien !

Je te remercie infiniment, ton aide m'aura été très précieuse, sache que je
suis très touché par le temps que tu m'a consacré.



Si tu choisis cette solution, je pourrai t'aider à modifier la macro
pour la mise en forme.
Daniel
dianeabb Hors ligne
Le #25273992
Le mercredi 10 Août 2011 à 13:47 par kikizam :
Bonjour Mesdemoiselles, Bonjour Mesdames, et bonjour Messieurs,
Aprés recherche sur GNT et Notre ami google, je me vois obligé
d'exposer mon cas pour trouver une éventuelle réponse :

je désire faire un publipostage dont la source est un TCDynamique ; mon
probléme est le suivant :

mon TCD se présente ainsi :
...etiquette de ligne :
-----NOM
-----date
...etiquette de colonne :
-----Somme des données
...valeur :
-----nombre d'heure
-----salaire brut

par ex :
Mr Hendrix ........ 120h ......... 2100€ (et ici les 2 lignes
suivantes expliquent donc le details )
avril ...................100h ...........1200€
mai .....................20h..............900€
Mr Vaughan .........45h..............850€
mai .......................45h..............850€
Mr Hooker ............. 400h ............5000€
fevrier ...................150h..............2000€
mars .....................150h..............2000€
avril........................100h...............1000€

Je voudrais adresser à chacun de mes Illustres salariés (ouaa le
dream), un document word :
"bonjour mr, voici le recap de vos salaires semestriels .. "et en
dessous le tableau correspondant à chacun
Le probleme est donc que le nombre de ligne est normalement traité comme
une donnée dans le publipostage et dans mon cas, chaque ligne de l'ex ci
dessus se voit créer une lettre.
Quelqu'un aurait une idée de soluc' please ?????

PS : mon logiciel de paye ne fais pas ce que je veux faire (j'ai ici
simplifié l'exemple)


Bonjour,
Je suis également intéressée par cette solution mais le lien est en erreur.
Vous serait-il possible, kiki ou daniel, de m'en renvoyer un SVP?
Merci d'avance
Bonne journée
Publicité
Poster une réponse
Anonyme