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 ^^
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
-
ContributeurBonjour
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
-
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 -
ContributeurBonjour,
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
-
-
ContributeurBonjour,
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 -
-
ContributeurBonjour,
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 -
-