Se connecter avec
S'enregistrer | Connectez-vous

Icone + nom classeur Excel barre de tache

Dernière réponse : dans Programmation

Bonjour,

En me balladant sur plusieurs forum j'ai trouvé ce code qui doit me permettre de modifier l'icone du classeur Excel dans la barre de tâche (lorsque l'on réduit le classeur) et changer le nom affiché dans cette barre.

Je ne parviens pourtant pas à le faire fonctionner car je ne sais pas quel nom donner à l'image du userform (Name) ?

Merci d'avance pour vos réponses.

Voici le texte du post évoqué ci-dessus et le code qui était proposé :

"A) Création d'un UserForm
1) Créez un UserForm et mettez sa propriété (Name) = UF
2) Insérez un contrôle Image et affectez à sa propriété Picture
l'icône de votre choix

B) Code à copier dans un module standard

  1. Private Declare Function FindWindowA Lib "user32" _
  2. (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
  3. Private Declare Function GetClassLongA Lib "user32" _
  4. (ByVal hWnd As Long, ByVal nIndex As Long) As Long
  5. Private Declare Function SetClassLongA Lib "user32" _
  6. (ByVal hWnd As Long, ByVal nIndex As Long, _
  7. ByVal dwNewLong As Long) As Long
  8. Private Declare Function LoadImageA Lib "user32" _
  9. (ByVal hInst As Long, ByVal lpsz As String, ByVal un1 As Long, _
  10. ByVal n1 As Long, ByVal n2 As Long, ByVal un2 As Long) As Long
  11.  
  12. Dim HIcon As Long
  13. Dim hWnd As Long
  14.  
  15. Sub IconeNomAppli_PMO()
  16. Dim MonIcone As Control
  17. '---- Change l'icône d'Excel en cherchant ----
  18. '---- une icône stockée dans un formulaire ----
  19. Set MonIcone = UF.Controls(0)
  20. hWnd = FindWindowA(vbNullString, Application.Caption)
  21. HIcon = GetClassLongA(hWnd, -14)
  22. SetClassLongA hWnd, -14, MonIcone.Picture
  23. '---- Change le nom de l'application ----
  24. Application.Caption = "Personnalisée" 'à adapter
  25. End Sub


"Lancez la macro IconeNomAppli_PMO.
Vous pouvez, si vous le voulez, appeler cette macro à partir
de l'évènement Workbook_Open avec le code suivant
à copier dans l'évènementiel de ThisWorkbook"

  1. Private Sub Workbook_Open()
  2. Call IconeNomAppli_PMO
  3. End Sub

Lassé par la pub ? Créez un compte

Salut,
la réponse se trouve dans ton énoncé et dans le code, tu peut mettre le nom que tu veux pour ta userform, ici "UF", nom qui sert ligne 19 de ton code, tu pourrais mettre "toto" comme nom de forme et = toto.controls(0) dans le code que cela fonctionnerait pareil.
A plus.
Lassé par la pub ? Créez un compte