Bonjour à tous,
Système d'exploitation : Windows 7
J'aimerais trouver un code vba qui me permettrait d'afficher la photo d'un article à l'aide de la visionneuse windows et cela en appuyant sur un bouton de commande.
Pour ce faire, mon fichier Excel ainsi que les photos d'articles se trouvent dans le même répertoire, le fichier à un nombre variable de feuilles (suivant son utilisation), une feuille et la cellule "B2" de celle-ci se nomment comme l'article. Donc, la fonction doit pouvoir être dupliquée lors de l'ajout d'une nouvelle feuille.
Voici mon code :
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 afficherphoto()
Dim Chemin As String
Dim NomImage As String
Dim Image As String
Chemin = "C:\Users\FID166\Documents\Prg HT\" & Range("B2")
NomImage = Range("B2")
Image = ".jpg"
'choix du dossier
With Application.FileDialog(msoFileDialogFilePicker)
.InitialFileName = Chemin
.AllowMultiSelect = False
.Filters.Clear
.Filters.Add "Image JPEG", "*.jpg"
If .Show <> 0 Then
Image = .SelectedItems(1)
Else
Exit Sub
End If
End With
'puis ouvrir l'image avec la visionneuse
afficherImage_ApercuWindows Image
End Sub
Sub afficherImage_ApercuWindows(Img As String)
'puis ouvrir l'image sélectionnée par la macro en feuille 1, avec la visionneuse
ShellExecute 0, "open", "rundll32.exe", _
"C:\WINDOWS\System32\shimgvw.dll,ImageView_Fullscreen " & Img, 0, 3
End Sub
Ce code est inséré dans un module du "VBAProject et celui qui suit dans un module de la feuille 1
Private Sub photo()
Dim Chemin As String
Dim NomImage As String
Dim Image As String
Chemin = "C:\Users\FID166\Documents\Prg HT\" & Range("B2")
NomImage = Range("B2")
Image = ".jpg"
'choix du dossier
With Application.FileDialog(msoFileDialogFilePicker)
.InitialFileName = Chemin
.AllowMultiSelect = False
.Filters.Clear
.Filters.Add "Image JPEG", "*.jpg"
If .Show <> 0 Then
Image = .SelectedItems(1)
Else
Exit Sub
End If
End With
'puis ouvrir l'image avec la visionneuse
afficherImage_ApercuWindows Image
End Sub
Private Sub Worksheet_Activate()
photo
End Sub
Ce code fonctionne, la boîte de dialogue s'ouvre et me propose bien le "nom de l'article" à ouvrir, je confirme par "OK" et la visionneuse ouvre la photo, cependant j'aimerais que la photo s'ouvre automatiquement sans devoir valider par "OK"
Merci pour votre aide !
Système d'exploitation : Windows 7
J'aimerais trouver un code vba qui me permettrait d'afficher la photo d'un article à l'aide de la visionneuse windows et cela en appuyant sur un bouton de commande.
Pour ce faire, mon fichier Excel ainsi que les photos d'articles se trouvent dans le même répertoire, le fichier à un nombre variable de feuilles (suivant son utilisation), une feuille et la cellule "B2" de celle-ci se nomment comme l'article. Donc, la fonction doit pouvoir être dupliquée lors de l'ajout d'une nouvelle feuille.
Voici mon code :
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 afficherphoto()
Dim Chemin As String
Dim NomImage As String
Dim Image As String
Chemin = "C:\Users\FID166\Documents\Prg HT\" & Range("B2")
NomImage = Range("B2")
Image = ".jpg"
'choix du dossier
With Application.FileDialog(msoFileDialogFilePicker)
.InitialFileName = Chemin
.AllowMultiSelect = False
.Filters.Clear
.Filters.Add "Image JPEG", "*.jpg"
If .Show <> 0 Then
Image = .SelectedItems(1)
Else
Exit Sub
End If
End With
'puis ouvrir l'image avec la visionneuse
afficherImage_ApercuWindows Image
End Sub
Sub afficherImage_ApercuWindows(Img As String)
'puis ouvrir l'image sélectionnée par la macro en feuille 1, avec la visionneuse
ShellExecute 0, "open", "rundll32.exe", _
"C:\WINDOWS\System32\shimgvw.dll,ImageView_Fullscreen " & Img, 0, 3
End Sub
Ce code est inséré dans un module du "VBAProject et celui qui suit dans un module de la feuille 1
Private Sub photo()
Dim Chemin As String
Dim NomImage As String
Dim Image As String
Chemin = "C:\Users\FID166\Documents\Prg HT\" & Range("B2")
NomImage = Range("B2")
Image = ".jpg"
'choix du dossier
With Application.FileDialog(msoFileDialogFilePicker)
.InitialFileName = Chemin
.AllowMultiSelect = False
.Filters.Clear
.Filters.Add "Image JPEG", "*.jpg"
If .Show <> 0 Then
Image = .SelectedItems(1)
Else
Exit Sub
End If
End With
'puis ouvrir l'image avec la visionneuse
afficherImage_ApercuWindows Image
End Sub
Private Sub Worksheet_Activate()
photo
End Sub
Ce code fonctionne, la boîte de dialogue s'ouvre et me propose bien le "nom de l'article" à ouvrir, je confirme par "OK" et la visionneuse ouvre la photo, cependant j'aimerais que la photo s'ouvre automatiquement sans devoir valider par "OK"
Merci pour votre aide !