Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2016 Macro auto-redimensionner toutes les notes

  • Initiateur de la discussion Initiateur de la discussion ViroMajor
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

ViroMajor

XLDnaute Nouveau
Bonjour à tous,

Version Excel : 365. Via cette mouture, les anciens commentaires sont devenus des “notes” et ce qui s’intitule des commentaires désormais inclus la mention de l’auteur avec horodatage avec possibilité de fil de discussion par réponses intercalées

A cet instant, j’ai ce bout de code, qui assigné à une touche clavier en se plaçant sur la cellule concernée, auto-redimensionne comme envisagé (à la juste taille de texte), cependant note par note, une à la fois.

VB:
Option Explicit
Sub AutoSize_comment()
    With ActiveCell
        With .Comment
            .Shape.TextFrame.AutoSize = True
        End With
    End With
End Sub

Je serais intéressé d’auto-redimensionner toutes les notes (anciens commentaires) à la fois d’une même feuille ou d’un classeur entier. Est-ce possible ? Merci à vous
 
Parcequ’actuellement, un commentaire ajouté manuellement commence toujours en gras et sans redimensionnement. Donc on les accumule ainsi, jusqu’à plus tard activer cette macro sur tous

Idéalement, à chaque fois qu’on en ajoute un nouveau manuellement, il serait efficace qu’il soit “corrigé” immédiatement.
En somme, ya-t’il un code qui pourrait détecter l’ajout manuel du dernier commentaire afin de le formater par macro ?
 
Re

Une piste à creuser (et à blinder sur les bords 😉)
Sur mon PC, cela fonctionne (mais c'est lent)
VB:
Option Explicit
Dim nbShp%
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Static nbShp
Dim i%
i = Me.Shapes.Count
Application.EnableEvents = False
If i > nbShp Then
  With Me.Shapes(i)
      .TextFrame.AutoSize = -1
      .TextFrame.Characters.Font.Bold = 0
  End With
End If
Application.EnableEvents = True
nbShp = i
End Sub
A mettre dans le code de la feuille.
 
Re

Je me suis compliqué la tâche précédemment
Ci-dessous je me la simplifie 😉
VB:
Option Explicit
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Application.EnableEvents = False
If Not Target.Comment Is Nothing Then
With Target.Comment.Shape.TextFrame
.AutoSize = -1: .Characters.Font.Bold = 0
End With
End If
Application.EnableEvents = True
End Sub
 
Bien le bonjour Staple

Autant pour moi, en fait, il fait de l’effet à condition de le stimuler... il ne s’actionne que si on place le curseur de souris (en cliquant une fois) sur la cellule concernée, autrement non (passer la souris au-dessus de la case ne suffit pas)

Alors que l’ancien code lui s’actionne immédiatement (quand on a terminé le commentaire sans aucune manipulation supplémentaire), sans qu’on ait à lui donner aucun coup de cravache pour avancer !

Je préfère donc le 1er canasson, même s’il est moins polyvalent (risque de conflits avec certains objets)
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…