XL 2013 Automatisme pour remplir des TABs

Sigmund173

XLDnaute Occasionnel
Bonjour à tous,

j'aurais besoin d'un petit coup de pouce sur mon fichier excel.
Ce que je voudrais faire c'est la démarche suivante:
Je dois créer une liste d'exclusion afin de ne pas couper les accès à certains utilisateurs.
Pour ce faire j'ai une liste de dossier partagé (G Drive) et une liste des personnes qui seront transféré dans une autre institution (Transfer list).

Maintenant à partir de ces deux listes je souhaite que les responsables des dossiers (Folder Owner) soit identifié et mis automatiquement dans le TAB Folder Owner.
Si le dossier n'est pas listé, je souhaite qu'il aille dans la bonne section, Ressource Humain dans le TAB HR, Finance dans Finance et tout le reste dans Other.
J'ai mis dans le fichier le résultat souhaité, comment faire pour que ce soit automatique.
D'avance je vous remercie de votre aide
Cordialement

Olivier.
 

Pièces jointes

  • Book1.xlsx
    14 KB · Affichages: 63

Sigmund173

XLDnaute Occasionnel
Je suppose que si je veux mettre plusieurs groupes dans HR car la nomenclature n'est pas bonne je peux faire ça aussi et ça marcherait ?

Code:
Case TDon(LD, 1) Like "*HR": TDon(LD, 9) = "HR"
Case TDon(LD, 1) Like "*PERSONNEL": TDon(LD, 9) = "HR"
Case TDon(LD, 1) Like "*ADMIN": TDon(LD, 9) = "HR"
 

Sigmund173

XLDnaute Occasionnel
J'ai juste un petit souci sur le TAB pdf, par moment il me le cadre business entre deux pages
Et pour le souci qu'on avait évoqué avec le nom de la page, en fait quand on génère un pdf il met le nom du TAB dans l'entête du milieu et donc si on génère une autre TAB bah il garde le nom précédent, donc faut effacé à la main le nom pour que si on génère un autre pdf la place soit libre
 

Dranreb

XLDnaute Barbatruc
Après le LOt.DataBodyRange.Value = TR vous pouvez essayez ces instructions :
VB:
   WshExclPDF.ResetAllPageBreaks
   If LR > 40 Then WshExclPDF.HPageBreaks.Add Before:=LOt.HeaderRowRange.Offset(LR + 1)
Rien compris à votre histoire d'entête du milieu. Le nom de la feuille source (c'est à dire la feuille active) est toujours mis comme entête du milieu de WshExclPDF
 

Sigmund173

XLDnaute Occasionnel
Rien compris à votre histoire d'entête du milieu. Le nom de la feuille source (c'est à dire la feuille active) est toujours mis comme entête du milieu de WshExclPDF

En fait on avait vu que lorsqu'on génère le pdf dans le TAB HR, c'est écrit HR en entête dans le fichier pdf
Ensuite quand je génère le pdf dans Finance, c'est écrit HR en entête dans le fichier pdf
Puis dans Other, c'est écrit HR en entête dans le fichier pdf
Une fois qu'on a généré le premier pdf, il met dans le TAB "pdf" le nom du TAB qu'on vient de faire
 

Dranreb

XLDnaute Barbatruc
Bonjour.
Oui j'avais oublié ce truc qui ne marchait pas comme il devrait.
Ça doit être un bogue dans la bibliothèque Excel et je ne sais quoi y faire à part des tentatives empiriques.
Mais pour l'instant, écrit comme ça ça a l'air de marcher :
VB:
'   Application.EnableEvents = False
'      Do: DoEvents
   Application.PrintCommunication = False
   With WshExclPDF.PageSetup
      .FitToPagesWide = 1
      .FitToPagesTall = False
      .LeftHeader = WshSumm.[U2].Value
      .RightHeader = WshSumm.[D2].Value & vbLf & WshSumm.[D3].Value & vbLf & WshSumm.[D4].Value
      .CenterHeader = WshSrc.Name
      End With
   Application.PrintCommunication = True
