Commentaire changeant en fonction du contenu de la cellule

Lissothus

XLDnaute Nouveau
Bonjour.

Je suppose que ce problème doit être plutôt simple, mais après avoir éplucher les 10 premières pages d'une recherche "commentaire", le chou trouvé était plus que blanc.

Je précise d'abord que je travaille en fait sur excel 97... les bienfaits administratifs !

Ce qu'il me faudrait est donc le moyen que selon le contenu d'une cellule, un commentaire s'affiche en reprenant le contenu d'une autre cellule. Pour faire plus simple, avec un exemple.

En feuille1 , si une cellule (n'importe laquelle)="saucisse" je voudrais que le commentaire associé soit "de toulouse" qui se trouve en case A1 mais sur la feuille 2... si c'est le contenu est "jambon", le commentaire passerait alors à "de parme" qui se trouve sur la case A2 sur la feuille 2. Etc...

Il semblerait que cela ne puisse se faire par formule mais uniquement par VBA. J'suis novice dans le domaine mais je reste toute ouïe pour vos conseils.

Merci par avance !
 

ROGER2327

XLDnaute Barbatruc
Re : Commentaire changeant en fonction du contenu de la cellule

Bonjour Lissothus


Ça a dû certainement être fait cent fois...
Un nouvel essai dans le classeur joint.​



ROGER2327
#6493


Mercredi 11 Pédale 140 (Testament de Saint P. Ucello, le mal illuminé - fête Suprême Quarte)
15 Ventôse An CCXXI, 5,9270h - chèvre
2013-W10-2T14:13:29Z
 

Pièces jointes

  • XLD_202376_Commentaires.xlsm
    17.1 KB · Affichages: 50
  • XLD_202376_Commentaires.xls
    38 KB · Affichages: 47

Lissothus

XLDnaute Nouveau
Re : Commentaire changeant en fonction du contenu de la cellule

Tout d'abord, merci pour votre aide rapide, car même si cela avait déjà été fait 100 fois par le passé, comme je le précisais dans mon post initial, je n'avais pas trouvé l'info qui fonctionne pour 97 via le moteur de recherche du site (et étant en intranet sur mon poste de travail, non seulement Google n'est pas non plus vraiment mon ami, mais les temps d'affichage sont aussi démentiellement longs ^^).

Bref... grâce à votre code (merci aussi pour le.xls, le seul à fonctionner sur ma machine ^^;) qui fonctionnait aux petits oignons, j'ai commencé à farfouiller Vba pour ajuster le bouzin.

Dans un premier temps, je voulais qu'il ne s'applique qu'à une zone donnée, et j'ai donc modifié le "For Each Cell In". J'ai ensuite fait en sorte que le commentaire se retrouve via une base de données située en feuille 2. Tout cela m'a donné...

Private Sub Worksheet_Change(ByVal Cible As Range)
Dim Cel As Range, Msg$, Tmp$
For Each Cel In [a1:b5]
Msg = ""
With Cel
Tmp = LCase(CStr(.Value))
Select Case Tmp
Case "saucisse": Msg = Sheets("Feuil2").Range("A1")
End If
End Select
On Error Resume Next
.AddComment
On Error GoTo 0
If Msg = "" Then .Comment.Delete Else .Comment.Text Msg
End With
Next
End Sub

Ce qui fonctionne.

Je voudrais maintenant savoir s'il est possible de reprendre la même mise en forme (police, alignement, couleur) dans ma case commentaire que dans le format de cellule de la base de données dont le texte provient, avec en bonus, un réglage automatique de la taille de la fenêtre de commentaire ? Ceci n'est pas indispensable... mais au cas où... ^^

Merci encore tout de même, ne serait-ce que pour les ajouts de ligne de code non demandés ("Case Else If Tmp Like..." par exemple) : ça permet d'apprendre par petites touches et c'est agréable.
 

Lissothus

XLDnaute Nouveau
Re : Commentaire changeant en fonction du contenu de la cellule

Houston, nous avons un problème... je n'ai pas accès à ce site (que j'avais bien repéré dans les différents sujets parcourus) puisqu'en intranet professionnel ! (déjà un miracle que j'ai accès à ce forum :p)

Mais merci quand même !

Si quelqu'un a une idée pour mon code a changer, je suis toujours preneur. ^^
 

Lissothus

XLDnaute Nouveau
Re : Commentaire changeant en fonction du contenu de la cellule

Petit up... et rappel de la question.

"Je voudrais maintenant savoir s'il est possible de reprendre la même mise en forme (police, alignement, couleur) dans ma case commentaire que dans le format de cellule de la base de données dont le texte provient, avec en bonus, un réglage automatique de la taille de la fenêtre de commentaire ?"

Je pense, après farfouillage, que c'est cette ligne que je dois inclure au code vba...

.Comment.Shape.TextFrame.AutoSize = True

mais je ne vois pas où.
 

ROGER2327

XLDnaute Barbatruc
Re : Commentaire changeant en fonction du contenu de la cellule

Re...


