Commentaire dans cellules grace à VBA
Résolu/Fermé
elglouton
Messages postés
189
Date d'inscription
dimanche 19 avril 2009
Statut
Membre
Dernière intervention
11 novembre 2022
-
Modifié par elglouton le 12/02/2011 à 22:36
elglouton Messages postés 189 Date d'inscription dimanche 19 avril 2009 Statut Membre Dernière intervention 11 novembre 2022 - 13 févr. 2011 à 19:20
elglouton Messages postés 189 Date d'inscription dimanche 19 avril 2009 Statut Membre Dernière intervention 11 novembre 2022 - 13 févr. 2011 à 19:20
A voir également:
- Commentaire dans cellules grace à VBA
- Aller à la ligne dans une cellule excel - Guide
- Excel additionner des cellules - Guide
- Clément a partagé le fichier mme bovary. il a écrit des commentaires dans le document. quel est le 2e commentaire ? - Guide
- Verrouiller des cellules excel - Guide
- Excel compter cellule couleur sans vba - Guide
1 réponse
eriiic
Messages postés
24569
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
14 mars 2024
7 208
Modifié par eriiic le 13/02/2011 à 11:39
Modifié par eriiic le 13/02/2011 à 11:39
Bonjour,
Regarde si ça convient :
Commentaires.xlsm
macro 'Commentaires' mise dans le module1
eric
Edit: on pourrait aussi prévoir un retour à la ligne forcé avant un élément traduit s'il est supérieur à une certaine taille (?)
Regarde si ça convient :
Sub Commentaires() ' pour chaque cellule de la sélection, ' traduit à l'aide des abréviations de 'Abrev' ' et met la traduction en commentaire. ' Pas d'ajout ou modification de commentaire si aucune traduction n'a eu lieu. ' Retour à la ligne forcé sur "et", "ou" Dim shAbrev As Worksheet, c As Range, ch As Variant Dim i As Long, j As Long, comment As String, ok As Boolean Set shAbrev = Worksheets("Abrev") derlig = shAbrev.[A65536].End(xlUp).Row For Each c In Selection comment = "" ok = False ' traduire ch = Split(c.Value, " ") For i = 0 To UBound(ch) If Len(ch(i)) > 1 Then j = 0 On Error Resume Next j = shAbrev.Range("A1:A600").Find(What:=ch(i), LookIn:=xlFormulas, LookAt:=xlWhole, SearchOrder:=xlByColumns).Row On Error GoTo 0 If j <> 0 Then ch(i) = shAbrev.Range("B" & Application.WorksheetFunction.Match(ch(i), shAbrev.Range("A1:A600"), 0)) ok = True End If End If If (ch(i) = "et" Or ch(i) = "ou") And comment <> "" Then comment = comment & vbCrLf comment = comment & " " & ch(i) Next i ' ajouter commentaire If ok Then On Error Resume Next c.AddComment On Error GoTo 0 c.comment.Visible = False c.comment.Text Text:=comment c.comment.Shape.Width = 300 'largeur commentaire c.comment.Shape.Height = 90 'hauteur commentaire End If Next c End Sub
Commentaires.xlsm
macro 'Commentaires' mise dans le module1
eric
Edit: on pourrait aussi prévoir un retour à la ligne forcé avant un élément traduit s'il est supérieur à une certaine taille (?)
13 févr. 2011 à 12:13
Juste deux petites chose est-ce possible que la fenêtre s'adapte a son contenu
et a chaque saut de ligne forcé apparait un petit carré est-ce possible de ne pas le voire.
Merci encore
13 févr. 2011 à 13:39
Ca serait faisable (?) mais long et compliqué car la mise en page est faite automatiquement en fonction de la police choisie et de sa taille. Je verrais peut-être plus tard mais sur les jours à venir j'aurais d'autres préoccupations.
a chaque saut de ligne forcé apparait un petit carré est-ce possible de ne pas le voir
Je n'ai pas ce petit carré...
As-tu changé la police des commentaires ? J'ai Tomaha Normal taille 9
Essaie en remplaçant vbCrLF par vbLF
eric
13 févr. 2011 à 14:38
C'est parfait le remplacement de vbCrLF par vbLF a fonctionner
13 févr. 2011 à 16:14
Commentaires.xlsm
Tu peux fixer la largeur maximale des commentaires en changeant le paramètre :
UserForm1.TextBox1.Width = 300
Ne pas supprimer le UserForm1 même s'il n'est pas appelé.
eric
13 févr. 2011 à 19:20
Encore Merci