Sélectionner un dossier, puis une photo et ouvrir avec la visionneuse Windows

degap05

XLDnaute Impliqué
Bonjour,

J'aimerais avec votre aide compléter la macro du fichier joint.
Celle-ci permet d'afficher une photo avec la visionneuse en indiquant son chemin.
D'autre part je sais choisir un fichier dans un dossier.
Ce que je ne sais pas faire c'est sélectionner un fichier (.jpg) dans un dossier puis continuer la macro d'affichage.

Merci d'avance.
A+
 

Pièces jointes

  • Ouvrir visionneuse .xls
    22 KB · Affichages: 142
  • Ouvrir visionneuse .xls
    22 KB · Affichages: 157
  • Ouvrir visionneuse .xls
    22 KB · Affichages: 160

tototiti2008

XLDnaute Barbatruc
Re : Sélectionner un dossier, puis une photo et ouvrir avec la visionneuse Windows

Bonjour degap,

peut-être comme ça

Code:
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 afficherImage_ApercuWindows()
    'Testé avec Excel2002 et WinXP
    'force l'affichage de l'image avec "L'aperçu des images et des télécopies windows".
    Dim Img As String
    'choix du dossier
    With Application.FileDialog(msoFileDialogFilePicker)
        .AllowMultiSelect = False
        .Filters.Clear
        .Filters.Add "Image JPEG", "*.jpg"
        If .Show <> 0 Then
            Img = .SelectedItems(1)
        Else
            Exit Sub
        End If
    End With
    
    'puis ouvrir l'image avec la visionneuse
    
    ShellExecute 0, "open", "rundll32.exe", _
        "C:\WINDOWS\System32\shimgvw.dll,ImageView_Fullscreen " & Img, 0, 1
End Sub

De mémoire on devrait pouvoir le faire avec un Shell simple plutôt qu'un ShellExecute, mais je n'ai pas d'exemple sous la main
 

degap05

XLDnaute Impliqué
Re : Sélectionner un dossier, puis une photo et ouvrir avec la visionneuse Windows

Bonjour Tototiti2008,

Merci de ta réponse qui fonctionne bien.
Pourrais-tu inclure la notion de chemin.
En effet je travaille sur un réseau d'entreprise avec des chemins très longs.
Il est donc important de "présélectionner" un lecteur, puis un dossier.

Merci encore.
A+
 

YANN-56

XLDnaute Barbatruc
Re : Sélectionner un dossier, puis une photo et ouvrir avec la visionneuse Windows

Bonsoir dgap05, totototi:), et à ceux qui passeront par ici,

Je ne suis pas certain d'apporter grand-chose au sujet,
mais j'ai pensé que vous pourriez partir de cette base que je vous propose:

Je l'ai laissé tomber, et ce n'est donc qu'un extrait d'une appli pour laquelle je n'ai plus besoin de cette méthode.

Peut-être pourrez-vous en tirer quelques trucs.

Si besoin, je pourrais peaufiner, mais le code de tototiti est à regarder en premier lieu.

Un combiné des deux pourrait être intéressant.

Amicalement,

Yann
 

Pièces jointes

  • CLICHE_2.xls
    44 KB · Affichages: 166
  • CLICHE_2.xls
    44 KB · Affichages: 183
  • CLICHE_2.xls
    44 KB · Affichages: 189

degap05

XLDnaute Impliqué
Re : Sélectionner un dossier, puis une photo et ouvrir avec la visionneuse Windows

Bonjour Tototiti2008,
Fonctionnement parfait!!!
Bien que cela soit indiqué "ImageView_Fullscreen", la visionneuse ne s'ouvre pas en plein écran.
As-tu une idée ?
Merci.
A+
 

degap05

XLDnaute Impliqué
Re : Sélectionner un dossier, puis une photo et ouvrir avec la visionneuse Windows

Tototiti,

Je n'arrive pas à caser: SW_MAXIMIZE dans: ShellExecute 0, "open", "rundll32.exe"
J'ai essayé plusieurs possibilités, mais sans résultat !!
 

YANN-56

XLDnaute Barbatruc
Re : Sélectionner un dossier, puis une photo et ouvrir avec la visionneuse Windows

Bonjour degap, tototiti, et à ceux qui passeront par ici,

J'avais aussi ceci dans mon code:
Code:
ShellExecute 0, "open", "rundll32.exe", _
        "C:\WINDOWS\System32\shimgvw.dll,ImageView_Fullscreen " & Img, 0, 3

J'ai testé avec " & Img, 0, 1", et à ma surprise: ouverture plein, écran!

La conclusion est, après tests:
Quand on a ouvert une Image quel qu'elle soit en mode réduit: Wind garde en mémoire celui-ci.
Idem quand on a agrandi pour une visualisation "Plein écran"

Ayant copié ce code grâce aux aides reçues ici, je n'avais pas approfondi l'utilité du "3"
Ce n'est que par hasard que je n'ai pas eu de problème; car ayant toujours agrandi l'image.

Merci donc à tototiti :):):), j'ai encore appris une chose importante.

Ce qui conforte le bien fondé de ma signature en bleu.

Amicalement, à vous deux, et au plaisir,

Yann
 

degap05

XLDnaute Impliqué
Re : Sélectionner un dossier, puis une photo et ouvrir avec la visionneuse Windows

Bonsoir,

Je reviens vers vous pour une variante.
Pour des raisons de fonctionnement interne, j'aimerais placer le choix du dossier dans la feuille et gérer l'affichage dans un module, comme dans le fichier joint.
Merci
A+
 

Pièces jointes

  • Ouvrir visionneuse .xls
    29 KB · Affichages: 112
  • Ouvrir visionneuse .xls
    29 KB · Affichages: 115
  • Ouvrir visionneuse .xls
    29 KB · Affichages: 128

tototiti2008

XLDnaute Barbatruc
Re : Sélectionner un dossier, puis une photo et ouvrir avec la visionneuse Windows

Re,

essaye ça

dans la feuille

Private Sub CommandButton1_Click()
choix
End Sub



Private Sub choix()
Dim Img As String
'choix du dossier
With Application.FileDialog(msoFileDialogFilePicker)
.InitialFileName = "E:\.......\"
.AllowMultiSelect = False
.Filters.Clear
.Filters.Add "Image JPEG", "*.jpg"
If .Show <> 0 Then
Img = .SelectedItems(1)
Else
Exit Sub
End If
End With

'puis ouvrir l'image avec la visionneuse
afficherImage_ApercuWindows Img

End Sub

Dans le Module

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 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
 

YANN-56

XLDnaute Barbatruc
Re : Sélectionner un dossier, puis une photo et ouvrir avec la visionneuse Windows

Re

Pour des raisons de fonctionnement interne, j'aimerais placer le choix du dossier dans la feuille

Ceci m'amène à te poser deux questions:

- Es-tu en réseau?
- Le Dossier cible est-il toujours le même?

A noter que dans le cas d'un "Oui" à la première;
et que le Dossier soit sur le serveur: "E:\.......\" serait, sauf erreur : "E:\\.......\"

Amicalement,

Yann
 

Discussions similaires

Réponses
1
Affichages
292
Compte Supprimé 979
C
Réponses
15
Affichages
840

Statistiques des forums

Discussions
312 174
Messages
2 085 942
Membres
103 053
dernier inscrit
Beubax