Comment faire un collage spécial sur le bureau
Bonjour tout le monde,
J'utilise Excel pour la gestion journalière de mes finances. Le solde est donc tous les jours différents , variant avec les dépenses. Je souhaiterais faire une copie spéciale du logiciel sur le Bureau, et avec liaison; de manière à visualiser mon solde sans ouvrir le logiciel. Est-ce possible? je vous remercie de bien vouloir me répondre.
Je remercie Patrick Morange pour tout le mal qu'il s'est donné à bien vouloir traiter ma question. La réponse est malheureusement trop compliquée pour mon niveau de formation et je n'arriverai sans doute pas à la mettre en oeuvre. Merci
Bonjour Boudaou
Mais non, ce n'est pas compliqué. C'est un simple frein psychologique.
Ta seule obligation est de faire confiance au projet. Ensuite, tu fais comme moi et après, tu es satisfait. En effet, ton sujet était assez curieux pour m'intéresser à mettre la cellule "pense-bête" sur le Bureau.
J'ai donc testé pour toi et suis assez satisfait du résultat;
La seule chose que tu as à faire est d'ouvrir le fichier de PM. et le tien, de mettre dans la cellule jaune le signe= et de sélectionner sur le tien la cellule qui t'intéresse, puis d(utiliser la commande "Outil" "Macro" pour sélectionner la macro "Lancer" puis d'aller voir le résultat sur le bureau.
Ensuite de refaire "Outil" "Macro" et de mettre en oeuvre la macro "Stopper"
Tu aurais tout de même intérêt à créer deux boutons, un pour lancer, un pour stopper, c'est plus pratique.
Cordialement
Bonjour
Dans ton classeur, ouvre VBA (Alt+F11) - Tu sélectionnes ton fichier dans la partie gauche et tu fais INSERTION ==> Module
Dans la partie droite de ce module, tu fais un COPIER-COLLER de ce code :
Option Explicit
Const PREFIXE As String = " "
'### A adapter: nom de la feuille et adresse de la cellule concernées ###
Const FEUILLE_A_EPIER As String = "Ma feuille"
Const CELLULE_A_EPIER As String = "C1"
Const ICO1 As String = "C:\Program Files\Microsoft Visual Studio\COMMON\Graphics\Icons\Misc\EYE.ICO"
Const ICO2 As String = "C:\Program Files\Microsoft Office\OFFICE11\FORMS\1036\POSTITL.ico"
Sub ValeurSurBureau(Optional dummy As Byte)
Dim WS As Object
Dim SC As Object
Dim fso As Object
Dim SourceFolder As Object
Dim FileItem As Object
Dim WB As Workbook
Dim Bureau$
Dim bool As Boolean
Set WS = CreateObject("WScript.Shell")
Set fso = CreateObject("Scripting.FileSystemObject")
Set SourceFolder = fso.GetFolder(WS.SpecialFolders("Desktop"))
'--- Met à jour le raccourci ---
For Each FileItem In SourceFolder.Files
If FileItem.Type = "Raccourci" Then
If Left(FileItem.Name, 2) = PREFIXE Then
Application.ScreenUpdating = False
Set WB = ActiveWorkbook
ThisWorkbook.Activate
On Error Resume Next
FileItem.Name = PREFIXE & _
Sheets(FEUILLE_A_EPIER).Range(CELLULE_A_EPIER).Value & ".lnk"
On Error GoTo 0
WB.Activate
Application.ScreenUpdating = True
bool = True
Exit For
End If
End If
Next FileItem
'--- Si raccourci n'existe pas, on le crée ---
If Not bool Then
Bureau$ = WS.SpecialFolders("Desktop")
Set SC = WS.CreateShortcut(Bureau$ & "\" & PREFIXE & _
Sheets(FEUILLE_A_EPIER).Range(CELLULE_A_EPIER).Value & ".lnk")
With SC
If fso.FileExists(ICO1) Then
.IconLocation = ICO1
Else
.IconLocation = ICO2
End If
.TargetPath = vbNullChar
.Description = vbNullString
.WorkingDirectory = Bureau$
.Save
End With
End If
Set FileItem = Nothing
Set SourceFolder = Nothing
Set fso = Nothing
Set SC = Nothing
Set WS = Nothing
End SubDans le code ci-dessus, dans la partie :
'### A adapter: nom de la feuille et adresse de la cellule concernées ###
Const FEUILLE_A_EPIER As String = "Ma feuille"
Const CELLULE_A_EPIER As String = "C1"
tu modifies le nom "Ma feuille" par le nom réel de ta feuille et "C1" par la cellule que tu veux récupérer
Ensuite, toujours dans VBA, fais un double-click sur le nom de la feuille dans laquelle tu as la cellule que tu veux récupérer et dans la partie droite tu fais un COPIER-COLLER de ce code :
Option Explicit
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Call ValeurSurBureau
End SubEnregistre ton fichier, tu le fermes et tu le rouvres en activant les macros. Pour que la macro fonctionne, il faut que tu entres à nouveau la valeur dans la cellule "espion".
Un icône s'est créé sur le bureau avec pour nom la valeur de ta cellule. (tu peux changer d'icône dans les propriétés)
Amicalement
Nad
Edit : bonjour Amadeus - le fait d'avoir la private sub n'oblige plus à activer par LANCER - Je l'ai d'ailleurs supprimé du code - Mes tests sont bons mais peux-tu confirmer ?
Bonjour Nad
Mes tests sont bons mais peux-tu confirmer ?Nad, Boudaou semblant aussi doué que moi en VBA, je suis allé à la solution de facilité qui fonctionne (C'est vrai que mon explication oublie les 3 lignes du Code de Feuille (que j'ai pourtant mis pour moi).
Ta solution s'adresse déjà à celui qui n'est pas effrayé par vba.
Si personne n'a fait, je teste dès que...et te tiens au courant.
Amicalement
Merci à tous
Je n'y suis pas arrivé : je vous demande pardon : je suis nul, mais reste passionné