![]() |
|
Forum
|
|
|||||||
![]() |
![]() |
|
|
LinkBack | Outils de la discussion |
|
|
#1 (permalink) |
|
XLDnaute Nouveau
Date d'inscription: mars 2007
Messages: 19
|
Bonjour,
Quelqu'un pourrait il m'aider à modifier cette macro. Actuellement, celle-ci me permet d'afficher dans les cellules de la colonne B les images dont les noms figurent dans la colonne A. Ces images se doivent d'être contenues dans le même répertoire que le fichier excel. J'aimerais simplement la modifier et faire que les images s'affichent au format de la cellule B en gardant les proportions. C'est au maximum la largeur de la cellule et au maximum la hauteur de la cellule. Mais je me repete les proportions se doivent d'être respectées. Voici la macro actuelle : Private Sub Worksheet_Change(ByVal Target As Excel.Range) Dim Val As String Dim MyCell As Range Dim MyPicture As Picture Dim Pict Dim a As Long On Error GoTo errorhandler Application.ScreenUpdating = False Val = Target.Value With Application.FileSearch .NewSearch .Filename = ".jpg" .LookIn = ThisWorkbook.Path .SearchSubFolders = False .Execute msoSortByFileName, msoSortOrderAscending If .Execute > 0 Then Set MyCell = Target.Offset(0, 1) MyCell.Select For Each Pict In ActiveSheet.DrawingObjects ' supprimer ancienne image dans cellule If Pict.Left = MyCell.Left + (MyCell.Width - 50) / 2 And Pict.Top = MyCell.Top + (MyCell.Height - 50) / 2 Then Pict.Delete Next Set MyPicture = ActiveSheet.Pictures.Insert(ThisWorkbook.Path & "\" & Val & ".jpg") With MyPicture.ShapeRange '.LockAspectRatio = msoFalse .Height = 55 '.Width = 55 .Top = MyCell.Top + (MyCell.Height - 50) / 2 .Left = MyCell.Left + (MyCell.Width - 50) / 2 End With MyCell.Select MsgBox Pict.Left End If End With Application.ScreenUpdating = True Exit Sub errorhandler: Application.ScreenUpdating = True Exit Sub End Sub |
|
|
|
| ANNONCES | |||
|
|
|
|
#2 (permalink) |
|
XLDnaute Accro
Date d'inscription: mai 2007
Localisation: Challans
Version Excel : Excel XP (PC)
Messages: 1 305
|
Avec ceci ça fonctionne chez moi:
Code:
With MyPicture.ShapeRange
.LockAspectRatio = msoTrue
.Height = MaCell.RowHeight
End With
__________________
vive la charte XLD: http://www.excel-downloads.com/forum...de-poster.html Ye He Mad! |
|
|
|
|
|
#3 (permalink) |
|
XLDnaute Nouveau
Date d'inscription: mars 2007
Messages: 19
|
Merci HASCO,
Cette solution est bonne mais pose un gros problème lorsque on image est plus large que haute. En effet, dans ce cas précis, mon image sort complètement de la cellule sur le plan horizontale. Comment faire alors pour que Width prenne l'avantage sur Height. Merci |
|
|
|
|
|
#4 (permalink) |
|
XLDnaute Accro
Date d'inscription: mai 2007
Localisation: Challans
Version Excel : Excel XP (PC)
Messages: 1 305
|
Et avec ceci:
Code:
Set MyPicture = ActiveSheet.Pictures.Insert(ThisWorkbook.Path & "\checkGreen.gif")
With MyPicture.ShapeRange
.LockAspectRatio = msoTrue
If .Height > .Width Then
.Width = MyCell.ColumnWidth
Else
.Height = MyCell.RowHeight
End If
End With
__________________
vive la charte XLD: http://www.excel-downloads.com/forum...de-poster.html Ye He Mad! |
|
|
|
|
|
#5 (permalink) |
|
XLDnaute Nouveau
Date d'inscription: mars 2007
Messages: 19
|
Merci,
Je regrette mais ça ne fonctionne pas. La verticale correspond bien à la hauteur de cellule mais pour ces photos avec une grande hauteur horizontale (on va dire largeur), elles sortent toujours de ma cellule. Je pensais justement à ce genre d'écriture. Je pense que vous n'etes pas loin de la vérité Merci |
|
|
|
|
|
#6 (permalink) |
|
XLDnaute Accro
Date d'inscription: mai 2007
Localisation: Challans
Version Excel : Excel XP (PC)
Messages: 1 305
|
Re,
Je pense que cela le fera. Code:
Dim ratio as single
With MyPicture.ShapeRange
'.LockAspectRatio = msoTrue
If .Height > .Width Then
ratio = .Width / .Height
.Height = .Height * ratio
.Height = MyCell.RowHeight
Else
ratio = .Height / .Width
.Width = .widht * ratio
.Width = MyCell.ColumnWidth
End If
End With
End Sub
__________________
vive la charte XLD: http://www.excel-downloads.com/forum...de-poster.html Ye He Mad! |
|
|
|
|
|
#7 (permalink) |
|
XLDnaute Nouveau
Date d'inscription: mars 2007
Messages: 19
|
Bonjour Hasco,
Désolé pour le retard... Merci pour votre travail mais je suis au regret de vous dire que ça ne marche pas. Qu'en est il chez vous ? L'avez vous testé ? Merci encore |
|
|
|
|
|
#8 (permalink) |
|
XLDnaute Accro
Date d'inscription: mai 2007
Localisation: Challans
Version Excel : Excel XP (PC)
Messages: 1 305
|
Bonsoir,
Oui je l'ai tester avec des petite et grandes images. sinon je ne l'aurai pas envoyé. Mais pour plus de sûreté je vais recommencer. A tout à l'heure
__________________
vive la charte XLD: http://www.excel-downloads.com/forum...de-poster.html Ye He Mad! |
|
|
|
|
|
#9 (permalink) |
|
XLDnaute Barbatruc
Date d'inscription: novembre 2006
Localisation: Saint etienne
Version Excel : Excel XP (PC)
Messages: 3 750
|
Bonjour à tous
Code:
Set MyPicture = ActiveSheet.Pictures.Insert(ThisWorkbook.Path & "\" & Val & ".jpg")
With MyPicture.ShapeRange
.LockAspectRatio = msotrue
.Top = MyCell.Top
.Left = MyCell.Left
if mycell.height> mycell.width then
.Height = mycell.height
else
.Width = mycell.width
end if
end with
une seule valeur est utile, avec .lockaspectratio = msotrue, le rapport hauteur, largeur est gardé
__________________
salutations Wilfried Plus j'apprends, plus je sais....... plus je sais que je ne sais rien. Venez visiter mon zoo : Cliquez ici il est si petit, un petit click quotidien merci |
|
|
|
|
|
#10 (permalink) |
|
XLDnaute Accro
Date d'inscription: mai 2007
Localisation: Challans
Version Excel : Excel XP (PC)
Messages: 1 305
|
bonsoir,
je confirme que cela fonction correctement chez moi. Aller bonne soirée à tous, je vais manger ![]()
__________________
vive la charte XLD: http://www.excel-downloads.com/forum...de-poster.html Ye He Mad! |
|
|
|
|
|
#11 (permalink) |
|
XLDnaute Nouveau
Date d'inscription: mars 2007
Messages: 19
|
Bonsoir à vous 2,
Merci beaucoup ça marche... Désormais juste une dernière aide pour centrer cette image dans la cellule... Merci encore, c'est parfait... |
|
|
|
| ANNONCES | |
![]() |
| Liens sociaux |
| Outils de la discussion | |
|
|
Discussions similaires
|
||||
| Discussion | Auteur | Forum | Réponses | Dernier message |
| Aide pour un novice / Pb intégration images | joart | Forum spécial EXCEL 2007 | 2 | 11/02/2008 10h54 |
| Nul en VBA, besoin d'une petite aide pour modifier | Alex | Forum Excel | 3 | 30/08/2005 08h48 |
| aide pour macro | MARION | Forum Excel Downloads - Archives | 10 | 12/09/2004 08h07 |
| aide pour modifier les sources d'un graphique | Bebe-Flipper | Forum Excel Downloads - Archives | 4 | 20/03/2004 17h13 |
| aide pour macro | j marc | Forum Excel Downloads - Archives | 0 | 01/10/2003 18h29 |