Raccourci en vba

lagodille

XLDnaute Occasionnel
Bonjour à tous,

Ci-joint mon fichier dans lequel je sauvegarde dans le répertoire « DOSSIER » et crée un raccourci sur le bureau mais je n’arrive pas à supprimer l’ancien raccourci d'où une accumulation de raccourci sur le bureau non valables.

merci de votre aide

cordialement
Pascal
 

Pièces jointes

  • ONLINE 11-10-15 124230.xls
    41 KB · Affichages: 46

Staple1600

XLDnaute Barbatruc
Re : Raccourci en vba

Bonjour à tous

Cela semble fonctionner
Je te laisse tester et confirmer
Code:
Sub CreerRaccourci()
Dim raccourci As Object
    With ActiveWorkbook
        'Vérifie l'existence d'un chemin pour le classeur
        If .Name <> .FullName Then
            'Défini le raccourci
            If FileExists(.FullName & ".lnk") Then
            Kill FullName & ".lnk"
            Else
            With CreateObject("WScript.Shell")
                Set raccourci = .CreateShortcut(.SpecialFolders("Desktop") _
                    & "\" & ActiveWorkbook.Name & ".lnk")
            End With
            'Crée le raccourci sur le bureau Windows
            raccourci.TargetPath = .FullName
            raccourci.Save
         End If
         End If
    End With
End Sub
Code:
Function FileExists(fullFileName As String) As Boolean
    FileExists = VBA.Len(VBA.Dir(fullFileName)) > 0
End Function
 

lagodille

XLDnaute Occasionnel
bonjour JM et le forum,

Je joins le fichier modifié comme JM car j'ai toujours deux fichiers sur mon bureau dont un qui n'existe plus puisque supprimé dans mon répertoire.
Je voudrais qu'il ne reste qu'un seul raccourci sur mon bureau et si possible le bon.

merci pour votre aide
 

Pièces jointes

  • ONLINE 12-10-15 103554.xls
    42 KB · Affichages: 58

Staple1600

XLDnaute Barbatruc
Re : Raccourci en vba

Bonsoir à tous


Autant pour moi :eek::p
Mon assertion précédente était fausse

Remplace ta macro avec celle-ci
Cette-fois ci cela fonctionne vraiment
(NB: Ne pas oublier d'appuyer sur F5 quand affiche le Bureau pour réactualiser l'affichage)
Code:
Sub CreerRaccourci()
Dim raccourci As Object, bureau$, fLNK$
bureau = CreateObject("WScript.Shell").SpecialFolders("Desktop") & "\"
With ActiveWorkbook
    'Vérifie l'existence d'un chemin pour le classeur
    If .Name <> .FullName Then
    fLNK = Dir$(bureau & "ONLINE*xls" & ".lnk")
    If (Len(fLNK) > 0) Then
    Kill bureau & fLNK
    End If
    With CreateObject("WScript.Shell")
    Set raccourci = .CreateShortcut(bureau & ActiveWorkbook.Name & ".lnk")
    End With
    'Crée le raccourci sur le bureau Windows
    raccourci.TargetPath = .FullName
    raccourci.Save
    End If
End With
End Sub
 

lagodille

XLDnaute Occasionnel
Re : Raccourci en vba

Bonsoir JM et le forum,

Bien joué . Effectivement cela fonctionne. Néanmoins, est il possible d'inclure dans vba l'action sur F5 afin d'éviter toute action manuelle de l'utilisateur sur l'effacement de l'ancien raccourci

merci
cordialement
Pascal
 

Staple1600

XLDnaute Barbatruc
Re : Raccourci en vba

Re

Il suffit de chercher un peu sur la vaste toile ;)
Code:
Sub CreerRaccourci()
Dim raccourci As Object, bureau$, fLNK$
bureau = CreateObject("WScript.Shell").SpecialFolders("Desktop") & "\"
With ActiveWorkbook
    'Vérifie l'existence d'un chemin pour le classeur
    If .Name <> .FullName Then
    fLNK = Dir$(bureau & "ONLINE*xls" & ".lnk")
    If (Len(fLNK) > 0) Then
    Kill bureau & fLNK
    refresh
    End If
    With CreateObject("WScript.Shell")
    Set raccourci = .CreateShortcut(bureau & ActiveWorkbook.Name & ".lnk")
    End With
    'Crée le raccourci sur le bureau Windows
    raccourci.TargetPath = .FullName
    raccourci.Save
    End If
