Précédent   Forum du club des développeurs et IT Pro > Logiciels > Microsoft Office > Général VBA
Général VBA Forum général VBA . Pour les logiciels spécifiques (Access, Excel, Word, ...), postez dans les bons sous forums.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 16/03/2012, 10h57   #1
GCAccess
Nouveau Membre du Club
 
Inscription : février 2007
Messages : 126
Détails du profil
Informations forums :
Inscription : février 2007
Messages : 126
Points : 33
Points : 33
Par défaut Créer un raccourci vers un dossier

Salut à tous,

J'ai créé une petite application que j'utilise pour gérer des commandes. À chaque commande entrée, un dossier est créé en fonction des informations entrées dans le formulaire selon le schéma suivant :

D:/Commande/Année/Client/Ref

Pour ça, j'utilise le code suivant qui marche très bien :
Code :
MakeSureDirectoryPathExists "D:\Commande\" & DatePart("yyyy", Me.DateCommande) & "\" & Me.Client & "\" & Me.RefCommande & "\"
Ce que je voudrais faire maintenant, c'est qu'après la création du dossier, un raccourci vers ce même dossier soit créé dans un répertoire défini, disons "Bureau\raccourci", et que le raccourci porte seulement la réf. de la commande.

En gros, je souhaiterais avoir dans mon répertoire "raccourcis", les raccourcis vers chaque commande selon leur référence, genre:
2012-01
2012-02
2012-03
...

J'ai fouiné un peu partout, mais j'ai pas trouvé comment créé le raccourci souhaité...
Quelqu'un peut-il m'aider ?

Merci par avance !

Guillaume
GCAccess est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/03/2012, 11h29   #2
Papy Turbo
Membre Expert
 
Avatar de Papy Turbo
 
Homme Etienne Pailleret
Développeur VBA
Inscription : mars 2004
Messages : 799
Détails du profil
Informations personnelles :
Nom : Homme Etienne Pailleret
Localisation : France, Hauts de Seine (Île de France)

Informations professionnelles :
Activité : Développeur VBA

Informations forums :
Inscription : mars 2004
Messages : 799
Points : 1 451
Points : 1 451
Bonjour,

je n'ai pas fouillé la FAQ ni les sources qui contiennent sûrement de quoi créer un raccourci (la honte sur moi !), mais, en bref,
- ajoute une référence à WsShell : Windows Script Host Object Model
Dans ta fonction,
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
Dim WshShell as IWshRuntimeLibrary.WsShell
Dim MyShortcut as IWshRuntimeLibrary.WshShortcut
 
    Set WsSHell = New IWshRuntimeLibrary.WsShell
    Set MyShortcut = WsShell.CreateShortcut(Emplacement & "\" & NomRaccourci & ".lnk"
    With MyShortcut
        .TargetPath = "Chemin et nom de la cible" 'le dossier ou fichier à ouvrir, l'application à lancer...
        .WorkingDirectory = "Chemin de la cible"
        '.Arguments = ... 'inutile dans ton cas
        .IconLocation = "emplacement + nom de l'icône dans ton dossier 'images'"
        'et toutes autres propriétés du raccourci...
        .Save
    End With
- Pour l'emplacement sur le bureau, tu peux faire un GetDesktopDir()... ou GetSpecialFolders...
- Pour le supprimer, si besoin, un simple Kill...
Papy Turbo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/03/2012, 15h01   #3
GCAccess
Nouveau Membre du Club
 
Inscription : février 2007
Messages : 126
Détails du profil
Informations forums :
Inscription : février 2007
Messages : 126
Points : 33
Points : 33
Par défaut Merci !

Merci Papy Turbo !
Après quelques petits changements, je suis enfin arrivé à obtenir ce que je voulais. J'avais effectivement déjà vu ce fameux WshShell, mais je n'avais jamais réussi à le faire marcher comme je voulais.

Encore merci !
Guillaume
GCAccess est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/12/2012, 11h01   #4
Papy Turbo
Membre Expert
 
Avatar de Papy Turbo
 
Homme Etienne Pailleret
Développeur VBA
Inscription : mars 2004
Messages : 799
Détails du profil
Informations personnelles :
Nom : Homme Etienne Pailleret
Localisation : France, Hauts de Seine (Île de France)

Informations professionnelles :
Activité : Développeur VBA

Informations forums :
Inscription : mars 2004
Messages : 799
Points : 1 451
Points : 1 451
, merci, Flush : faute de frappe dans le Dim ci-dessus, remplacer [Dim WshShell] par [Dim WsShell] (ou l'inverse, pourvu que la variable ait le nom déclaré ! )
Citation:
Envoyé par Papy Turbo Voir le message
- ajoute une référence à WsShell : Windows Script Host Object Model
Dans ta fonction,
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
Dim WsShell as IWshRuntimeLibrary.WsShell
Dim MyShortcut as IWshRuntimeLibrary.WshShortcut
 
    Set WsSHell = New IWshRuntimeLibrary.WsShell
    Set MyShortcut = WsShell.CreateShortcut(Emplacement & "\" & NomRaccourci & ".lnk"
    With MyShortcut
        .TargetPath = "Chemin et nom de la cible" 'le dossier ou fichier à ouvrir, l'application à lancer...
        .WorkingDirectory = "Chemin de la cible"
        '.Arguments = ... 'inutile dans ton cas
        .IconLocation = "emplacement + nom de l'icône dans ton dossier 'images', dans un .exe, etc."
        'et toutes autres propriétés du raccourci...
        .Save
    End With
- Pour l'emplacement sur le bureau, tu peux faire un GetDesktopDir()... ou GetSpecialFolders...
- Pour le supprimer, si besoin, un simple Kill...
Bonnes fêtes à tous...
Papy Turbo est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Cette discussion est résolue.
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 17h20.


 
 
 
 
Partenaires

Hébergement Web