Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Microsoft 365 icone Excel remplacée

  • Initiateur de la discussion Initiateur de la discussion jeffe
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

jeffe

XLDnaute Impliqué
Bonjour le forum
, je ressort un vieux fichier mais qui ne fonctionne plus. il changeait l'icone Excel et le nom, par un de mon choix mais avec version 64 b plus fonctionnel, pourriez vous m'aider svp?
 

Pièces jointes

Bonjour Jeffe,
Essayez de remplacer :
VB:
Declareptrsafe
FindWindow Lib "user32" Alias "FindWindowA" _
(ByVal lpClassName As String, ByVal lpWindowName As String) As Long
par
Code:
#If VBA7 Then
    Declare PtrSafe Function FindWindow Lib "user32" Alias "FindWindowA" ( _
        ByVal lpClassName As String, _
        ByVal lpWindowName As String) As LongPtr
#Else
    Declare Function FindWindow Lib "user32" Alias "FindWindowA" ( _
        ByVal lpClassName As String, _
        ByVal lpWindowName As String) As Long
#End If
Il ne genère plus d'erreur, mais je n'ai pas testé la fonctionnalité, je ne comprend pas la finalité.
 
Bonjour sylvanu, merci de te pencher sur mon petit problème . c'est un fichier qui ressort de temps en temps à la période de noël pour rire.
il change l'icone Excel par l'icone située sur la feuille 1, ainsi que le nom Excel par le nom de mon choix.
maintenant j"ai une erreur sur le workbook open il ne trouve pas l'image1
le fichier est juste pour rire
 
Re,
Là, je ne peux pas vous aider.
Je suis en XL 2007 32bits. Chez moi, je n'ai pas d'erreur mais je ne vois aucune action sur son execution, mais il n'y a pas d'erreur sur Image1. Je ne vois que cette modif :

Sorry.
 

Pièces jointes

  • 1766050391647.png
    895 bytes · Affichages: 6
bonjour
VB:
Option Explicit

Private Sub Workbook_Activate()
    XlMainIconSwitch (Feuil1.Image1.Picture.Handle)
End Sub

Private Sub Workbook_Open()
    Dim TexteCaption As String
    TexteCaption = "Bonjour ;)) " & Application.UserName
    XlMainIconSwitch (Feuil1.Image1.Picture.Handle)
    Application.Caption = TexteCaption
End Sub

VB:
'*****************************************************************************************************
'    ___     _     _______  __      _   ____  _   _  _______  ___     _   _   _    ___     _     _.
'   //  \\  /\\      //    // \\   //  //    //  //    //    //  \\  //  //  //   //  \\  //|   //
'  //___// //__\    //    //__//  //  //    //__//    //    //   // //  //  //   //   // // |  //
' //      //   \\  //    //  \\  //  //    //  \\    //    //   // //  //  //   //   // //  | //
'//      //    // //    //   // //  //___ //    \\  //     \\__// //__//  //___ \\__// //   |//
'****************************************************************************************************
'fonction  pour changer l'icon de excel
'patricktoulon
Option Explicit

#If VBA7 Then
    Private Declare PtrSafe Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As LongPtr
    Private Declare PtrSafe Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hWnd As LongPtr, ByVal wMsg As Long, ByVal wParam As LongPtr, ByVal lParam As LongPtr) As LongPtr
    Private Declare PtrSafe Function DrawMenuBar Lib "user32" (ByVal hWnd As LongPtr) As Long
#Else
    Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
    Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Long) As Long
    Declare Function DrawMenuBar Lib "user32" (ByVal hWnd As Long) As Long
#End If
Const WM_SETICON As Long = &H80
Const ICON_SMALL As Long = 0
Const ICON_BIG As Long = 1

#If VBA7 Then
Sub XlMainIconSwitch(Optional ByVal hIcon As LongPtr = 0&)
    Dim hWnd As LongPtr
#Else
Sub XlMainIconSwitch(Optional ByVal hIcon As Long = 0&)
    Dim hWnd As Long
#End If
        Dim Res As Long
        hWnd = FindWindow("XLMAIN", Application.Caption)
        'Res = SendMessage(hWnd, WM_SETICON, ICON_SMALL, ByVal hIcon)
        Res = SendMessage(hWnd, WM_SETICON, ICON_BIG, ByVal hIcon)
        Res = DrawMenuBar(hWnd)
End Sub
patrick
 
Bonjour Patrick,
Comme d'hab, un code d'une remarquable technicité ... mais qui nécessite quelques corrections mineures pour fonctionner en 64 bits.
Ça devrait bien mieux marcher comme ça :
VB:
Option Explicit

#If VBA7 Then
    Private Declare PtrSafe Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As LongPtr
    Private Declare PtrSafe Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hWnd As LongPtr, ByVal wMsg As Long, ByVal wParam As LongPtr, ByVal lParam As LongPtr) As LongPtr
    Private Declare PtrSafe Function DrawMenuBar Lib "user32" (ByVal hWnd As LongPtr) As Long
#Else
    Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
    Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Long) As Long
    Declare Function DrawMenuBar Lib "user32" (ByVal hWnd As Long) As Long
#End If
Const WM_SETICON As Long = &H80
Const ICON_SMALL As Long = 0
Const ICON_BIG As Long = 1

#If VBA7 Then
Sub XlMainIconSwitch(Optional ByVal hIcon As LongPtr = 0&)
 Dim hWnd As LongPtr
  
#Else
Sub XlMainIconSwitch(Optional ByVal hIcon As LongPtr = 0&)
    Dim hWnd As LongPtr
#End If
        Dim Res As LongPtr
        hWnd = FindWindow("XLMAIN", Application.Caption)
        'Res = SendMessage(hWnd, WM_SETICON, ICON_SMALL, ByVal hIcon)
        Res = SendMessage(hWnd, WM_SETICON, ICON_BIG, ByVal hIcon)
        Res = DrawMenuBar(hWnd)
End Sub
Bien amicalement et avec tous mes respects
 
Bonjour @Gégé-45550
merci pour ton apréciation et ta marque de respect
mais peut_être prolonger ta reflexion aurait été utile
depuis quand en vb6 on utilise le type longlong extrapollé????????????????????
pour info dans le #else nous somme en vb6
VB:
'...
'...
#Else
Sub XlMainIconSwitch(Optional ByVal hIcon As LongPtr = 0&)
    Dim hWnd As LongPtr 'FAUX!!!!!!!!!!!!!!!!!!!!!!!!!!'
#End If
patrick
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
20
Affichages
475
Réponses
2
Affichages
108
  • Question Question
Microsoft 365 Rechercher date
Réponses
5
Affichages
174
  • Question Question
Microsoft 365 Liste de choix...
Réponses
8
Affichages
247
Réponses
3
Affichages
182
  • Question Question
Microsoft 365 macro TCD
Réponses
4
Affichages
318
Réponses
3
Affichages
410
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…