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.

Bonsoir

Une solution de Patrick Morange

Cordialement

111boudaou.zip (14.91 Ko)

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 Sub

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

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

Rechercher des sujets similaires à "comment collage special bureau"