Attribute VB_Name = "Ajuster_Notes_v121" '---------------------------------------------------------------------------------------- ' Procédure_____: Ajuster_Notes ' Date__________: 26/01/2022 ' Auteur________: www.CapLSS.com - https://www.caplss.com/viewtopic.php?t=272 ' Objet_________: Ajuste la taille des notes (commentaires) aux contenus ' Référence_____: Fonction générique à l'initialisation ' Appel_________: Ajuster_Notes(Opt. LaLargeur, Opt. LOnglet) ' Appel_________: /!\ Nécessite : Exploser ' Retour________: Rien, Procédure ' Options_______: Si LaLargeur := >0, largeur fixée (par défaut 150 = ~5,3 cm) ' Options_______: Si LaLargeur := 0, la largeur s'adapte au contenu ' Compatibilité_: (2003-2019)Office (11.0-16.0)Excel (+)32-bit (+)64-bit ' Statut________: (x)Validé ()En attente validation ()En cours développement '---------------------------------------------------------------------------------------- ' 2009.10.26 v1.00 DEV Création initiale, repositionne toutes les notes ajustées au contenu ' 2012.01.14 v1.10 DEV Possibilité d'imposer une largeur, la hauteur dépend du contenu ' 2021.03.19 v1.20 DEV Possibilité de fournir l'onglet à traiter ' 2022.01.26 v1.21 DEV Utilisation de la fonction exploser pour gagner 30% de temps d'exécution ' Option Explicit ' Sub Ajuster_Notes(Optional ByVal LaLargeur As Integer = 150, Optional ByVal LOnglet As Worksheet) ' ' /!\ Attention, nécessite Exploser ' Dim LaNote As Comment If LOnglet Is Nothing Then Set LOnglet = Application.ActiveSheet For Each LaNote In LOnglet.Comments LaNote.Shape.Top = LaNote.Parent.Top + 5 LaNote.Shape.Left = LaNote.Parent.Offset(0, 1).Left + 5 If LaLargeur > 0 Then LaNote.Shape.Width = LaLargeur LaNote.Shape.Height = 18 + UBound(Exploser(Chr(10), LaNote.Shape.TextFrame.Characters.Caption)) * 9 + 50 * LaNote.Shape.TextFrame.Characters.Count / LaLargeur Else LaNote.Shape.TextFrame.AutoSize = True End If Next End Sub Sub Tester_Ajuster_Notes() ' Ajustement sur une largeur de 150 (~5,3 cm) par défaut Call Ajuster_Notes ' Ajustement sur une largeur de 100 (~3,52 cm) Call Ajuster_Notes(100) ' Ajustement sur une largeur adaptée au contenu sur l'onglet Feuil1 du Fichier "macros" Call Ajuster_Notes(0, ThisWorkbook.Sheets("Feuil1")) ' Ajustement sur une largeur de 150 (~5,3 cm) par défaut dans l'onglet "Base" de "Fichier.xlsm" Call Ajuster_Notes(LOnglet:=Workbooks("Fichier.xlsm").Sheets("Base")) ' End Sub