Accueil > > > CHANGER ICONE, TITRE ET DIVERS D'UNE APPLI SOUS EXCEL
CHANGER ICONE, TITRE ET DIVERS D'UNE APPLI SOUS EXCEL
Information sur la source
Description
Il s'agit de montrer comment changer divers paramètres d'apparence d'une appli tournant sous excel mais où excel n'est plus apparent. Le développement complet est sous VBA. Le fichier excel complet est trop lourd pour être mis sur le site je mets donc le code du "This Workbook" si dessous . Pour ce qui est des menus et le reste du code soit je l'envoie à qui me le demande, soit je le mets sur le site : en compressé 1.2 MO je ne sais pas si c'est possible. L'image montre ce que l'on peut obtenir en sortie sur un projet réalisé... jmluc@jmlucienvb.org
Source
- XXXXXDébut du rajout Icone
- Const FichierIco As String = "Logo JML.ico"
-
- Private Declare Function FindWindowA Lib "User32" _
- (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
-
- Private Declare Function GetClassLongA Lib "User32" _
- (ByVal hWnd As Long, ByVal nIndex As Long) As Long
-
- Private Declare Function SetClassLongA Lib "User32" _
- (ByVal hWnd As Long, ByVal nIndex As Long, _
- ByVal dwNewLong As Long) As Long
-
- Private Declare Function LoadImageA Lib "User32" _
- (ByVal hInst As Long, ByVal lpsz As String, ByVal un1 As Long, _
- ByVal n1 As Long, ByVal n2 As Long, ByVal un2 As Long) As Long
-
- Dim HIcon As Long, hWnd As Long
- 'XXXX Fin de la première partie
-
- Private Sub Workbook_Open()
-
- 'XXXXXXXX Partie Icone
- Dim FIcone As String
- FIcone = Me.Path & "\" & FichierIco 'Chemin vers l'icone si elle est dans le répertoire
-
- If Dir$(FIcone) <> "" Then
- hWnd = FindWindowA(vbNullString, Application.Caption)
- HIcon = GetClassLongA(hWnd, -14)
- SetClassLongA hWnd, -14, LoadImageA(0, FIcone, 1, 0, 0, &H10)
- End If
- 'XXXXXXXXX Fin partie icone
-
-
- 'Interdiction du contrôle "X"
- Application.OnKey "^x", ""
- Application.OnKey "^v", ""
-
- Application.WindowState = xlNormal
- 'Application.EnableEvents = False
-
- 'Application.Width = 760
- 'Application.Height = 480
-
-
- Call Mxx_A00_DisplayMainExcelFile
-
- 'Paramétrage pour interdire la sortie
- final_end = False
-
- 'Etat de la scroll verticale
- numberSCROLLROW = 1
-
- EtatDuFractionnement = False
-
- 'Ouvrir toujours sur la feuille SYSAttente
- ActiveWorkbook.Sheets(11).Activate
-
- End Sub
-
- Private Sub Workbook_SheetBeforeRightClick(ByVal Sh As Object, ByVal Target As Excel.Range, Cancel As Boolean)
- 'MsgBox "non"
- Cancel = True
- End Sub
-
- Private Sub Workbook_Deactivate()
- 'Pour interdire une ouverture intempestive d'un autre fichier dans l'instance
- 'Ce programme fait appel à deux APIs qui sont déclarées dans le module MAPIs_Declare
-
- On Error GoTo gestErr
-
- If ActiveWorkbook.Name <> ThisWorkbook.Name Then
-
- Nom = ActiveWorkbook.Name
- FName = ActiveWorkbook.Path & "\" & Nom
-
- ActiveWorkbook.Close SaveChanges:=False
-
- FName = LongToShort(FName)
-
- Tmp = ShellExecute(0, "open", "Excel.exe", FName, 0&, 1)
- Exit Sub
- End If
-
- gestErr:
- If Err.Number = 0 Or Err.Number = 91 Then Exit Sub
-
- MsgBox Err.Number
-
- End Sub
- Private Sub Workbook_BeforeClose(Cancel As Boolean)
- 'Application.EnableEvents = True
-
- If final_end Then
-
- 'XXXXX Partie Icone
- If HIcon Then
- SetClassLongA hWnd, -14, HIcon
- End If
- 'XXXXX Fin partie icone
-
- 'A réactiver pour test
- Call fin
- Else
-
- Cancel = True
-
- 'ActiveWorkbook.Sheets(11).Activate
- Application.WindowState = xlMinimized
-
-
- End If
-
- End Sub
-
-
XXXXXDébut du rajout Icone
Const FichierIco As String = "Logo JML.ico"
Private Declare Function FindWindowA Lib "User32" _
(ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function GetClassLongA Lib "User32" _
(ByVal hWnd As Long, ByVal nIndex As Long) As Long
Private Declare Function SetClassLongA Lib "User32" _
(ByVal hWnd As Long, ByVal nIndex As Long, _
ByVal dwNewLong As Long) As Long
Private Declare Function LoadImageA Lib "User32" _
(ByVal hInst As Long, ByVal lpsz As String, ByVal un1 As Long, _
ByVal n1 As Long, ByVal n2 As Long, ByVal un2 As Long) As Long
Dim HIcon As Long, hWnd As Long
'XXXX Fin de la première partie
Private Sub Workbook_Open()
'XXXXXXXX Partie Icone
Dim FIcone As String
FIcone = Me.Path & "\" & FichierIco 'Chemin vers l'icone si elle est dans le répertoire
If Dir$(FIcone) <> "" Then
hWnd = FindWindowA(vbNullString, Application.Caption)
HIcon = GetClassLongA(hWnd, -14)
SetClassLongA hWnd, -14, LoadImageA(0, FIcone, 1, 0, 0, &H10)
End If
'XXXXXXXXX Fin partie icone
'Interdiction du contrôle "X"
Application.OnKey "^x", ""
Application.OnKey "^v", ""
Application.WindowState = xlNormal
'Application.EnableEvents = False
'Application.Width = 760
'Application.Height = 480
Call Mxx_A00_DisplayMainExcelFile
'Paramétrage pour interdire la sortie
final_end = False
'Etat de la scroll verticale
numberSCROLLROW = 1
EtatDuFractionnement = False
'Ouvrir toujours sur la feuille SYSAttente
ActiveWorkbook.Sheets(11).Activate
End Sub
Private Sub Workbook_SheetBeforeRightClick(ByVal Sh As Object, ByVal Target As Excel.Range, Cancel As Boolean)
'MsgBox "non"
Cancel = True
End Sub
Private Sub Workbook_Deactivate()
'Pour interdire une ouverture intempestive d'un autre fichier dans l'instance
'Ce programme fait appel à deux APIs qui sont déclarées dans le module MAPIs_Declare
On Error GoTo gestErr
If ActiveWorkbook.Name <> ThisWorkbook.Name Then
Nom = ActiveWorkbook.Name
FName = ActiveWorkbook.Path & "\" & Nom
ActiveWorkbook.Close SaveChanges:=False
FName = LongToShort(FName)
Tmp = ShellExecute(0, "open", "Excel.exe", FName, 0&, 1)
Exit Sub
End If
gestErr:
If Err.Number = 0 Or Err.Number = 91 Then Exit Sub
MsgBox Err.Number
End Sub
Private Sub Workbook_BeforeClose(Cancel As Boolean)
'Application.EnableEvents = True
If final_end Then
'XXXXX Partie Icone
If HIcon Then
SetClassLongA hWnd, -14, HIcon
End If
'XXXXX Fin partie icone
'A réactiver pour test
Call fin
Else
Cancel = True
'ActiveWorkbook.Sheets(11).Activate
Application.WindowState = xlMinimized
End If
End Sub
Conclusion
n'hésitez pas à me contacter pour plus amples infos jmlucienvb
Sources de la même categorie
Commentaires et avis
|
Derniers Blogs
[FRAMEWORK 4] LES TASKS ET LE THREAD UI[FRAMEWORK 4] LES TASKS ET LE THREAD UI par fathi
Je viens de passer quelques temps au TechDay's et j'ai pu voir pas mal de session intéressante. Par contre une chose m'a un peu étonné lors de certaines de ces sessions qui abordaient les améliorations du framework .NET (donc le 4.5) : en gros, bea...
Cliquez pour lire la suite de l'article par fathi WORKFLOW FOUNDATION 3 A UN PIED DANS LA TOMBEWORKFLOW FOUNDATION 3 A UN PIED DANS LA TOMBE par JeremyJeanson
Depuis déjà un an, je conseille vivement les utilisateurs de Workflow Foundation 3 à migrer vers la version 4. L'information qui va suivre ne devrait donc pas trop prendre au dépourvu les personnes qui m'ont suivi. Je profite de ce poste, pour faire le re...
Cliquez pour lire la suite de l'article par JeremyJeanson TECHDAYS PARIS 2012 : NOUVELLES TENDANCES DU POSTE DE TRAVAIL - BRING YOUR OWN PCTECHDAYS PARIS 2012 : NOUVELLES TENDANCES DU POSTE DE TRAVAIL - BRING YOUR OWN PC par ROMELARD Fabrice
Speakers: Thierry Rapatout, Antoine Petit et Xavier Trebbia Cette session entre dans le cadre des RDV Décideurs des TechDays 2012, elle est liée à la consumérisation de l'IT et la mise en place du "DeskTop as a Service" dans de plus en ...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice TECHDAYS PARIS 2012 : SYSTEM CENTER SERVICE MANAGER 2012 VUE D'ENSEMBLETECHDAYS PARIS 2012 : SYSTEM CENTER SERVICE MANAGER 2012 VUE D'ENSEMBLE par ROMELARD Fabrice
Speakers: Julien Marechal, Gautier Confiant, Sébastien MEYER La session débute par le positionnement de la solution System Center par rapport aux concepts d'organisation ITIL. Le portail du catalogue de se...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice TECHDAYS PARIS 2012 : PLEINIèRE SECOND JOURTECHDAYS PARIS 2012 : PLEINIèRE SECOND JOUR par ROMELARD Fabrice
Après une première journée dédiée aux développeurs, cette seconde journée est dédiée au monde des entreprises et de ses applications. Ainsi, cette pleinière est dédiée à faire un 360 de l'évolution des applications Business aux demandes ac...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice
Forum
VB6 + GRAPHVIZVB6 + GRAPHVIZ par nouirayosra
Cliquez pour lire la suite par nouirayosra
Logiciels
Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System Easy-Planning (1.0.0.1)EASY-PLANNING (1.0.0.1)Basé sur les mêmes principes que MyPlanning, Easy-Planning permet de créer des plannings sous la ... Cliquez pour télécharger Easy-Planning COLLECTOR PLUS (3.00B)COLLECTOR PLUS (3.00B)COLLECTOR PLUS version 3.00B est un logiciel utilisant une base de données alimentée par :
- L... Cliquez pour télécharger COLLECTOR PLUS PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V7.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V7.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO LettresFaciles 2011 (8.0.0.1)LETTRESFACILES 2011 (8.0.0.1)LettresFaciles est un logiciel facilitant la création et la rédaction de lettres types.
Son inte... Cliquez pour télécharger LettresFaciles 2011
|