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

XL 2019 Affichage dynamique du contenu d'une forme

bramavalos

XLDnaute Nouveau
Bonjour,

Dans ma feuille principale, j'aimerai modifier le texte d'une forme/shape (nommé "Rectangle : coins arrondis 26") suivant une référence (présente dans la cellule CC4) résultant d'une formule (dont les données de la formule su trove dans les cellules BZ4 to CB4).

La macro va chercher dans une autre feuille (P1.1) la référence dans un tableau structuré (colonne 1) puis se réfère au contenu de la cellule en collone 2 (Range(.Cells(Plage.Row - .Row + 1, 2)).

La colonne 2 est une liste de cellule dans le contenu doit etre copier dans la forme (Rectangle : coins arrondis 26). Les contenu de ces cellules se trouve dans une feuille nommé DATA

Actuellement j'utilise une macro qui me permettait d'aller chercher un plage de cellule (B17:F21) et copier cette plage de cellule dans ma feuille principale.

Aujourd'hui, je souhaite juste copier le contenu d'une cellule dans ma forme.

Voici ma macro actuel :

VB:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Valeur As String, Plage As Range

If Not Intersect(Target, Me.Range("$BY$4:$CB$4")) Is Nothing And Target.Count = 1 Then
Valeur = Me.Range("CC4")
With [P1.1].ListObject.DataBodyRange
Set Plage = .Find(Valeur)
If Not Plage Is Nothing Then Me.Range("B17:F21").Value = Worksheets("DATA").Range(.Cells(Plage.Row - .Row + 1, 2)).Value
End With
End If

Pourriez vous m'aider à modifier ma macro ?

Je vous remercie.
 

fanch55

XLDnaute Barbatruc
Bonsoir, tu ne peux pas copier un range de cellules dans un Shape, mais leur contenu oui, séparé par un délimiteur de ton choix par exemple un retour à la ligne.
Je te conseille de donner un nom à ton shape plutôt de lui laisser le nom par défaut qu'excel lui a attribué .
 

bramavalos

XLDnaute Nouveau
Hello, je ne veux pas copier le contenu d'une range de cellule dans ma shape, juste le contenu d'une cellule.

Voici mon code. J'ai essayé de modifie la destination du copier / coller en enlevant la plage de cellule qui devait recevoir les données et en mettant le nom de ma shape mais ca ne fonctionne pas

VB:
Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
Dim Valeur As String, Plage As Range

Dim Valeur As String, Plage As Range

    If Not Intersect(Target, Me.Range("$BY$4:$CB$4")) Is Nothing And Target.Count = 1 Then
        Valeur = Me.Range("CC4")
        With [P1.1].ListObject.DataBodyRange
            Set Plage = .Find(Valeur)
            If Not Plage Is Nothing Then Me.Shapes.Range(Array("Rectangle : coins arrondis 26")).Value = Worksheets("DATA").Range(.Cells(Plage.Row - .Row + 1, 2)).Value
        End With
    End If

End Sub

Pour simplifier, ma référence qui se trouve en CC4 renvoie la macro vers un tableau dans mon onglet P1.1. La macro cherche la référence (dans la colonne 1) et quand elle la trouve, elle va en colonne 2 pour savoir quel cellule elle doit copier (dans l'onglet DATA) et coller son contenu dans ma Shap

As tu une idée de la formulation qui pourrait fonctionner dans ma macro ?
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…