End With
End Sub
Sub refresh()
'source - Rems [080708]
Dim objSh, strDesktop
Set objSh = CreateObject("WScript.Shell")
strDesktop = objSh.SpecialFolders("Desktop")
objSh.AppActivate strDesktop
WScript.Sleep 727
objSh.SendKeys "{F5}"
End Sub
 

david84

XLDnaute Barbatruc
Re : Raccourci en vba

Bonjour à tous,
NB: Ne pas oublier d'appuyer sur F5 quand affiche le Bureau pour réactualiser l'affichage
Je n'ai pas tout suivi mais pourquoi devoir actualiser le bureau dans le cas présent puisque :
- soit le raccourci est créé
- soit il est modifié
et que ces modifications sont visibles sur le bureau sans avoir besoin d'actualiser l'affichage ?
A+
 

lagodille

XLDnaute Occasionnel
Re : Raccourci en vba

bonjour david84 et le forum,

ci-joint mon fichier. Je voulais juste enregistrer mon fichier dans un répertoire et créer un raccourci du dit fichier sur le bureau.
Lorsque je vais ouvrir mon raccourci je ne dois avoir et toujours qu'un seul raccourci de ce type sur le bureau et comme le fichier évolue en fonction de la date d'enregistrement cela me pose un problème et lorsque je recommence plusieurs fois la manip les raccourcis s'entassent.

j'ai regardé sur la toile sans succès.

bien cordialement
 

Pièces jointes

  • ONLINE 14-10-15 131336.xls
    38 KB · Affichages: 40

david84

XLDnaute Barbatruc
Re : Raccourci en vba

Lorsque je teste le code fourni par staple1600 je n'ai pas un amoncellement de raccourcis puisque le code supprime le raccourci trouvé et en crée un autre.
D'autre part je ne comprends toujours pas l'intérêt d'actualiser le bureau (mais j'ai sans doute loupé un épisode).
Je regarderai ton fichier plus tard.
A+
 

david84

XLDnaute Barbatruc
Re : Raccourci en vba

J'ai testé le fichier et cela fonctionne : si un raccourci est déjà créé la macro supprime le raccourci pour en créer un autre donc je ne vois pas ce qui pose problème...à moins que je n'aie pas compris ta demande ou que ton fichier exemple ne corresponde pas à ta demande réelle.
De plus je ne comprends pas l'intérêt de la Sub refresh.
A+
 

Staple1600

XLDnaute Barbatruc
Re : Raccourci en vba

Bonsoir à tous

david84
Si tu réduis ta fenêtre Excel pour voir le Bureau et surtout le raccourci créé
Sans faire F5, les raccourcis s'accumulent
Testes en mettant l'appel à refresh en commentaire
et cliques toutes les deux secondes sur le bouton Save, tu verras les raccourcis restés sur le Bureau tant qu'on a pas Actualiser
(par un clic-droit sur le Bureau - > Actualiser ou par F5 ou par macro comme ce que fait refresh)
 

david84

XLDnaute Barbatruc
Re : Raccourci en vba

Bonsoir à tous

david84
Si tu réduis ta fenêtre Excel pour voir le Bureau et surtout le raccourci créé
Sans faire F5, les raccourcis s'accumulent
Testes en mettant l'appel à refresh en commentaire
et cliques toutes les deux secondes sur le bouton Save, tu verras les raccourcis restés sur le Bureau tant qu'on a pas Actualiser
(par un clic-droit sur le Bureau - > Actualiser ou par F5 ou par macro comme ce que fait refresh)

Pas chez moi : j'ai toujours un seul raccourci sur le bureau, d'où mes interrogations...
A+
 

Discussions similaires

Réponses
1
Affichages
201
Réponses
3
Affichages
836

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
312 229
Messages
2 086 426
Membres
103 206
dernier inscrit
diambote