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

Vaucluse Messages postés 27336 Statut Contributeur 6 441
 
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
The_boss_68 Messages postés 967 Statut Membre 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
eriiic Messages postés 25847 Statut Contributeur 7 279
 
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
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
eriiic Messages postés 25847 Statut Contributeur 7 279
 
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
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
eriiic Messages postés 25847 Statut Contributeur 7 279
 
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
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