Selection.Copy Image_ClipBoard Image1.Picture = LoadPicture(ActiveWorkbook.Path & "\monimage" & ".jpg")
'http://excel.developpez.com/faq/?page=PressePapier Option Explicit Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" _ (ByVal hwnd As Long, ByVal lpOperation As String, _ ByVal lpFile As String, ByVal lpParameters As String, _ ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long Sub Image_ClipBoard() Dim x As Byte Dim Sh As Shape Dim monImage As String 'Compte le nombre d'objet initial dans la feuille x = ActiveSheet.Shapes.Count Application.ScreenUpdating = False ActiveSheet.Range("A1").Select 'Colle le contenu du presse papier dans la feuille de calcul ActiveSheet.Paste 'vérifie si le collage effectué correspond à une image If x = ActiveSheet.Shapes.Count Then Application.ScreenUpdating = True MsgBox "Opération annulée" Exit Sub Else 'Récupère la dernière forme de la feuille Set Sh = ActiveSheet.Shapes(ActiveSheet.Shapes.Count) 'Définit le nom et le lieu de stockage de l'image monImage = ActiveWorkbook.Path & "\monimage" & ".jpg" ' MsgBox "L'image est sauvegardée dans le dossier du classeur." 'Colle l'image dans un graphique With ActiveSheet.ChartObjects.Add(0, 0, Sh.Width, Sh.Height).Chart .Paste 'Sauvegarde l'image du graphique au format jpg .Export monImage, "JPG" End With 'Supprime le graphique et la forme. With ActiveSheet .ChartObjects(ActiveSheet.ChartObjects.Count).Delete .Shapes(ActiveSheet.Shapes.Count).Delete End With Application.ScreenUpdating = True '------------------------------------------------------------- 'Option pour les utilisateurs de Windows XP : 'visualisation de l'image créée, avec l'apercu images_telecopies Windows 'testé avec Excel2002 et WinXP 'ShellExecute 0, "open", "rundll32.exe", _ ' "C:\WINDOWS\System32\shimgvw.dll,ImageView_Fullscreen " & monImage, 0, 1 End If End Sub
Private Sub GmeBox_Click() 'Changement de choix dans la Combo Application.ScreenUpdating = False 'Déclaration pour le nom de l'image à reprendre par .Picture Dim iGme ' As quoi ? '=================== 'Report du choix dans la feuille ? 'Dim Gme As String 'Gme = GmeBox.value 'ActiveCell.value = Gme 'Nom de l'image dans userform Images (Nom = "Image" + choix fait avec "." remplacé par "_") 'Par exemple choix = "0.1" devient "Image0_1" : c'est le nom de l'image (iGme) à récupérer dans la Form pour le choix fait iGme = "Image" & Replace(GmeBox.value, ".", "_") 'iGme : Membre ou méthode de données introuvable GmeSlide.Picture = Images.iGme.Picture End Sub
GmeSlide.picture = images.controls(iGme).picture
Private Sub UserForm_Initialize() Dim i As Single, mestrucs(6, 2) ComboBox1.ColumnCount = 2 mestrucs(0, 0) "0.1": mestrucs(0, 1) "photo_machine" mestrucs(1, 0) "0.2": mestrucs(1, 1) "photo_bidule" mestrucs(2, 0) "0.9": mestrucs(2, 1) "photo_grue" ComboBox1.List() = mestrucs End Sub Private Sub ComboBox1_Click() Dim monimage As String monimage = ComboBox1.List(ComboBox1.ListIndex, 1) MsgBox "tu viens de cliquer sur l'article " & ComboBox1.List(ComboBox1.ListIndex) & " qui correspond à l'image " & monimage ComboBox1.Text = monimage ' il te suffit alors de prendre la propriété Picture de Images.Controls(monimage) 'GmeSlide.picture = images.controls(monimage).picture End Sub
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre questionSub VisuGme() 'Par Userform Images Application.ScreenUpdating = False Dim Gme, Grw, GmeVent, ListeGamme Gme = ActiveCell.value Grw = ActiveCell.Row 'Reprise du Modèle de Ventilateur VoirGamme.ModelVT.Caption = Sheets("Mesures").Range("G" & Grw - 3).value 'Reprise de l'image dans userform Images iGme = "Image" & Replace(Gme, ",", "_") If Gme = "C2" _ And VoirGamme.ModelVT.Caption = "S2000" _ Then iGme = "ImageC2_2" If Gme = "C2" _ And VoirGamme.ModelVT.Caption = "S3000" _ Then iGme = "ImageC2_3" VoirGamme.GmeSlide.Picture = Images.Controls(iGme).Picture 'Reprise de la valeur VoirGamme.GmeBox.value = Gme 'Reprise liste des Gammes disponible pour le Ventilateur choisi GmeVent = Sheets("Mesures").Range("G" & Grw).value ListeGamme = ThisWorkbook.Sheets("Data").Range(GmeVent).Address(external:=True) VoirGamme.GmeBox.RowSource = ListeGamme VoirGamme.Show End Sub
Private Sub UserForm_Initialize() GmeBox.value = ActiveCell.value End Sub Private Sub RepGmeBox_Click() 'Par répertoire de fichiers Application.ScreenUpdating = False Dim Gme As String Gme = GmeBox.value ActiveCell.value = Gme If Dir("C:\InfiltroPass\Images" & Gme & ".jpg") <> "" Then GmeSlide.Picture = LoadPicture("C:\InfiltroPass\Images" & Gme & ".jpg") End If End Sub Private Sub GmeBox_Click() 'Par Userform Images Application.ScreenUpdating = False Dim Gme As String Dim iGme As String 'Report dans la cellule Gme = GmeBox.value ActiveCell.value = Gme 'Reprise de l'image dans userform Images iGme = "Image" & Replace(GmeBox.value, ",", "_") If Gme = "C2" _ And VoirGamme.ModelVT.Caption = "S2000" _ Then iGme = "ImageC2_2" If Gme = "C2" _ And VoirGamme.ModelVT.Caption = "S3000" _ Then iGme = "ImageC2_3" GmeSlide.Picture = Images.Controls(iGme).Picture End Sub