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
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.
Oui bien sur je peux essayer, je suis d'accord avec vous ça ne sert à rien de surcharger si inutile
ça je sais ou le mettre vu que vous me l'avez dit, mais qu'est ce que je dois virer du coup ?
 

Sigmund173

XLDnaute Occasionnel
Vous voudriez une liste des dossiers pour lesquel pas un seul GroupMember n'est transféré ?

Oui c'est ça, de cette manière si je fais le total des groupes au départ 129 et ceux dispatché je me retrouve avec le même nombre
Là dans mon cas concret je suis à 129 et dispatché 80
Du coup que ce passe-t-il avec les 49, un bug, un oubli, une faute dans le programme, une erreur dans la gestion des groupes au niveau entreprise, etc..?
 

Dranreb

XLDnaute Barbatruc
Je suppose qu'on pourrait faire comme ça :
VB:
Sub Dispatch()
   Dim TDon(), LD As Long, DicTrs As New Dictionary, TGDr(), LG As Long, _
      C As Long, Détail, Dst As SsGr, TR(), LR As Long, Wsh As Worksheet, RAS As Boolean
   TDon = PlgUti(WshTrans.[A2]).Value
   For LD = 1 To UBound(TDon, 1): DicTrs(TDon(LD, 1)) = True: Next LD
   TGDr = PlgUti(WshGDrv.[A2]).Value: LD = 0
   ReDim TDon(1 To 100000, 1 To 9)
   For LG = 1 To UBound(TGDr, 1)
      If DicTrs.Exists(TGDr(LG, 5)) Then
         LD = LD + 1
         For C = 1 To 8: TDon(LD, C) = TGDr(LG, C): Next C
         TDon(LD, 9) = "Folder Owner"
         For Each Détail In Split(TDon(LD, 7), ",")
            If Not DicTrs.Exists(Détail) Then
               LD = LD + 1
               For C = 1 To 6: TDon(LD, C) = TGDr(LG, C): Next C
               TDon(LD, 7) = Détail
               TDon(LD, 8) = TGDr(LG, 8)
               TDon(LD, 9) = "Deputy not transferred"
               End If: Next Détail: End If
      RAS = True
      For Each Détail In Split(TGDr(LG, 8), ",")
         If DicTrs.Exists(Détail) Then
            LD = LD + 1
            For C = 1 To 7: TDon(LD, C) = TGDr(LG, C): Next C
            TDon(LD, 8) = Détail
            Select Case True
            '   … Remettre les instructions actuelles
               Case Else: TDon(LD, 9) = "Other": End Select
            RAS = False: End If: Next Détail
      If RAS Then
         LD = LD + 1
         For C = 1 To 8: TDon(LD, C) = TGDr(LG, C): Next C
         TDon(LD, 9) = "Aucun transfert"
         End If: Next LG
   MGigogne.DernièreLigneÀIndexer = LD
   For Each Dst In Gigogne(TDon, 9)
      ReDim TR(1 To 500, 1 To 10): LR = 0
      For Each Détail In Dst.Co
         LR = LR + 1
         For C = 1 To 8: TR(LR, C) = Détail(C): Next C, Détail
      Set Wsh = ThisWorkbook.Worksheets(Dst.Id)
      With Wsh.[K2:I10000]: .ClearContents: .Interior.ColorIndex = xlColorIndexNone: End With
      Wsh.[A2].Resize(UBound(TR, 1), UBound(TR, 2)) = TR
      Wsh.Names.Add "Flag", Wsh.[I2].Resize(LR)
      Wsh.[Flag].Interior.Color = &HB8FD00
      Wsh.[Flag].Offset(, -1).Interior.Color = &HBDFF9D
      Next Dst
   End Sub
Attention: je n'ai pas les tests à jour du Select Case True. Implique la création d'une feuille "Aucun transfert"
 
Dernière édition:

Sigmund173

XLDnaute Occasionnel
Bonjour Dranreb,
tu es dispo, j'aurais une question sur le programme et une erreur suite à une liste qui contient des caractères spéciaux si c'est peut être l'explication ?

For Each Détail In Split(TGDr(LG, 8), ",")

Je pourrais joindre le fichier quand vous êtes en ligne
 

Sigmund173

XLDnaute Occasionnel
Bonjour Dranreb,

Tout fonctionne très bien et c'est parfait, j'aurais une petite demande si c'est possible. Vous vous souvenez qu'on a les folder owner puis toutes les personnes sont dispatchés dans différentes TAB
Est-ce qu'il serait possible si on sélectionne un, plusieurs ou tous les groupes qui sont dans folder owner, une fois que je clique sur généré le pdf il me met une coche automatiquement dans les TAB qui correspondent ?
 

Dranreb

XLDnaute Barbatruc
Bonjour.
J'avais suggéré au #238 de cocher d'office à la création des tableau Dispatch les GroupMember des dossiers dont les Owner ne sont pas transférés (puisqu'on y met maintenant même ceux dont ils le sont). Est-ce que ça ne remplirait pas la fonctionnalité cherchée ?
 

Sigmund173

XLDnaute Occasionnel
Bonjour.
J'avais suggéré au #238 de cocher d'office à la création des tableau Dispatch les GroupMember des dossiers dont les Owner ne sont pas transférés (puisqu'on y met maintenant même ceux dont ils le sont). Est-ce que ça ne remplirait pas la fonctionnalité cherchée ?

L'idée est bonne mais il n'est pas certains que ces dossiers là vont être transféré ni même d'ailleurs les dossiers des folder owner
Ils doivent revoir chaque dossier.
Par contre effectivement si cette option est possible, ça serait bien si quand la team local revoit les dossiers et decide que de transférer tous les dossiers des folder owner transféré, qu'ils puissent cocher, j'ai déjà fait le bouton et que ça coche d'office les dossiers dispatché dans les TABs
 

Statistiques des forums

Discussions
311 720
Messages
2 081 915
Membres
101 837
dernier inscrit
Ugo