Se connecter avec
S'enregistrer | Connectez-vous

Lister les fonts

Dernière réponse : dans Programmation

bonjour,

J'avais l'habitude de bosser avec Excel mais nous voilà avec OpenOffice...

je souhaite réaliser une macro simple qui reprend le contenu de la cellule A1 pour le décliner dans toutes les polices après clic sur une bouton

Bien évidemment la syntaxe a changé.

Quelqu'un pour m'aider ?

Ceci est une traduction du VBA Excel

Modo: Voir message suivant, puisque Titou n'a pas trouvé le bouton pour modifier son message... ;) 

Autres pages sur : lister fonts

Lassé par la pub ? Créez un compte

Salut Zeb

merci pour ton message !

voici donc l'insert :

  1. Sub Sheet1
  2. Sub A1AllFonts()
  3. Dim i, j, fn$, t$, FontList As CommandBarControl
  4. Rem
  5. Individuelt tegnformat, ActiveCell
  6. On Error Resume Next
  7. With ActiveCell
  8. t = .Text: .ClearContents: fn = .Font.Name: .Formula = t
  9. For j = 1 To .Characters.Count
  10. With .Characters(j)
  11. If AscW(.Text) > 256 Then
  12. .Font.Size = 10
  13. .Font.Name = "Arial Unicode MS" '"Arial Unicode MS","Cambria Math","Lucida Sans Unicode"
  14. Else
  15. .Font.Size = 10
  16. .Font.Name = fn
  17. End If: End With: Next: End With
  18. Exit Sub
  19. Rem
  20. Application.ScreenUpdating = False
  21. Set FontList = Application.CommandBars("Formatting" ).FindControl( ID:=172
  22. t = [a1].Value: [b:c].Clear
  23. For i = 1 To FontList.ListCount
  24. Cells(i, 2).Font.Name = FontList.List(i)
  25. Cells(i, 2).Formula = t
  26. Cells(i, 3).Formula = FontList.List(i)
  27. Next
  28. Application.ScreenUpdating = True
  29. End Sub
  30. Rem
  31. End Sub


Merci par avance... je coince grave !
Expert Programmation

Pas avant ce we. Et pas du tout si la neige me bloque. :( 
En constatant par ailleurs que je suis un Linuxien éclairé, tu serais en droit de croire que les logiciels bureautiques libres n'ont aucun secret pour moi. Et bien non. En matière de tableur, je reste fidèle à la plus belle réussite de MS : Excel.
(J'ai bien un OOo d'installé sur mon portable sous Ubuntu, mais je ne l'ai pas sous la main)

M'enfin...
EH Y'A QUELQU'UN QUI PEUT AIDER TITOU ??????

:hello:  Zeb,
:hello:  Storos,

Bon, la neige est venue, j'espère que Zeb n'est pas resté bloqué ! Ici on a un peu plus de 5cm sur le verglas...

Je suis heureux de voir que nous sommes trois, :D  maintenant. he he he

j'ai essayé plusieurs modifs mais c'est plus simple en VBA et je suis d'accord avec Zeb : EXCEL est bien le meilleur !

je compte donc sur vous mes amis... un coup de main s'il vous plait.



Cordialement,

T2
Expert Programmation

Ça c'est du up, ou je ne m'y connais plus ^^

Regarde ce premier exemple :
  1. sub liste_des_fonts
  2. Dim font As Object
  3. Dim list As String
  4. Dim i As Integer
  5.  
  6. i = 1
  7. for each font in CreateUnoService("com.sun.star.awt.Toolkit").createScreenCompatibleDevice(0, 0).FontDescriptors
  8. list = list & font.Name
  9. if font.StyleName <> "" then list = list & " (" & font.StyleName & ")"
  10. list = list & chr(10)
  11. if i Mod 20 = 0 then
  12. Msgbox list
  13. list = ""
  14. end if
  15. i = i + 1
  16. next
  17. Msgbox list
  18. end sub

Hello Zeb, :hello: 

Merci pour le temps que tu as pris pour essayer de trouver une solution ! :) 

La macro, que tu as la gentillesse de me proposer, liste bien toutes les polices... Euh... Je me suis sans doute mal exprimé, mon objectif est d'afficher le contenu de A1 dans la colone B, décliné dans toutes les fonts du système...

J'ai fais d'autres recherches de mon côté. En voici un exemple, qui ne marche pas NON PLUS ! grrr

  1. Sub ExemplePolice()
  2.  
  3.  
  4. phrase=InputBox("phrase de test :","Liste des polices","Ceci est un essai")
  5.  
  6. oText=thisComponent.getText()
  7. oCursor = oText.createTextCursor()
  8.  
  9. rem 'Liste des fontes '
  10.  
  11. Dim oToolkit as Object
  12. oToolkit = CreateUnoService("com.sun.star.awt.Toolkit")
  13. Dim oDevice as Variant
  14. oDevice = oToolkit.createScreenCompatibleDevice(0, 0)
  15. Dim oFontDescriptors As Variant
  16. oFontDescriptors = oDevice.FontDescriptors
  17. Dim oFontDescriptor As Object
  18.  
  19. thiscomponent.lockcontrollers
  20. for i= LBound(oFontDescriptors) to UBound(oFontDescriptors)
  21. oCursor.CharFontName=oFontDescriptors(i).Name
  22. oCursor.string=cstr(i)+". "+oFontDescriptors(i).Name+chr(10)
  23. valide=oCursor.gotoEnd(false)
  24. oCursor.string=phrase+chr(10)+chr(10)
  25. valide=oCursor.gotoEnd(false)
  26. next i
  27. thiscomponent.unlockcontrollers
  28.  
  29. End Sub


Ahhh, je regrette le Cobol et le Pascal tiens ! ça c'était une époque glorieuse !

Petit Papa Noël, ... n'oublie pas mon ami Zeb...

A plus,

Titou
Expert Programmation

Ah non, cher ami, ne compte pas sur moi pour faire ta macro.

Par contre, je te liste les polices dans un premier temps, je te copie du texte d'une case à l'autre dans un second temps, puis j'applique une police sur un texte dans un troisième temps. Ensuite, avec tes petits doigts, tu me compiles tout ça pour faire TA macro. Tu la publies ici et je te dis comment tu aurais pu faire mieux. A l'issue, on aura appris beaucoup de choses et on aura une macro qui fait ce qu'on lui demande et qui aura le bon goût de le faire bien.

(La suite ce soir ;)  )
Lassé par la pub ? Créez un compte