Taille automatique EXcel

chibimaya92 Messages postés 87 Statut Membre -  
chibimaya92 Messages postés 87 Statut Membre -
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. Vaucluse Messages postés 27336 Date d'inscription   Statut Contributeur Dernière intervention   6 453
     
    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
  2. The_boss_68 Messages postés 959 Date d'inscription   Statut Membre Dernière intervention   182
     
    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
  3. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
     
    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. chibimaya92 Messages postés 87 Statut Membre
       
      Bonjour, je vous remercie pour cette réponse
      mais j'utilise très peu excel, où dois-je entrer le code ?
      0
    2. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
       
      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. chibimaya92 Messages postés 87 Statut Membre
       
      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. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
       
      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. chibimaya92 Messages postés 87 Statut Membre
       
      Merci et j'ai comme réponse "Argument ou appel de procédure incorrect", du coup ça marche ...
      0