Taille automatique EXcel

Bonjour,
J'ai un travail à faire sur Excel avec plein de commentaire, je voulais savoir s'il était possible d'ajuster automatique la taille des commentaires déjà existants et prochains ?
Merci d'avance ^^

3 réponses

  1. Contributeur
    Bonjour
    non je ne crois pas que cela soit possible. La seule chose possible et d'automatiser le format selon le remplissage
    et aussi la possibilité de placer un commentaires types quelques part pour faire des copier coller
    crdlmnt
    0
    1. Bonsoir,

      Sortie du fin fond de mes archives mais fonctionne pas pour les commentaires déjà existant uniquement pour ceux à venir "à voir"

      https://mon-partage.fr/f/zkpZypAL/

      ou

      https://mon-partage.fr/f/al2LKN4f/

      Slts
      0
      1. Contributeur
        Bonjour,

        pour les existants :
        Sub ajustComm()
            Dim pl As Range, c As Range
            Set pl = Cells.SpecialCells(xlCellTypeComments)
            If Not pl Is Nothing Then
                For Each c In pl: c.Comment.Shape.TextFrame.AutoSize = True: Next c
            End If
        End Sub

        toute la feuille active, sinon spécifier la feuille et/ou la plage concernée
        eric

        0
        1. Bonjour, je vous remercie pour cette réponse
          mais j'utilise très peu excel, où dois-je entrer le code ?
          0
        2. Contributeur
          Bonjour,

          Alt+F11 pour ouvrir l'éditeur.
          Clic-droit sur le projet du classeur à droite, 'Insertion / Module'
          Coller le texte du code dans la fenêtre de droite.
          'Enregistrer sous...', choisir le type *.xlsm pour conserver les macros.
          La macro s'applique à la feuille active lors de son appel.
          eric
          0
        3. Merci ça marche mais du coup pour les textes assez long ça sors de l'écran, dois-je les travailler avec entrée ?
          0
        4. Contributeur
          Bonjour,

          qui limite les lignes à x caractères sans couper les mots, ici 40 car. :
          Sub ajustComm()
              Dim pl As Range, c As Range, ch As String
              Set pl = Cells.SpecialCells(xlCellTypeComments)
              If Not pl Is Nothing Then
                  For Each c In pl
                      c.Comment.Text decoupCh(c.Comment.Text, 40)
                      c.Comment.Shape.TextFrame.AutoSize = True
                  Next c
              End If
          End Sub
          
          Function decoupCh(ch As String, lMax As Long, Optional suppVbLF = False) As String
              Dim pos As Long
              'insère chr(10) tous les x caractères, sans couper les mots
              If suppVbLF Then ch = Replace(ch, vbLf, " ")
              pos = lMax + 1
              Do
                  pos = InStrRev(ch, " ", pos)
                  Mid(ch, pos, 1) = vbLf
                  pos = pos + lMax + 1
              Loop Until pos >= Len(ch)
              decoupCh = ch
          End Function

          si tu fais des tests de largeur les retour chariot vont s'accumuler.
          Si tu veux les supprimer tous avant d'en remettre ajoute le paramètre , True à :
          c.Comment.Text decoupCh(c.Comment.Text, 40, True)
          Mais ça les enlève tous, y compris les volontaires. Impossible de les distinguer.
          eric
          0
        5. Merci et j'ai comme réponse "Argument ou appel de procédure incorrect", du coup ça marche ...
          0