XL 2010 Modifier les options de l'explorateur Windows

jmh1

XLDnaute Occasionnel
Bonjour à tous,

J'aimerai savoir si il existe du code pour modifier les options de l'explorateur Windows.

Je voudrai par un code pouvoir décocher l'option "Masquer les extensions des fichiers dont le type est connu"

Merci pour votre aide.
 

moimême62

XLDnaute Nouveau
Bonjour,
Je crois savoir ce que tu veux, tu ouvres explorateur de document puis tu vas dans "Outils" dans la barre des menu "Options des Dossiers" et tu sélectionne le pavé "Affichage" et tu fais dérouler le menu jusqu'à trouver la ligne suivante"Masquer les extensions des fichiers dont le type est connu" tu coche la case et voila.
Tu peux faire un essai pour voir.
B.A
 

jmh1

XLDnaute Occasionnel
Bonjour à tous,

je sais le faire en passant par l'explorateur mais moi je voudrai que cette procédure se fasse via un code VBA.

J'ai une routine qui tourne en réseau pour insérer des images dans un USF et quand l'option de masquage des extensions de fichier est active, la routine ne fonctionne pas.

Aussi, je voudrai au début de mon code pouvoir l'activer et que ainsi elle fonctionne sur tous les postes.

Merci
 

STephane

XLDnaute Occasionnel
Hello

Oui c'est possible

VB:
Dim oShell, regValue

Const RegChain$ = "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced\HideFileExt"
Set oShell = CreateObject("WScript.Shell")
regValue = oShell.RegRead(RegChain)

If regValue = 1 Then
    MsgBox "Extensions masquées"
   
    '# pour décocher
    oShell.RegWrite RegChain, 0, "REG_DWORD"
   
Else
    oShell.RegWrite RegChain, 1, "REG_DWORD"
    MsgBox "Toutes extensions affichées"
End If
 

Staple1600

XLDnaute Barbatruc
Bonsoir le fil,

Possible, oui, mais je réitère ma question: quel rapport avec Excel ?

STephane:
Pas de message de prudence en préambule ?
(Ton script WSH touche la registry)

jmh1
J'ai une routine qui tourne en réseau pour insérer des images dans un USF
On peut voir ta routine, stp?
(pour essayer de reproduire le phénomène sur notre propre réseau)
 

jmh1

XLDnaute Occasionnel
Bonjour STephane

Ton code ne change pas l'affichage dans windows ?

Le code détecte bien si les extensions sont masquées ou non mais ne change pas la coche de la case !!

