Help! Extraire données en tableau + publipostage

Help! Extraire données en tableau + publipostage - VB/VBA/VBS - Programmation

Marsh Posté le 05-06-2012 à 20:42:15    

Bonsoir à tous,
 
Alors heuu... je ne sais pas programmer :whistle: , je vous remercie donc d'avance de l'aide que vous voudriez bien m'apporter :jap:
 
Mon problème :
Je travaille sur un planning Excel, qui a plutôt des allures de BDD (et je ne connais rien à Access :(  ).
Chaque personne peut avoir des horaires et des postes différents, de ce fait une même personne peut avoir plusieurs lignes la concernant:
Exemple simplifié:
 
NOM                         PRENOM                     POSTE                            [8h-9h]     [9h-10h]     [10h-11h]     [...]
DUPONT                     Bernard                     Manutention                          x                x                                          
ADROIT                      Nathalie                    Vente                                   x                 x                    x
DUPONT                     Bernard                    Vente                                                                            x              x
 
Je souhaiterais envoyer à chaque personne son planning "personnel" mais de façon à ce que soient visible les doubles postes : ici Bernard travaille en manut de 8h à 10h puis en vente de 10h à .... .
Pour celà je souhaitais utiliser un publipostage (il y'a quasi 250 employés... :sweat:  ) .
Problème : le publipostage devait être "conditionnel" à cause des lignes en doublon pour les doubles postes.
J'ai donc solutionné le problème en scindant ma BDD et en utilisant un n° de matricule matricule (associé à UN employé mais à PLUSIEURS postes) comme lien entre les deux (cf la méthode de ce tuto par exemple : http://faqword.com/index.php/word- [...] aison.html )
 
Cependant je me retrouve face à un second soucis : je voudrais mettre en forme le planning sous une forme verticale et impossible d'insérer les requêtes dans mon tableau pour avoir les petites croix (et c'est très fastidieux).
 
Exemple du résultat que je veux:
 
Employé : DUPONT Bernard
 
               vente                   manutention
8h-9h                                        x
9h-10                                        x
10h-11h     x  
 
 
Auriez vous une idée? Je sèche complètement...  je veux même tenter des langages inconnus si c'est bien expliqué :D
 
Merci :jap:


Message édité par tsouw le 06-06-2012 à 11:51:24

---------------
Bang bang, I hit the ground.
Reply

Marsh Posté le 05-06-2012 à 20:42:15   

Reply

Marsh Posté le 05-06-2012 à 21:54:28    

Pour info, c'est pas une BD puisque dans une BD, t'aurait une table "employés" et une table "Poste" et une table "Planning" et tu trouverais dans cette dernière table, un ID de l'employé et un ID du poste pour un créneau horaire.
 
La solution serait peut-être justement de transformer ce planning Excel en vrai BD...
 
Sinon, ben t'es bon pour faire une macro vba dans Excel, par ex, qui va analyser ton tableau et faire le traitement approprié (ex : collecter pour chaque employé non traité, les lignes de son planning puis envoyer le tout par mail ou autre moyen).


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 05-06-2012 à 22:01:09    

Bonsoir, merci du coup de main :jap:
Je vois ce que tu veux dire pour BD, mais bon c'était surtout pour expliquer que toutes mes données sont dans ce tableau :jap:
 
J'avais tenté access... avec les tables relations tout ça, mais j'ai trouvé que c'était trop complexe et j'apprenais lentement (et pas assez vite pour le temps imparti :( ) alors j'ai laissé tombé.
 
pour vba ok, mais comment mettre en forme le tableau comme je le souhaite (vertical) une fois le "tri" effectué?
 
:/
 
edit : et puis je suis une fille :D , tu as oublié un E :whistle:


Message édité par tsouw le 05-06-2012 à 22:02:32

---------------
Bang bang, I hit the ground.
Reply

Marsh Posté le 06-06-2012 à 07:15:54    

Bonjour,
 
Début de piste sans vba, tu filtre sur le nom que tu veux (DUPONT par exemple).
Une fois filtré, tu sélectionne de la cellule C1 (valeur = POSTE) jusqu'à le cellule qui représente la dernière colonne et dernière ligne (G4 dans l'exemple).
Ensuite, il suffit de faire un copier + collage spécial transposé et tu as la mise en forme demandée.
 
Si tu veux l'automatiser, il faut utiliser vba. L'enregistreur de macro te sera fort utile.


---------------
Bel ours Vave, je me dois de l’admettre. -Skyl"win"-  Mais toi tu es intelligent -Homerde- - Ce génie -SkylWINd- JDD S16M72 10:43:46 GMT-DTC +1
Reply

Marsh Posté le 06-06-2012 à 09:03:20    

Vaut mieux automatiser ça, elle a parler de 250 personne :/
 
Je doute qu'elle trouve une solution sans passer par de la programmation (dans le cas présente, du VBA)...
 
tsouw, pour la mise en forme du tableau "comme tu veux", tu vas faire une macro VBA qui va prendre les données de ton tableau pour les mettre en forme dans un autre tableau (ou un autre onglet du fichier Excel contenant le tableau initial).


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 06-06-2012 à 10:08:44    

Bonjour,
 
Merci pour vos réponses, et... Oui il faut vraiment que ça soit automatisé! je vais souffrir sinon :whistle:
 
rufo : ok pour VBA est ce que tu aurais des pistes de formules/fonction pour cela? Je ne connais pas du tout.. je vais commencer à me renseigner :/
De plus, est ce que c'est possible de "coupler" avec un publipostage? car je souhaite également leur envoyer du "texte".


---------------
Bang bang, I hit the ground.
Reply

Marsh Posté le 06-06-2012 à 10:52:39    

Tu peux préciser ce que tu entends par publipostage? Pour moi, ça m'évoque la fonction de Word qui prend en source de données, par ex des noms de personnes + adresses et remplit un fichier word Modèle autant de fois que de lignes dans le fichier source.


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 06-06-2012 à 11:06:11    

rufo a écrit :

Vaut mieux automatiser ça, elle a parler de 250 personne :/
 
Je doute qu'elle trouve une solution sans passer par de la programmation (dans le cas présente, du VBA)...
 
tsouw, pour la mise en forme du tableau "comme tu veux", tu vas faire une macro VBA qui va prendre les données de ton tableau pour les mettre en forme dans un autre tableau (ou un autre onglet du fichier Excel contenant le tableau initial).


Ouep, c'était pour ça ma dernière phrase.
Partir sur ma solution de copier/coller transposé avec l'aide de l'enregistreur de macro et ensuite modifier la macro pour le faire pour chaque matricule.
 
Ensuite, il est possible d'envoyer des mails par macro avec par exemple : CreateObject("CDO.Message" ).
 
Mais bon, tout ça en partant de 0 en vba, ça me semble compliqué :/


---------------
Bel ours Vave, je me dois de l’admettre. -Skyl"win"-  Mais toi tu es intelligent -Homerde- - Ce génie -SkylWINd- JDD S16M72 10:43:46 GMT-DTC +1
Reply

Marsh Posté le 06-06-2012 à 11:29:29    

rufo a écrit :

Tu peux préciser ce que tu entends par publipostage? Pour moi, ça m'évoque la fonction de Word qui prend en source de données, par ex des noms de personnes + adresses et remplit un fichier word Modèle autant de fois que de lignes dans le fichier source.


 

vave a écrit :


Ouep, c'était pour ça ma dernière phrase.
Partir sur ma solution de copier/coller transposé avec l'aide de l'enregistreur de macro et ensuite modifier la macro pour le faire pour chaque matricule.
 
Ensuite, il est possible d'envoyer des mails par macro avec par exemple : CreateObject("CDO.Message" ).
 
Mais bon, tout ça en partant de 0 en vba, ça me semble compliqué :/


 
 
C'est ça le publipostage grosso modo, mais c'est surtout pour ajouter du texte à destination des employés (bonjour veuillez trouver blabla, rappel de leurs postes...)
Si avec la macro je peux envoyer par mails les plannings + un mot "perso" ça me va aussi, mais en deux semaines j'ai le temps d'apprendre à faire ça? :/ :(
 
Vu l'orientation du topic peut être faudrait il que je le déplace dans la partie VBA du forum? :??:
 
:jap:


---------------
Bang bang, I hit the ground.
Reply

Marsh Posté le 06-06-2012 à 11:44:06    

C'est sûr que ton topic n'a pas grand chose à voir avec le SQL/BD...


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 06-06-2012 à 11:44:06   

Reply

Marsh Posté le 06-06-2012 à 14:18:26    

je l'ai déplacé :jap:
Les pros du VBA sont donc bienvenus :D


Message édité par tsouw le 06-06-2012 à 17:25:36

---------------
Bang bang, I hit the ground.
Reply

Marsh Posté le 07-06-2012 à 09:44:50    

:)


---------------
Bang bang, I hit the ground.
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed