si commentaire vide alors.... en vba

pascal21

XLDnaute Barbatruc
re bonsoir
une tite dernière pour la route et après je vous fiche la paix promis!!
j'ai souhaité dans mon classeur avoir dans un commentaire le contenu de plusieurs cellules d'une autre feuille
jusque là pas de soucis
Code:
With Range("g3") 'indique dans un commentaire les dates des contrôles techniques  
 If .Comment Is Nothing Then Range("g3").AddComment
   .Comment.Text Text:=Feuil10.[m2].Value & Chr(10) & Feuil10.[m3].Value & Chr(10) & Feuil10.[m4].Value & Chr(10) & Feuil10.[n2].Value & Chr(10) & Feuil10.[n3].Value
   .Comment.Shape.TextFrame.AutoSize = True
    End With
les cellules concernées contiennent une formule avec un test qui renvoi "" si la condition n'est pas respectée
donc si toutes les cellules sont "" je peux penser que le commentaire est "" aussi
j'ai voulu ajouter une coloration de la cellule (et oui encore!! pour ceux qui suivent lol) si le commentaire n'est pas ""
j'ai mis cela
Code:
if [g3].comment.text <> "" then
[g3].interior.colorindex = 3
mais visiblement excel pense que le commentaire contient quelque chose puisque ça ne fonctionne pas, j'ai la couleur qui s'affiche quand même
ça doit être un problème de formulation pas adaptée au commentaire
j'ai essayé d'effacer un éventuel contenu invisible (car(10)) mais que neni
que voyez vous dans votre boule de cristal?
merci

edit: j'ai fais un essai dans un classeur vierge et avec un commentaire sensé être side aussi mais le problème est le même
j'ai essayé avec comment.text <> empty
pareil
 
Dernière édition:

Victor21

XLDnaute Barbatruc
Re : si commentaire vide alors.... en vba

Bonsoir, Pascal.

que voyez vous dans votre boule de cristal?
Un joli fichier pour pouvoir tester les éventuelles propositions, sans être obligé de le re-construire.
Car certains contributeurs, et j'en suis! :( n'ont pas fait VBA en première langue.
Mais rien de nouveau, tu l'auras deviné, voisin ;)
 

pascal21

XLDnaute Barbatruc
Re : si commentaire vide alors.... en vba

bonsoir victor
tu as raison je ferai un fichier demain matin
j'en ai assez ce soir
le classeur que j'essaie de faire tombe en lambeaux en peu plus tous les jours
quand je saurai faire simple, je n'aurai plus de problème
bonne 'soarée'
 

job75

XLDnaute Barbatruc
Re : si commentaire vide alors.... en vba

Bonjour Pascal, salut Patrick,

donc si toutes les cellules sont "" je peux penser que le commentaire est "" aussi (...)
mais visiblement excel pense que le commentaire contient quelque chose puisque ça ne fonctionne pas, j'ai la couleur qui s'affiche quand même

Excel pense mieux car lui il sait lire les formules qu'on lui donne.

Il y a forcément au moins 4 caractères Chr(10) dans le commentaire en G3.

Donc en l'état pour colorer G3 si au moins une des cellules M2 M3 M4 N2 N3 n'est pas vide :

Code:
If Len([g3].Comment.Text) > 4 Then [g3].Interior.ColorIndex = 3
Nota : bien entendu une programmation un peu astucieuse consisterait à ne mettre que les Chr(10) nécessaires...

A+
 

job75

XLDnaute Barbatruc
Re : si commentaire vide alors.... en vba

Re,

Voici comment programmer correctement le commentaire en G3 et la couleur de la cellule :

Code:
Sub Commentaire()
'indique dans un commentaire les dates des contrôles techniques
Dim r As Range, liste As String
Set r = Feuil10.Range("M2:M4,N2:N3")
For Each r In r
  liste = liste & IIf(r <> "", vbLf & r, "")
Next
liste = Mid(liste, 2)
With [G3]
  If Not .Comment Is Nothing Then .Comment.Delete
  .AddComment liste
  .Comment.Shape.TextFrame.AutoSize = True
  .Interior.ColorIndex = IIf(liste = "", xlNone, 3) 'cellule en rouge
End With
End Sub
A+
 

Discussions similaires

Réponses
2
Affichages
153
Réponses
9
Affichages
135

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
312 229
Messages
2 086 426
Membres
103 206
dernier inscrit
diambote