Bonjour à tous
Dans le cadre d'une application multi-User, je souhaiter intégrer des images dans des plages définie.
J'ai donc fait une programmation qui limite l'image en hauteur dans une plage correspondante à une image en mode paysage.
Le problème est que un petit malin a souhaiter importer une image beaucoup plus large que la normale
Ce qui fait que l'image dépasse de chaque coté de la plage défini.
La programmation:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 Sub ImageShearche1() Call N_Protect Dim ImageFile As FileDialog Set ImageFile = Application.FileDialog(msoFileDialogFilePicker) With ImageFile .Title = "Sélectionner une image" .Filters.Add "Toutes les images", "*.JPG, *.gif, *.PNG,1" If .Show <> -1 Then GoTo Vide End If Sheets("Situation").Range("Z6") = .SelectedItems(1) End With Call AfficherImage1 '________ Vide: Call Protect End Sub
Puis :
Je souhaiterais donc ajouter une condition permettant de définir si l'image est en mode paysage ou portrait
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37 Sub AfficherImage1() '---------- Dim ImageLien As String With Sheets("Situation") On Error Resume Next .Shapes("monImage1").Delete '________ On Error GoTo 0 ImageLien = Range("Z6") '------------- If ImageLien = Empty Then Exit Sub End If With .Pictures.Insert(ImageLien) With .ShapeRange .Name = "MonImage1" '________ .LockAspectRatio = msoTrue 'Taille de l'image .Height = Range("B8:G24").Height - 4 '--------- '.Width = Range("B8:G24").Width - 4 End With End With With .Shapes("MonImage1") '__________ .Left = Sheets("Situation").Range("B8").Left .Top = Sheets("Situation").Range("B8").Top .IncrementLeft (Range("B8:G24").Width - .Width) / 2 .IncrementTop (Range("B8:G24").Height - .Height) / 2 End With End With End Sub
me permettant d'utiliser soi:
soi:
Code : Sélectionner tout - Visualiser dans une fenêtre à part Height = Range("B8:G24").Height - 4
Si vous aviez un petit bout de code me permettant d'avancer, ce serait super
Code : Sélectionner tout - Visualiser dans une fenêtre à part .Width = Range("B8:G24").Width - 4
En vous remerciant d'avance, Cordialement Eric
Partager