Comment utilisé une police et qu'elle soit charger avec le fichier

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 !

BLACKHAYES

XLDnaute Impliqué
Bonjour le Forum,

Voila, des fois il m'arrive d'utilisé une police bien spécifique pour mon programme, mais si quelqu'un copie mon programme pour le mettre sur son pc, et qu'il n'a pas la police que j'ai prévu dans certaines cellule cela ne fonctionne pas, alors comment faire pour que la police suive le fichier sur n'importe quel pc.

Pour l'instant, je les mets dans un dossier a part que l'on copie avec le fichier et que l'on va installer par la suite, mais il faut savoir le faire, car il faut les mettrent dans //windows/fonts/..., et tout le monde ne sait pas le faire.

c'est pourquoi je cherche le moyen d'integrer ma police avec le fichier.

merci d'avance,
 
Re : Comment utilisé une police et qu'elle soit charger avec le fichier

bonjour,

ce sont les polices windows qui sont utilisées, excel n'y est pour rien puisqu'il se sert des polices windows
si tu veux ajouter une police, il ne me semble pas avoir vu de code VBA sur ce site qui le fasse
 
Re : Comment utilisé une police et qu'elle soit charger avec le fichier

Bonjour Blackhayes, Bonjour Mutzik,

Il me semble que c'est possible avec Word, avec Powerpoint, mais je ne crois pas que ce soit disponible avec Excel.
Peut-être prévoir la copie des polices en automatique par VBA ?
 
Re : Comment utilisé une police et qu'elle soit charger avec le fichier

bonjour Mutzik, TotoTiTi2008

oui je sais, et je ne dit pas qu'excel est en faute, mais peut etre existe un moyen d'integrer une police via vba, dans "thisworkbook" par exemple, je ne sais pas.

il m'est deja arrivé d'utilisé des programme dont je n'avais pas la police sur mon pc, et elle s'affichait quand meme ??

Merci quand meme pour ta reponse,
 
Dernière édition:
Re : Comment utilisé une police et qu'elle soit charger avec le fichier

Bonjour tout le monde,

Voici le code dont je me sers en VBA pour charger une police non installée sur le poste :

Code:
Private Declare Function AddFontResourceEx Lib "gdi32" Alias "AddFontResourceExA" (ByVal lpszFilename As String, ByVal fl As Long, ByVal pdv As Long) As Long

Private Declare Function RemoveFontResourceEx Lib "gdi32" Alias "RemoveFontResourceExA" (ByVal lpszFilename As String, ByVal fl As Long, ByVal pdv As Long) As Long

Private Const FR_PRIVATE = &H10

Sub AddFontFromFile(pFile As String)
    AddFontFromFile = (AddFontResourceEx(pFile, FR_PRIVATE, 0) > 0)
End Sub

Sub RemoveFontFromFile(pFile As String)
    RemoveFontFromFile = (RemoveFontResourceEx(pFile, FR_PRIVATE, 0) <> 0)
End Sub

Pour charge une police, il te suffit par exemple de faire :

Code:
Call AddFontFromFile("C:\Font\Arial.TTF")

à l'ouverture de ton fichier, sans oublier de la décharger en sortant de ton fichier avec :

Code:
Call RemoveFontFromFile("C:\Font\Arial.TTF")

Bonne journée
 
Dernière édition:
Re : Comment utilisé une police et qu'elle soit charger avec le fichier

Sympa le code
Oui ! Il sort de ma petite boite à outils ^^. Si tu veux utiliser cette police sur des userforms, tu peux compléter ce code avec cette procédure :

Code:
Sub AppliquerPolice(USFDestination As UserForm)
   For Each Ctrl In USFDestination.Controls
       If TypeName(Ctrl) <> "Image" Then Ctrl.Font.Name = Nom_Police
   Next
End Sub
Il suffit après de rajouter :

Code:
Call AppliquerPolice(Me)

dans l'évènement Initialize de chaque userform pour appliquer cette police sur toutes tes contrôles.

Sauf si elle était déjà installée ?
Ben si elle est déjà installée, ya pas besoin de la charger ^^ Je comprends mal ta question je crois.

Si je me souviens bien, ce code n'installe pas vraiment la police, il permet juste de "charger" une police pour pouvoir l'utiliser dans le fichier "en cours".
 
Dernière édition:
Re : Comment utilisé une police et qu'elle soit charger avec le fichier

Re,

Ben si elle est déjà installée, y a pas besoin de la charger

Oui, mais aucun moyen de le savoir à l'avance, si ? donc par défaut on va l'installer, et j'avais peur que tu finisse par supprimer une police du système de quelqu'un qui la possédait déjà

Si je me souviens bien, ce code n'installe pas vraiment la police, il permet juste de "charger" une police pour pouvoir l'utiliser dans le fichier "en cours".

Et donc d'après ce que j'ai lu, il ne désinstalle pas vraiment la police, donc ma remarque n'avait pas lieu d'être 😉
 
Re : Comment utilisé une police et qu'elle soit charger avec le fichier

On va finir par se comprendre ^^

Effectivement, la procédure se contente de décharger la police, elle ne la supprime pas. Donc si la police était déjà installée sur le poste, aucun risque que ça la supprime.

Pour l'exemple j'avais mis le chemin "C:\Font\Arial.TTF" mais dans la réalité, je place la police dans un répertoire dédié au niveau de mon application ce qui donne : ThisWorkbook.Path & "\Polices\"
 
Re : Comment utilisé une police et qu'elle soit charger avec le fichier

Bonsoir à tous,

Je viens de tomber sur ce topic extrêmement intéressant concernant l'utilisation de font sans l'installer.
Cependant, étant un grand débutant en VBA, je ne sais tout simplement pas où il est nécessaire de placer ces morceaux de code.

Pouvez-vous m'aider ?
Merci par avance !
 
- 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

Retour