'            Loop Until WshExclPDF.PageSetup.CenterHeader = WshSrc.Name
'   Application.EnableEvents = True
J'ai laissé en commentaire des instructions que j'avais provisoirement mises durant mes essais.
 

Dranreb

XLDnaute Barbatruc
Mais je viens de voir que c'est le LeftHeader n'est pas plus changé…
Et aussi qu'on y met la valeur de la cellule U2 de Summary, mais elle est vide ! Serait-ce ça qui mettrait le bazar ?
Remarque: il y a une image par dessus dans la version que j'ai gardée.
Est-ce qu'on n'avait pas dit qu'on ne modifierait plus le LeftHeader dans la macro parce qu'il contiendrait une bonne fois pour toutes une image mise à partir d'un fichier ?
 

Sigmund173

XLDnaute Occasionnel
Tout à fait du coup j'avais viré le U2 et mis une image directement dans le TAB pdf comme l'image était fixe c'àtait très bien comme ça
En fait je ne comprends pas pourquoi il écrit le nom dans header dans le "template" TAB pdf quand on génère et si c'est normal qu'il écrit dedans, que si on clique à nouveau ça n'efface pas ou écrit par dessus
 

Dranreb

XLDnaute Barbatruc
Bon. J'ai repris le fichier que j'avais gardé, viré le .LeftHeader = …, mais, mis au début, le .CenterHeader = WshSrc.Name ne se faisait pas.
Mis en dernier il se fait. Allez savoir pourquoi …
Et le .RightHeader = …, est-il utile de le refaire à chaque fois ? Si la valeur de l'expression ne change jamais, on ne peut savoir s'il marche !
 

Sigmund173

XLDnaute Occasionnel
Bon. J'ai repris le fichier que j'avais gardé, viré le .LeftHeader = …, mais, mis au début, le .CenterHeader = WshSrc.Name ne se faisait pas.
Mis en dernier il se fait. Allez savoir pourquoi …
Et le .RightHeader = …, est-il utile de le refaire à chaque fois ? Si la valeur de l'expression ne change jamais, on ne peut savoir s'il marche !

Le RighHeader est tjs le même oui, l'idée était en faite de modifier le nom dans le summary et ça met à jour tout le document
Sinon pour chaque nouveau projet il faudra aussi mettre à jour le Summary et le pdf, ce qui n'est pas un souci non plus je vous l'accorde
Je voulais automatiser le plus possible
On rempli la page de garde et tout ce met à jour
 

Dranreb

XLDnaute Barbatruc
Peut être qu'il vaut mieux l'enlever et mette cette procédure dans WshSumm
VB:
Private Sub Worksheet_Deactivate()
   WshExclPDF.PageSetup.RightHeader = Me.[D2].Value & vbLf & Me.[D3].Value & vbLf & Me.[D4].Value
   End Sub
Mais pas sûr. Face à un bogue dans la programmation Microsoft, on est généralement démuni.
 

Sigmund173

XLDnaute Occasionnel
Une petite idée me vient comme maintenant on est plus dans le test mais qu'on l'utilse avec des vraies données, on pu voir qu'on avait 129 dossiers et que 47 étaient dans Other, 1 dans HR et 2 dans Finance, etc ...
Mais on peut voir que si on additionne le tout on n'a pas 129 au départ et 129 dispatché.
Est ce qu'il y aurait une possibilité de faire une TAB et de mettre tout ceux qu'on n'a pas touché, plus pour info et controle ?

POurquoi je dis, parce que j'ai passé du temps à chercher pourquoi on en avait aussi peu de dispatché comme discuté hier, d'ou cette idée
C'est juste une idée pour améliorer quelque chose qui est déjà exceptionnelle pour nous