Ajouter un code à un déjà existant (ajout image en B après double clic) !

anthoYS

XLDnaute Barbatruc
Bonjour,

Dans mon fichier voici le code déjà présent :

Code:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Cancel = True ' le Double click ne sert qu'a ça
If Not Application.Intersect(Target, [F:F]) Is Nothing Then 'ne concerne que la colonne F
Target.Value = IIf(Not Target.Value = "þ", "þ", "o") 'si la cellule est = þ au _
double click elle devient o au double click suivant elle redevient þ etc...
    If Target.Value = "þ" Then 'si la cellule = þ
        Range(Target.Offset(0, -1), Target.Offset(0, -5)).Interior.ColorIndex = 15
        ' colorie en gris la plage de cellules da A à C
            Else ' sinon
        Range(Target.Offset(0, -1), Target.Offset(0, -5)).Interior.ColorIndex = xlNone
        ' remet la couleur d'origine sur cette même plage
    End If ' Fin de la 1ère condition
End If ' fin de la 2ème condition
If Target.Column = 1 Then
Cells(Target.Row, 1).Interior.ColorIndex = 6
Cells(Target.Row, 2).Interior.ColorIndex = 6
End If
If Target.Column = 4 Then
Cells(Target.Row, 4).Interior.ColorIndex = 5
End If
If Target.Column = 5 Then
Cells(Target.Row, 5).Interior.ColorIndex = 5
End If
End Sub

Je souhaite en fait que si seulement le double clic à lieu en B dans cet onglet, qu'il affiche en commentaire l'image qu'il trouvera associé à B et à A. Car en B il y a le prénom "Prénom" et en A le nom "NOM". Biensur, veillons à les séparer d'un espace, ainsi Prénom NOM (A&""&B). Ainsi il lira le fichier dans le répertoire correspondant à ce nom "Prénom NOM.jpg" par exemple...
Prévoir dans le code, que si le double clic à lieu en B, mais que dans le répertoire il n'y a aucune image correspondant à l'identité, qu'il ne fasse rien.

Voici le code à agréger et à modifier pour qu'il ne soit valide qu'en B (double clic aussi) :

Code:
 repertoire = ThisWorkbook.Path & "\"
 With Target
  .ClearComments
  .AddComment
  .Comment.Text Text:=.Value
  If Dir(repertoire & .Value & ".jpg") <> "" Then
     .Comment.Shape.Fill.UserPicture repertoire & .Value & ".jpg"
     .Comment.Shape.Height = 50
     .Comment.Shape.Width = 50
     .Comment.Shape.ScaleHeight 1.2, msoFalse, msoScaleFromTopLeft
   End If
 End With
 Cancel = True
End Sub

Merci par avance.
 

Robert

XLDnaute Barbatruc
Repose en paix
Re : Ajouter un code à un déjà existant (ajout image en B après double clic) !

Bonjour AnthonYs, bonjour le forum,

Peut-être comme ça :
Code:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim repertoire As String 'déclare la variable repertoire
Dim nom As String 'déclare la variable nom
 
Select Case Target.Column 'agit en fonction du numéro de colonne

    Case 1 'colonne A
        Cancel = True 'évite le mode édition lié au double clic
        Cells(Target.Row, 1).Interior.ColorIndex = 6
        Cells(Target.Row, 2).Interior.ColorIndex = 6
    
    Case 2 'colonne B
        Cancel = True 'évite le mode édition lié au double clic
        repertoire = ThisWorkbook.Path & "\" 'définit le répertoire
        nom = Target.Offset(0, -1).Value & " " & Target.Value & ".jpg" 'définit le nom
        With Target 'prend en compte la cellule double-cliquée
            On Error Resume Next 'gestion des erreurs
            .ClearComments 'éfface l'ancien commentaire
            .AddComment 'ajoute un commentaire
            .Comment.Shape.Fill.UserPicture repertoire & nom 'ajoute la photo
            If Err <> 0 Then .ClearComments: Exit Sub 'si erreur, efface le commentaire, sort de la procédure
            .Comment.Shape.Height = 50 'dimension
            .Comment.Shape.Width = 50 'dimension
            .Comment.Shape.ScaleHeight 1.2, msoFalse, msoScaleFromTopLeft 'mise à l'échelle
        End With 'fin de la prise en compte de la cellule double-cliquée
    
    Case 4 'colonne D
        Cancel = True 'évite le mode édition lié au double clic
        Cells(Target.Row, 4).Interior.ColorIndex = 5
 
    Case 5 'colonne E
        Cancel = True 'évite le mode édition lié au double clic
        Cells(Target.Row, 5).Interior.ColorIndex = 5
    
    Case 6 'colonne F
        Cancel = True 'évite le mode édition lié au double clic
        Target.Value = IIf(Not Target.Value = "þ", "þ", "o") 'si la cellule est = þ au _
        double click elle devient o au double click suivant elle redevient þ etc...
        If Target.Value = "þ" Then 'si la cellule = þ
            Range(Target.Offset(0, -1), Target.Offset(0, -5)).Interior.ColorIndex = 15
            ' colorie en gris la plage de cellules da A à C
                Else ' sinon
            Range(Target.Offset(0, -1), Target.Offset(0, -5)).Interior.ColorIndex = xlNone
            ' remet la couleur d'origine sur cette même plage
    End If ' Fin de la 1ère condition
 
