Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

faire apparaitre un commentaire

  • Initiateur de la discussion Initiateur de la discussion pascal21
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

pascal21

XLDnaute Barbatruc
bonjour à tous
pourriez-vous m'indiquer svp, le moyen de faire apparaitre un commentaire sous condition.
je m'explique:
ex: si en a1, j'ai une valeur > à 50 alors pas de commentaire
si en a1j'ai une valeur >0 mais <=50 alors commentaire du genre 'attention prévoir etc....'
si en a1 j'ai une valeur <0 alors commentaire du genre 'attention depassement'
si aucune valeur n'est présente dans a1 alors pas de commentaire non plus
ce commentaire doit s'appliquer sur une trentaine de cellules de la colonne
il se peut que plusieurs cellules de la colonne a remplissent les conditions
merci
 
Salut Pascal,

Pourrais-tu être quelque peu plusn précis ?
¨
Par commentaire, songes-tu au menu Insertion / Commentaires, à un message du menu Outils / Validation, une textbox ou un texte dans une cellule voisine ?

Dans les deux premiers cas, il me semble que ce sera necessairement une macro.
Dans le dernier cas, le plus facile, une simple petite formule peut faire l'affaire.

A toi de préciser.
Â+
 
bonjour Pascal21

Salut André

Dans l'hypothese d'un commentaire style insertion / commentaires

une macro a tester (et adapter eventuellement)

Code:
Sub Macro1()
For Each cel In Range('A1:A30')
cel.ClearComments
If cel > 0 And cel <= 50 Then
cel.AddComment
cel.Comment.Text Text:='Attention' & Chr(10) & ' Prevoir....'
Else
 If cel < 0 Then
   cel.AddComment
   cel.Comment.Text Text:='Attention' & Chr(10) & ' Depassement'
 End If
End If
Next cel
End Sub
 
Bonsoir PierreJean, Pascal, Cher Ami et Compatriote Ândré, le Forum

En complément de code de Pierre Jean, voici le même un peu pluus poussé 😉



On notera que je reste dans le même 'If' grace au 'ElseIf' très utile dans ce cas là, ensuite dans une telle cascade 'l'identation' est indispensable pour s'y retrouver. Le 'Cel 'déclaré, permet aussi d'avoir des tas de petit dropdown en cours de programmation pour trouver toutes les propriétés successives.

Bonne Fête Pascal !

Arf non il n'est pas dans ce Fil,
Bonnes fêtes Pascales enfin Joyeuses Pâques

[ol]@+Thierry[/ol]
 
Bonsoir à tous,
J'arrive un peu après la bataille mais je vous propose ceci -
cela prend en compte n'importe quelle série dans la colonne 1 (pas limitée à 30)

bonne fin de journée [file name=commentaire_20060415191546.zip size=8935]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/commentaire_20060415191546.zip[/file]
 
Dernière édition:
Re Bonsoir PierreJean, le Fil, Bonsoir Jacou

Oui PierreJean, il y avait aussi ce ElseIf, plus opérationel (direct) que de passer par un autre 'subsequent' If.

Pour Jacou, si je peux me permettre, sans aucune prétention, je pense pouvoir te conseiller de faire attention à deux ou trois petites choses importantes si tu veux optimiser tes codes, non pas que ta solution ne fonctionne pas, mais elle vraiment digne d'un Western Napolitain, (comme Ti_ m'avait 'allumé' une foiss)

Premièrement lors de macros évènementielles, toujours délimiter la zone du déclenchement sur la Feuille de l'évenmement...

Ici en l'occurrence ;
If Application.Intersect(Target, Columns(1)) Is Nothing Then Exit Sub
(Si la Target n'est pas en colonne(1) on ne déclenche rien)

Secondement toujours éviter les 'Select', ceci n'est pas pas conseillé, ça flash et ça rallentit le code un maximum :

Range('A65536').End(xlUp).Select
derlig = ActiveCell.Row
Range('A1:A' & derlig).Select
Selection.ClearComments
Cells(derlig, 1).Select


On peut faire la même chose ainsi :

Range('A1:A' & Range('A65536').End(xlUp).Row).ClearComments


Et pour finir, les 'acrobaties' avec Goto cellsuivante et autres :

cellsuivante:
If ActiveCell.Row > 1 Then
ActiveCell.Offset(-1, 0).Select

GoTo boucle
End If

.... sont vraiment à éviter, au pire moi j'en utilise pour sortir d'une boucle, et évidemment les gestions d'erreurs.

Je pense que cette façon que tu as de faire provient d'un héritage de Programmation en Basic (ça rajeunit pas), mais depuis le Visual Basic, il y a une panoplie de Functions, Méthodes, Instructions et de Proprietés qui permettent d'éviter ce genre de 'gymnastique'.

Voici une approche essayant de reprendre ton idée de base interressante pour le passage du Commentaire en tant que String.




Bonnes Fêtes de Pâques
[ol]@+Thierry[/ol]
 
Rebonsoir à tous

Merci Thierry pour tes conseils.
C'est vrai que ta présentation est limpide, mais les très vieilles habitudes sont presque une seconde nature -si ce n'était que du basic ! c'est encore pire : du FORTRAN ou du COBOL 😉 alors tu vois ça ne nous rajeunit effectivement pas
Bonnes Pâques à tous
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
2
Affichages
411
Réponses
7
Affichages
483
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…