XL 2016 Activation macro à partir d'une valeur de cellule modifiée

David17

XLDnaute Nouveau
Bonjour,

Je n'arrive pas à déclencher le rapatriement des commentaires (depuis l'onglet "Extraction Navision") en automatique sans devoir cliquer et valider dans les cellules de la colonne B (B12 et B13 par exemple).

Je voudrais qu'à partir du moment je sélectionne une donnée dans C7, que les commentaires s'affichent automatiquement dans la colonne D.

image

Voici le lien du fichier exemple : Lien

Quelqu'un pourrait-il m'aider ?
DAvid
 
Solution
Bonjour,
Apparament on peut copier coller des commentaires :
VB:
ligne.Columns("B") = ligne.Columns("A").Comment.Text
Cependant tel qu'est fait votre fichier ça ne marchera pas car dans l'onglet configurateur ce sont des formules RechercheV qui ne copieront pas les commentaires.

David17

XLDnaute Nouveau
Bonjour,
Merci sylvanu pour votre réponse. La formule fonctionne bien.

En revanche, ma plus grande difficulté est que je voudrais rapatrier les commentaires également (c'est à dire les triangles rouges en haut à droite des cellules). Savez-vous comment je peux le faire ?

La macro qui est dans le fichier dont j'ai placé le lien en début de cette discussion le fait mais une fois que j'ai modifié la cellule C7, je dois ouvrir chacune des cellules de la colonne B ayant des données pour obtenir les données et commentaires de la colonne D.

David
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour,
Apparament on peut copier coller des commentaires :
VB:
ligne.Columns("B") = ligne.Columns("A").Comment.Text
Cependant tel qu'est fait votre fichier ça ne marchera pas car dans l'onglet configurateur ce sont des formules RechercheV qui ne copieront pas les commentaires.
 

David17

XLDnaute Nouveau
Bonjour,

Je vous remercie pour cette information mais j'ai vraiment besoin de faire des recherche V.

J'ai trouvé une autre macro que j'ai adaptée à mes tableaux. J'espère que celle-ci sera plus simple à modifier pour faire ce que je souhaite. Pour être plus précis dans ma demande:

Dans l'exemple ci-dessous:
- Je veux que : lorsque je change la valeur en E3, déclencher la macro qui ramènera les commentaires en F12 (texte et le triangle rouge dans la cellule).
- Par exemple si je sélectionne en valeur en B15, la macro fonctionne et me ramène le commentaire en F15.


1600077475266.png


Voici le code:

VB:
Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
Dim r As Range, i As Variant
Set r = Intersect(Target, UsedRange.Columns(2))
'Columns (colonne avec ref à chercher)
If r Is Nothing Then Exit Sub
With Feuil11 'CodeName Feuille source
    For Each r In r 'si entrées /effacements multiples
        i = Application.Match(r, .Columns(1), 0)
        If IsNumeric(i) Then .Cells(i, 5).Copy r(1, 5) Else r(1, 3) = "" 'copier-coller
        'cells (ligne, colonne)
        'copy r( nombre décalage vertical,colonne de donnée avec commentaire)
    Next
End With
End Sub

Private Sub Worksheet_Activate()
Worksheet_Change [B:B] 'lance la macro
End Sub

J'espère que mon explication est facilement compréhensible.
Merci par avance,
David
 

Pièces jointes

  • 1600077454697.png
    1600077454697.png
    21 KB · Affichages: 3
  • test macro copie commentaire_V5_macro 2 copie commentaire.xlsm
    870.3 KB · Affichages: 2

David17

XLDnaute Nouveau
Bonjour,

N'ayant pas reçu de réponse à ce jour, j'espère ne pas avoir mis trop d'informations dans ma demande. Je pense que pour des experts de VBA, le code devrait suffire.

A partir du code ci-dessous, je voudrais en + :

1 - Pour le "Rang ("B65000").End(xlUp)", autre chose qui renvoie les données dans une plage choisie (B12:B30 par exemple)

2 - rapatrier une autre colonne avec les commentaires (triangle rouge en haut à droite des cellules) avec des photos à l'intérieur.

Je voudrais que ces 2 opérations soit déclenchées dès lors que la cellule C6 est modifiée.



Option Explicit

Dim fd As Worksheet, Cel As Range
Dim Col&
Dim P As Long

Private Sub Worksheet_Change(ByVal Target As Range)

'Caisson_option
If Target.Address = "$C$6" Then
Application.EnableEvents = False
Set fd = Sheets("Extraction Navision")
Range("B13:B55").ClearContents
On Error GoTo fin
Col = fd.Range("I3:ww3").Find(What:=Target).Column
For Each Cel In fd.Range(fd.Cells(4, Col), fd.Cells(3000, Col))
If Cel.Value <> "" And fd.Cells(Cel.Row, 4) = "Caisson_option" Then
Range("B65000").End(xlUp).Offset(1, 0).Value = fd.Cells(Cel.Row, 1)
End If
Next Cel
End If

fin:
Application.EnableEvents = True
End Sub

Sub evenement()
Application.EnableEvents = True
End Sub


J'espère que vous pourrez m'aider...

David
 

Discussions similaires

Statistiques des forums

Discussions
314 031
Messages
2 104 832
Membres
109 184
dernier inscrit
Harimanitra