End Select 'fin de l'action en fonction du...
End Sub
 

Robert

XLDnaute Barbatruc
Repose en paix
Re : Ajouter un code à un déjà existant (ajout image en B après double clic) !

Bonsoir AnthoYs, bonsoir le forum

P... quel remerciement !!!! Alors comme toi, je dis : "Désolé mais ça mache ! Car j'ai testé avant d'envoyer... J'ai pris un fichier vierge et j'y ai placer la macro. Je lai enregistré. Dans le même dossier j'ai mis un fichier JPEG que j'ai nommé AnthoYs PACOOL.jpg. En A1 j'ai écrit Anthoys,en B1 j'ai écrit PACOOL. Quand j'ai double-cliquer sur B1 la photo d'Anthoys PACOOL est aparue en commentaire. Hou qu'il était vilain d'ailleurs...".
Voilà c'est dit... Surtout change pas de pseudo je me souviendrai de toi !
 

anthoYS

XLDnaute Barbatruc
Re : Ajouter un code à un déjà existant (ajout image en B après double clic) !

Bonsoir ;


AnthoYs PACOOL

C'est triste que tu juge une personne derrière ton écran... Cela ne m'atteint pas, car ton jugement est plus que faussé ! Et surtout essayé de comprendre les autres sans être de la sorte désagréable surtout sur un forum, par écrit, c'est vraiment trop simple... Et petit qui plus est.

Bien domage ! :eek:

change pas de pseudo je me souviendrai de toi !

On ne peut pas changer de pseudo donc ça ne risque pas.
Ta suggestion est donc inutile...

Enfin, chacun ces choix, nous sommes tous imparfaits, désolée de t'avoir heurté à ce point, je n'y peu rien si ça n'a pas marché de mon côté, voilà tout.
Tu ne le crois pas tant pis !
Je n'ai aucune raison de mentir ! :rolleyes:

Surtout que j'emet la possibilité par le format "jpeg"...
Parfois vaut mieux ce contenter d'un remerciement, mais bon pour le retour que j'en ai... Enfin, aucun regret je reste franc, fidèle à moi-même.

Tu ne le crois pas tant pis !
Je n'ai aucune raison de mentir ! :rolleyes:


Sincèrement, bonne continuation !
 

Robert

XLDnaute Barbatruc
Repose en paix
Re : Ajouter un code à un déjà existant (ajout image en B après double clic) !

Bonsoir Anthoys, bonsoir le forum,

Je ne te reproche pas de mentir, je te reproche juste la manière de remercier. Moi quand un mec prend le temps, gentiment, de m'aider je trouve que lui répondre ça :
Re,

D'accord merci.

Mais ça ne marche pas !

S'il s'agit d'une image "jpeg"?

Voilà.

c'est carrément le prendre pour un con et ça m'a bien mis les boules !
Peut-être penseras-tu la même chose le jour où tu feras l'effort de venir en aide à quelqu'un et qu'en retour tu n'auras que de l'insatisfaction. D'autant plus que le code que j'ai proposé fonctionne avec des fichiers JPEG car je l'ai testé avant.
Reste donc franc et fidèle à toi même, c'est tout à ton honneur mais un peu d'amabilité ça va pas t'arracher la gueule non plus...

Sincèrement... rien sinon je vais être grossier et encore me faire censurer par Pascal et ça va encore me gonfler...
 

Discussions similaires

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
312 084
Messages
2 085 194
Membres
102 811
dernier inscrit
caroline29260