aurai-je raté quelque chose dans ton code (je l'ai copié et collé dans une simple procédure) ?

Merci pour ton aide
 

Staple1600

XLDnaute Barbatruc
Bonsoir à toi aussi jmh1...:rolleyes:

Tu n'as pas vu le message#6?

PS: Selon la source, certains disent qu'il faut tuer le processus explorer.exe puis relancer l'explorer pour que la modification s'applique.
Mais quid des utilisateurs sur les autres postes?

EDITION: Puisque les PC sont réseau, il faut que soit activé l'accès à distance de la base de registre.
(En l'état le script de STephane traite uniquement le PC local
(celui sur lequel ouverte la session Windows sur lequel est ton fichier Excel))
 
Dernière édition:

jmh1

XLDnaute Occasionnel
Voici le code de ma routine, le plantage ne viendrait-il pas des lignes Fichier =... ou FormatFich= ".jpg" si les extensions dans l'explorateur ne sont pas affichées ?

Y aurait-il une autre soluce pour l'affichage sans toucher au registre ?


VB:
Private Sub UserForm_Initialize()

Dim X As String, ProprietesImages As String
'necessite d'activer la reference Microsoft Scripting RunTime

Chemin = ThisWorkbook.Path & "\" 'repertoire dans le quel est placé ce classeur
'Client = ThisWorkbook.Worksheets("Id").Range("B1").Value & "\"
RepPhotos = "Photos" & "\"
RepRef = ThisWorkbook.Worksheets("Id").Range("B2").Value & "\"

CheminComplet = Chemin & RepPhotos & RepRef

Fichier = Dir(CheminComplet & "*.jpg") 'ciblage des images jpeg dans ce repertoire
FormatFich = ".jpg"

If Fichier = "" Then
    Me.WebBrowser2.Visible = False
    Exit Sub
End If

'creation page html qui s'affichera dans le WebBrowser

Open CheminComplet & "browserImage.html" For Output As #1
Print #1, "<HTML>"
Print #1, "<HEAD>"
Print #1, "<TITLE>" & CheminComplet & "</TITLE>"

Do
    S = CheminComplet & Fichier
    Set Fso = CreateObject("Scripting.FileSystemObject")
    Set FileItem = Fso.GetFile(S)
    ProprietesImages = FileItem.Name & vbLf & FileItem.DateCreated _
    & vbLf & Format(FileItem.Size, "#,##0") & " octets"
    
    'creation vignette et lien hypertexte pour chaque image
    X = "<A href='" & S & "'><IMG WIDTH=70 HEIGHT=70 SRC='" & S & _
        "'ALT='" & ProprietesImages & "'></IMG></A>"
    Print #1, X
    
    ListBox1.AddItem Left(Fichier, Len(Fichier) - 4)
    Fichier = Dir
Loop Until Fichier = ""

Close #1

WebBrowser1.Navigate CheminComplet & "browserImage.html"

End Sub
 

jmh1

XLDnaute Occasionnel
Bizarre, je viens de lancer la routine en mode pas à pas et là pas de plantage, tout s'affiche correctement.
2ème essai en automatique et cela fonctionne encore même avec les extensions masquées.
J'ai essayé sur un 2éme poste et là même phénomène (plantage en auto, succès en pas à pas, fonctionne en auto après) ?????
Incompréhensible
 

patricktoulon

XLDnaute Barbatruc
re
Bonsoir a tous

juste une question comme ca en passant
je vois que tu construit un html avec des images certainement avec des images masquées si je comprend bien
en plus je vois que tu construit en bouclant sur les fichiers suposement demasqués avec dir

tu veux une nouvelles ?????
et ben...
tu peux très bien boucler sur les fichiers "Masqués" sans toucher a l'explorateur!!!!!!!

;) ;) ;) ;)

!!!!!!!!!!! et tu n'a ni besoins de wscript.shell ou de Scripting.FileSystemObject!!!!!!!!!!

un petit exemple
adapte ton dossier
VB:
Sub test()
    dossier = "C:\Users\polux\DeskTop\mes images ppp\"'ne pas oublier le slash a la fin 
    'les criteres possibles = vbHidden Or vbArchive Or vbDirectory Or vbSystem Or vbNormal
    'selon ton besoins tu peux cumuler avec "Or" ou and not
    criteres = vbHidden    'uniquement les fichiers cachés et normals
    fichiers = Dir(dossier, criteres)
    Do While fichiers <> ""
        Debug.Print fichiers
        fichiers = Dir
    Loop
End Sub

;)
 
Dernière édition:

Staple1600

XLDnaute Barbatruc
Re, Bonsoir patricktoulon

=>jmh1
J'ai une routine qui tourne en réseau pour insérer des images dans un USF
Tu peux préciser et détailler, stp?
Moi, j'ai compris que tu voulais insérer des images dans classeurs* distincts stockés sur un une ressource réseau.
*: dans N userforms de N classeurs plus précisément

Il est question de réseau ou pas? Ou tu travailles sur un seul PC, un seul classeur?
Merci d'éclairer notre lanterne ;)
 

jmh1

XLDnaute Occasionnel
En fait, j'ai un classeur qui se trouve sur un réseau et qui est utilisé par plusieurs personnes.

Il y a une routine à l'intérieur de ce classeur (celle qui plante) qui permet de boucler sur un répertoire (qui se trouve également sur notre réseau) et d'afficher toutes les images dans un USF (sous forme de vignettes et image agrandie).
 

Discussions similaires

Statistiques des forums

Discussions
311 733
Messages
2 082 009
Membres
101 865
dernier inscrit
MLL