Microsoft 365 Ajouter une étiquette de confidentialité via macro

ZET

XLDnaute Nouveau
Bonjour,
Quelqu'un aurait il la solution ? L'entreprise américaine pour laquelle je travaille nous oblige à ajouter à chaque fichier une étiquette de confidentialité (Public, Internal...).
J'ai un fichier avec 3 Macros l'une pour créer des onglets, l'autre pour les exporter et une autre pour les supprimer.
Existe t il un programme à insérer pour dire à l'ordinateur d'ajouter à chaque export l'étiquette de confidentialité "Public" ? (Microsoft Excel 365)
Mon projet pour générer plus de 100 onglets et exporter 100 onglets en indiquant l'étiquette de confidentialité à chaque export me fait perdre un temps infini.
D'avance merci pour votre aide.


Sub cree_onglets()
Application.ScreenUpdating = False
sup_onglets
Sheets("ACCUEIL").Select
Range("f2", Range("F2").End(xlToRight).End(xlDown)).Sort Key1:=Range("F2")
Range("F2").Select
Do While ActiveCell <> ""
nom = ActiveCell.Value ' Premier nom
Sheets("modele").Copy After:=Sheets(Sheets.Count)
ActiveSheet.Name = nom
Range("E3").Value = nom
'-- récup Destinataire dans la table bd_noms
destinataire = Application.VLookup(nom, Range("bd_noms"), 1, 0)
If Application.IsNA(service) Then destinataire = ""
'---
Range("E3").Value = destinataire
Sheets("ACCUEIL").Select

ActiveCell.Offset(0, 0).Select 'ligne suivante
Sheets("ACCUEIL").Select
ActiveCell.Offset(1, 0).Select 'ligne suivante dans base
Loop

Sheets("ACCUEIL").Select
Range("A1").Select
End Sub

Sub sup_onglets()
Application.DisplayAlerts = False
Sheets("ACCUEIL").Move Before:=Sheets(1)
Sheets("modEle").Move Before:=Sheets(2)
If Sheets.Count > 2 Then
Sheets(3).Select
For s = 1 To Sheets.Count - 2
ActiveSheet.Delete
Next s
End If

'Remettre le curseur en cellule A1 de l'onglet Accueil
Sheets("ACCUEIL").Select
Range("A1").Select

End Sub
Sub export_onglet()
CheminAppli = ActiveWorkbook.Path
Application.DisplayAlerts = False
For i = 3 To Sheets.Count
Sheets(i).Select
nonglet = ActiveSheet.Name
ActiveSheet.Copy
ActiveWorkbook.SaveAs Filename:=CheminAppli & "\" & nonglet
ActiveWindow.Close
Next i
End Sub
 

ZET

XLDnaute Nouveau
microsoft 365 pour chaque document demande de sélectionner cet ajout de confidentialité. Cela empêche mon code ci-dessus de s'exectuer en une seule fois. Je ne dois par être la seule confrontée à ce problème. Quel'qun peut il m'aider svp?
 

ZET

XLDnaute Nouveau
Bonjour EZT,

Perso je travaille dans un groupe international, mais nous n'avons pas ce genre de souci 🤓

Voir peut-être ceci

A+
Bonjour, Tout d'abord merci pour ce retour. j'ai tenté de l'insérer en utilisant la fonction call.... mais cela ne fonctionne pas. Aussi, pourriez vous me dire où imbriquer ce code dans le code communiqué précédemment afin que le programme fonctionne ? Je vous ai mis la PJ au cas où. D'avance un grand merci pour votre support.



Public WithEvents sensitivityLabel As SensitivityLabel

Private Sub sensitivityLabel_LabelChanged(ByVal OldLabelInfo As Office.LabelInfo, ByVal NewLabelInfo As Office.LabelInfo, ByVal HResult As Long, ByVal Context As Object)

MsgBox "Event raised: " + NewLabelInfo.LabelId

End Sub

Sub SetLabelInfo()

Set sensitivityLabel = ActiveDocument.SensitivityLabel
Dim myLabelInfo As Office.LabelInfo
Set myLabelInfo = sensitivityLabel.CreateLabelInfo()

With myLabelInfo
.AssignmentMethod = MsoAssignmentMethod.PRIVILEGED
.Justification = "Some justification needed only if downgrading label."
.LabelId = "9203368f-916c-4d59-8292-9f1c6a1e8f39"
.LabelName = "MyLabelName"
.SiteId = "6c15903a-880e-4e17-818a-6cb4f7935615"
End With

sensitivityLabel.SetLabel myLabelInfo, myLabelInfo

End Sub
 

Pièces jointes

  • 2023 - EMEA Samples Request Form_VersionFD_2023.08.31.xls
    915 KB · Affichages: 9

onobyone

XLDnaute Junior
Bonjour,
Si des personnes sont toujours intéressées pour définir une étiquette de confidentialité en vba, je vous invite à consulter ce lien : Accès au lien (je ne sais pas si je suis autorisé ou non à mettre un lien comme ça, désolé donc si non).
Pour information, je suis un bidouilleur en vba et non un développeur.
La fonction permet de récupérer la valeur de l'ID de l'étiquette définie qui si j'ai bien compris est propre à l'entreprise (j'ai sauvegardé un fichier et récupéré la valeur de l'ID de l'étiquette)
J'ai adapté la fonction selon la valeur récupérée et l'étiquette que je souhaitais définir.
J'ai créé un module et copié/collé le code dans mon nouveau module.
Dans le module où je fais un Enregistrer Sous, j'ai mis avant : SetSensitivityLabel ActiveWorkbook, "Interne"
Désolé si je ne suis pas clair mais si j'ai réussi à faire fonctionné ça, vous devriez y arriver.
 

Discussions similaires

Statistiques des forums

Discussions
312 563
Messages
2 089 683
Membres
104 252
dernier inscrit
dbsromaric