Essayez ceci :​
VB:
Private Sub Worksheet_Change(ByVal Cible As Range)
Dim Cel As Range, Msg$, Tmp$
    For Each Cel In Cible.Cells
        Msg = ""
        With Cel
            Tmp = LCase(CStr(.Value))
            Select Case Tmp
                Case "saucisse": Msg = "de Toulouse"
                Case "jambon": Msg = "de Bayonne"
                Case "mirabelle": Msg = "de Lorraine"
                Case "saucisson", "rosette": Msg = "de Lyon"
                Case "parisien": Msg = "tête de " & vbLf & "chien"
                Case "breton": Msg = "tête de " & vbLf & "con"
                Case Else
                    If Tmp Like "*selle" Then
                        Msg = "de cheval"
                    ElseIf Tmp Like "*né" Then
                        Msg = "poil au nez !"
                    End If
            End Select
            On Error Resume Next
            .AddComment
            On Error GoTo 0
            With .Comment
                If Msg = "" Then
                    .Delete
                Else
                    .Text Msg
                    With .Shape
                        .TextFrame.HorizontalAlignment = Cel.HorizontalAlignment
                        With .OLEFormat.Object
                            With .Font
                                .Name = Cel.Font.Name
                                .Size = Cel.Font.Size
                                .Color = Cel.Font.Color
                                .Bold = Cel.Font.Bold
                                .Italic = Cel.Font.Italic
                                .Underline = Cel.Font.Underline
                            End With
                            .Interior.Color = Cel.Interior.Color
                            .AutoSize = True
                        End With
                    End With
                End If
            End With
        End With
    Next
End Sub

Attention : code testé avec Excel2010. (Je n'ai plus Excel2003.)



ROGER2327
#6498


Vendredi 13 Pédale 140 (Sainte Valburge - fête Suprême Quarte)
17 Ventôse An CCXXI, 5,5774h - doronic
2013-W10-4T13:23:09Z
 

ROGER2327

XLDnaute Barbatruc
Re : Commentaire changeant en fonction du contenu de la cellule

Suite...


... les fichiers mis à jours.



ROGER2327
#6499


Vendredi 13 Pédale 140 (Sainte Valburge - fête Suprême Quarte)
17 Ventôse An CCXXI, 5,8971h - doronic
2013-W10-4T14:09:11Z
 

Pièces jointes

  • XLD_202376_Commentaires-1.xlsm
    19.9 KB · Affichages: 29
  • XLD_202376_Commentaires-1.xls
    45 KB · Affichages: 31

Lissothus

XLDnaute Nouveau
Re : Commentaire changeant en fonction du contenu de la cellule

Dear Roger... ^^

Ca ne fonctionne pas sur mon ancêtre... :p Il y a bien la fenêtre de commentaire qui s'adapte à la taille du texte, au retour à la ligne, mais ni à la police, ni aux couleurs, ni à l'alignement.

Je tente un renvoi d'un fichier .xls pour que tu vois ce que je recherche... en gros, que la cellule A1 de la feuille 2 se colle exactement dans le commentaire de la cellule x de la feuille 1. J'ai bidouillé ton code sur certains trucs (très peu) mais je cale encore...
 

Pièces jointes

  • Test commentaire.xls
    35.5 KB · Affichages: 39
  • Test commentaire.xls
    35.5 KB · Affichages: 42
  • Test commentaire.xls
    35.5 KB · Affichages: 40

pascal21

XLDnaute Barbatruc
Re : Commentaire changeant en fonction du contenu de la cellule

bonjour
je ne sais pas si tu as regardé le lien que j'ai fourni qui pointe sur le site de JB
une idée comme ça en passant:
sachant qu'il est possible de mettre une photo en commentaire grace au code de JB
n'est-il pas possible pour ton cas de créer une image de la cellule de la feuille 2 et de la récupérer en commentaire?
pas testé
PS: il s'agit peut-être de la solution proposée plus haut
 
Dernière édition:

ROGER2327

XLDnaute Barbatruc
Re : Commentaire changeant en fonction du contenu de la cellule

Bonsoir à tous


Un dernier essai (à compléter), avant de passer à autre chose.​
VB:
Private Sub Worksheet_Change(ByVal Cible As Range)
Dim Cel As Range, Cel2 As Range, Msg$, Tmp$
    For Each Cel In [a1:b5]
        Msg = ""
        With Cel
            Tmp = LCase(CStr(.Value))
            Select Case Tmp
                Case "saucisse": Set Cel2 = Sheets("Feuil2").Range("A1"): Msg = Cel2.Text
            End Select
            On Error Resume Next
            .AddComment
            On Error GoTo 0
            With .Comment
                If Msg = "" Then
                    .Delete
                Else
                    .Text Msg
                    With .Shape
                        With .TextFrame
                            .HorizontalAlignment = Cel2.HorizontalAlignment
                            .Characters(1, 90).Font.Color = RGB(0, 0, 255)
                            .Characters(91, 35).Font.Color = RGB(0, 0, 0)
                            .Characters(126, 33).Font.Color = RGB(255, 0, 0)
                            .Characters(1, 35).Font.Size = 10
                            .Characters(126, 33).Font.Size = 20
                        End With
                        With .OLEFormat.Object
                            .Interior.Color = Cel2.Interior.Color
                            .AutoSize = True
                        End With
                    End With
                End If
            End With
        End With
    Next
End Sub


ROGER2327
#6500


Vendredi 13 Pédale 140 (Sainte Valburge - fête Suprême Quarte)
17 Ventôse An CCXXI, 7,2236h - doronic
2013-W10-4T17:20:12Z
 

Lissothus

XLDnaute Nouveau
Re : Commentaire changeant en fonction du contenu de la cellule

Merci pour votre aide.

Rentrant ce we chez moi, je vais jeter un coup d'oeil sur le site de Boisgontier.

Ton dernier code était bon Roger, mais il m'obligerait à faire un détail de chaque format de cellule que je veux reprendre et il y en a des tonnes : je vais tacher de trouver une formule copiant la mise en forme de ma cellule dans mon commentaire par ailleurs ou retenir l'idée de Pascal d'éditer mes textes en images.

Et si je trouve la solution, je vous tiens au jus.

Merci en tous cas de votre aide précieuse.... et bon WE ! :)
 

Discussions similaires

Statistiques des forums

Discussions
312 492
Messages
2 088 895
Membres
103 982
dernier inscrit
krakencolas