Image dans une cellule

  • Initiateur de la discussion Initiateur de la discussion GBB
  • 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 !

G

GBB

Guest
Bonjour,

Je suis nouveau sur ce forum et je voudrais savoir si une cellule contient une image ou un dessin, ou inversement si l'on connait le nom d'un dessin de savoir dans quelle cellule il se trouve.

J'ai une macro qui recopie des cellules d'une feuille à une autre (vierge au départ) et qui adapte automatiquement la taille de la cellule copié à son contenu. Sa marche très bien avec les textes, mais pas du tout avec un dessin.

Par avance merci.

Salutations
 
Re : Image dans une cellule

bonjour


ou inversement si l'on connait le nom d'un dessin de savoir dans quelle cellule il se trouve.

Tu peux utiliser les propriétés TopLeftCell et BottomRightCell

Code:
Sub PositionFormeAutomatique()
    Dim Shp As Shape
    
    'Spécifie la forme dans la Feuil1
    Set Shp = Feuil1.Shapes("NomForme")
    MsgBox Shp.TopLeftCell.Address & ":" & Shp.BottomRightCell.Address
End Sub


Bon après midi
MichelXld
 
Re : Image dans une cellule

OK merci ca répond tout à fait à mon problème

J' ai rajouté à ton code une boucle while qui me permet de faire rentre le dessin dans une seule ligne

Code:
Sub PositionFormeAutomatique()
    Dim Shp As Shape
    Dim Sh As Shape
    Dim hauteur_ligne As Integer
    
' on recherche tous les dessins présent dans la feuille
For Each Sh In Worksheets("DOC").Shapes
    If Sh.Type = msoPicture Then
        Nom_dessin = Sh.Name
        'on spécifie la forme dans la feuille et on trouve sur quelles cellules il s'etend
        Set Shp = ActiveSheet.Shapes(Nom_dessin)
        Cellule_debut_dessin = Shp.TopLeftCell.Address
        Cellule_fin_dessin = Shp.BottomRightCell.Address
        ' On augmente la hauteur de la ligne jusqu'à ce que le dessin rentre dans une seule
        While Cellule_debut_dessin <> Cellule_fin_dessin
                Range(Cellule_debut_dessin).Select
                hauteur_ligne = ActiveCell.Height
                Range(Cellule_debut_dessin).RowHeight = hauteur_ligne + 10
                Set Shp = ActiveSheet.Shapes(Nom_dessin)
                Cellule_debut_dessin = Shp.TopLeftCell.Address
                Cellule_fin_dessin = Shp.BottomRightCell.Address
        Wend
    End If
Next

End Sub

Salutatons

GBB
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
5
Affichages
866
Retour