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

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,
 

mutzik

XLDnaute Barbatruc
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
 

tototiti2008

XLDnaute Barbatruc
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 ?
 

BLACKHAYES

XLDnaute Impliqué
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:

GeoTrouvePas

XLDnaute Impliqué
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:

GeoTrouvePas

XLDnaute Impliqué
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:

tototiti2008

XLDnaute Barbatruc
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 ;)
 

GeoTrouvePas

XLDnaute Impliqué
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\"
 

lelinuxien52

XLDnaute Nouveau
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 !
 

Discussions similaires

Réponses
3
Affichages
539
Compte Supprimé 979
C
Réponses
2
Affichages
312

Membres actuellement en ligne

Statistiques des forums

Discussions
312 370
Messages
2 087 693
Membres
103 641
dernier inscrit
anouarkecita2