En faisant un clic droit de la souris sur une shape, ouvrir le boite de dialogue du lecteur et choisir une image... celle ci s'insère ensuite dans la forme...c'est très rapide, très simple d'éxécution et très efficace...surtout lorsqu'on est amené à insérer des images dans plusieurs formes...
partie à coller dans Thisworbook
Option Explicit
Private Sub Workbook_Activate()
Initialise
End Sub
Private Sub Workbook_BeforeClose(Cancel As Boolean)
SupprimeControles
End Sub
Private Sub Workbook_Deactivate()
SupprimeControles
End Sub
Private Sub Workbook_Open()
Initialise
End Sub
partie à coller dans une feuille
Option Explicit
' ici c'est pour désactiver le clic droit des cellules
' Cancel = True
' mais c'est pas indispensable...c'est juste pour la démo
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
Cancel = True
End Sub
partie à coller dans un module
Option Explicit
Option Private Module
'Thierry Pourtier
'octobre 03
'MyTag est une chaîne permettant de distinguer tes contrôles
Const MyTag As String = "MnsComnt"
Const Barre As String = "Shapes"
Sub Initialise()
Dim LBar As CommandBar, Ctrl As CommandBarControl
Dim Cel As Range
On Error Resume Next
SupprimeControles
Set LBar = Application.CommandBars(Barre)
For Each Ctrl In LBar.Controls
Ctrl.Visible = False
Next Ctrl
With LBar
End With
With LBar.Controls _
.Add(Type:=msoControlButton, before:=1, temporary:=True)
.Caption = "Racine du lecteur C:"
.OnAction = "GotoRacine"
.Tag = MyTag
End With
End Sub
Sub SupprimeControles()
On Error Resume Next
Application.CommandBars(Barre).Reset
End Sub
Private Sub GotoRacine()
' Vériland Octobre 2003
Dim Image As Variant
On Error Resume Next
ChDir "C:"
Image = Application.GetOpenFilename("Images (*.bmp;*.gif;*.jpg),*.bmp;*.gif;*.jpg")
Selection.ShapeRange.Fill.UserPicture Image
End Sub