Bonjour à tous, chère experts en VBA, je suis ultra novice.
J'ai des soucis pour pour l'implantation d'image. Disons que 95% des Images de mon Document sont au format paysage et 5% au format Portrait.
Jusque là pas de problème je sais lesquels sont censés être à ce format et j'ai ajusté les tailles.
Seulement voilà parfois j'aurais des format Portrait "Non attendu" et là c"est le drame, comme j'ai défini les dimensions.
Critère 1: Je souhaitais insérer plusieurs photos bien défini à des emplacement bien précis (environ 40aine) avec un seul bouton dans mon fichier excel et sous plusieurs onglets.
Du coup je renomme mes photos avec le bon nom avant de lancer la macro.
J'ai fais le choix d'utiliser un chemin relatif car ce fichier excel est dupliqué dans chaque affaire que je traite avec son dossier photo (toujours au même nom quelque soit l'affaire). Je pensais que ça m'éviterais de devoir m'amuser à retaper le chemin dans le code pour chaque dossier. (Et un un autre collaborateur doit pouvoir utiliser le fichier). Je ne sais pas si c'était un bon choix.... vis à vis du code. (peut être qu'amener le chemin du dossier photo dans une case pourrait régler tous mes problèmes?)
Critère2: Je voulais pouvoir supprimer les photos précédentes à chaque fois qu'on appui sur le bouton d'insertion des photos. Dans le cas de modification à apporter ou un rechargement du fait d'un mauvais nom d'image.
Je n'arrive pas à intégrer simplement le .LockAspectRatio = msoTrue dans mon code, ça ne fonctionne pas.
Je risque d'avoir un autre problème ensuite comme les photos ne sont pas positionnées dans des cellules défini mais sur la feuille, c'est que celle en paysage au lieu de Portrait se mettent mal.
ce point me paraissant compliqué, j'ai voulu revoir tout le code pour insérer les photos dans des cellules, pour pouvoir les centrer et conserver le ratio, quelle soit en paysage ou en portrait mais ça ne fonctionne pas non plus.
Voici le code utilisé grâce à des Tuto, pour l'intégration d'une photo, je l'ai dupliqué pour les 40 photos avec les bonnes positions de chacune.
Si une âme sensible pouvait m'aider, peut être qu'il ne faut pas grand chose.... ou alors je dois tout revoir
J'ai des soucis pour pour l'implantation d'image. Disons que 95% des Images de mon Document sont au format paysage et 5% au format Portrait.
Jusque là pas de problème je sais lesquels sont censés être à ce format et j'ai ajusté les tailles.
Seulement voilà parfois j'aurais des format Portrait "Non attendu" et là c"est le drame, comme j'ai défini les dimensions.
Critère 1: Je souhaitais insérer plusieurs photos bien défini à des emplacement bien précis (environ 40aine) avec un seul bouton dans mon fichier excel et sous plusieurs onglets.
Du coup je renomme mes photos avec le bon nom avant de lancer la macro.
J'ai fais le choix d'utiliser un chemin relatif car ce fichier excel est dupliqué dans chaque affaire que je traite avec son dossier photo (toujours au même nom quelque soit l'affaire). Je pensais que ça m'éviterais de devoir m'amuser à retaper le chemin dans le code pour chaque dossier. (Et un un autre collaborateur doit pouvoir utiliser le fichier). Je ne sais pas si c'était un bon choix.... vis à vis du code. (peut être qu'amener le chemin du dossier photo dans une case pourrait régler tous mes problèmes?)
Critère2: Je voulais pouvoir supprimer les photos précédentes à chaque fois qu'on appui sur le bouton d'insertion des photos. Dans le cas de modification à apporter ou un rechargement du fait d'un mauvais nom d'image.
Je n'arrive pas à intégrer simplement le .LockAspectRatio = msoTrue dans mon code, ça ne fonctionne pas.
Je risque d'avoir un autre problème ensuite comme les photos ne sont pas positionnées dans des cellules défini mais sur la feuille, c'est que celle en paysage au lieu de Portrait se mettent mal.
ce point me paraissant compliqué, j'ai voulu revoir tout le code pour insérer les photos dans des cellules, pour pouvoir les centrer et conserver le ratio, quelle soit en paysage ou en portrait mais ça ne fonctionne pas non plus.
Voici le code utilisé grâce à des Tuto, pour l'intégration d'une photo, je l'ai dupliqué pour les 40 photos avec les bonnes positions de chacune.
VB:
Sub IntegrationImage()
Sub IntegrationImage()
'Déclaration des variables
Dim chemin As String
Dim NomImage As String
Dim image As String
ThisWorkbook.Worksheets("PDG").Select
'Suppression des images précédente de la feuille
Dim xPicRg As Range
Dim xPic As Picture
Dim xRg As Range
Application.ScreenUpdating = False
Set xRg = Range("A24:AG62")
For Each xPic In ActiveSheet.Pictures
Set xPicRg = Range(xPic.TopLeftCell.Address & ":" & xPic.BottomRightCell.Address)
If Not Intersect(xRg, xPicRg) Is Nothing Then xPic.Delete
Next
Application.ScreenUpdating = True
'Affectation des variables PHOTO AGENCE
chemin = ThisWorkbook.Path & "\2-Photos visite\"
NomImage = Range("D25")
image = ".jpg"
Range("D25").Value = NomImage
Sheets("PDG").Shapes.AddPicture filename:=chemin & NomImage & image, linktofile:=msoFalse, savewithdocument:=msoTrue, Left:=55, Top:=298, Width:=360, Height:=270
Si une âme sensible pouvait m'aider, peut être qu'il ne faut pas grand chose.... ou alors je dois tout revoir