Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Dessiner une bordure pour un titre

9 réponses
Avatar
elatlas
Bonjour =E0 tous,

Comment peut-on, en VBA, dessiner une bordure pour un titre centr=E9 dans u=
n fichier texte.

Exemple :

-------------
! Titre !
-------------
=09
Merci d'avance.

9 réponses

Avatar
Jacquouille
Bonjour
Une des manières (qui soit à ma portée) ...
Ouvrir une feuille blanche, activer l'enregistreur de macro, puis réaliser
le titre (centrer, encadrer , choix police , couleur ...)
Arrêter l'enregistreur.

Cela est peut-être lourd, mais au moins, on a une bonne base pour commencer.

Bonne journée
Jacques.


Jacquouille

" Le vin est au repas ce que le parfum est à la femme."
a écrit dans le message de groupe de discussion :


Bonjour à tous,

Comment peut-on, en VBA, dessiner une bordure pour un titre centré dans un
fichier texte.

Exemple :

-------------
! Titre !
-------------

Merci d'avance.


---
L'absence de virus dans ce courrier électronique a été vérifiée par le logiciel antivirus Avast.
http://www.avast.com
Avatar
elatlas
Bonjour Jacquoille,

L'enregistreur des macros fonctionne sur une feuille Excel, mais pas dans un fichier texte !
Avatar
isabelle
bonjour ,

en suposant que le fichier texte existe déjà et
il faut adapter cette ligne ("C:UsersisabelleDocumentstest_texte1.txt")
et mettre dans la feuille active du fichier excel en cellule A1:A3
l'info du titre
-------------
! Titre !
-------------

'il faut ajouter la référence : Microsoft Scripting Runtime.

Sub ÉcrireFichierTexte()
Dim oFSO As Scripting.FileSystemObject
Dim oFl As Scripting.File
Dim oTxt As Scripting.TextStream
Dim i As Integer
Set oFSO = New Scripting.FileSystemObject
Set oFl = oFSO.GetFile("C:UsersisabelleDocumentstest_texte1.txt")
Set oTxt = oFl.OpenAsTextStream(ForWriting)
With oTxt
For i = 1 To 3
.WriteLine Selection(i) & Chr(10)
Next i
End With
End Sub

isabelle

Le 2015-10-20 15:09, a écrit :
Bonjour Jacquoille,

L'enregistreur des macros fonctionne sur une feuille Excel, mais pas dans un fichier texte !

Avatar
isabelle
tu peut remplacer cette ligne
.WriteLine Selection(i) & Chr(10)
par celle-ci
.WriteLine Range("A" & i) & Chr(10)

isabelle

Le 2015-10-20 19:32, isabelle a écrit :
bonjour ,

en suposant que le fichier texte existe déjà et
il faut adapter cette ligne ("C:UsersisabelleDocumentstest_texte1.txt")
et mettre dans la feuille active du fichier excel en cellule A1:A3
l'info du titre
-------------
! Titre !
-------------

'il faut ajouter la référence : Microsoft Scripting Runtime.

Sub ÉcrireFichierTexte()
Dim oFSO As Scripting.FileSystemObject
Dim oFl As Scripting.File
Dim oTxt As Scripting.TextStream
Dim i As Integer
Set oFSO = New Scripting.FileSystemObject
Set oFl = oFSO.GetFile("C:UsersisabelleDocumentstest_texte1.txt")
Set oTxt = oFl.OpenAsTextStream(ForWriting)
With oTxt
For i = 1 To 3
.WriteLine Selection(i) & Chr(10)
Next i
End With
End Sub

isabelle

Le 2015-10-20 15:09, a écrit :
Bonjour Jacquoille,

L'enregistreur des macros fonctionne sur une feuille Excel, mais pas dans un
fichier texte !

Avatar
isabelle
aussi le texte du titre et son encadrement peuvent être mit dans la macro
cela évite de passer par des cellules

Sub ÉcrireFichierTexte()
'il faut ajouter la référence : Microsoft Scripting Runtime.
Dim oFSO As Scripting.FileSystemObject
Dim oFl As Scripting.File
Dim oTxt As Scripting.TextStream
Dim i As Integer
Dim arrTitre, sTitre As String, t1 As String, t2 As String, t3 As String

Set oFSO = New Scripting.FileSystemObject
Set oFl = oFSO.GetFile("C:UsersisabelleDocumentstest_texte1.txt")
Set oTxt = oFl.OpenAsTextStream(ForWriting)

sTitre = " Voici le texte de mon titre"
n = Len(sTitre)
t1 = Application.Rept("-", n + 2)
t2 = "!" & sTitre & "!"
t3 = Application.Rept("-", n + 2)
arrTitre = Array(t1, t2, t3)

With oTxt
For i = 0 To 2
.WriteLine arrTitre(i) & Chr(10)
Next i
End With
End Sub

isabelle
Avatar
elatlas
Bonjour Isabelle,

Le fichier à été créé, mais :

1 - l'encadrement n'atteint pas la longueur du texte (Quelques tirets manqu ent encore au dessus et au dessous du texte)

2 - le texte généré n'est pas centré dans la page du fichier texte résultante.
Avatar
isabelle
est-ce qu'il faut ajouter un titre sur un fichier déjà existant ?
si oui, il y aurais la possibilité de mesurer la ligne la plus large.
isabelle

Le 2015-10-21 15:23, a écrit :
Bonjour Isabelle,

Le fichier à été créé, mais :

1 - l'encadrement n'atteint pas la longueur du texte (Quelques tirets manquent encore au dessus et au dessous du texte)

2 - le texte généré n'est pas centré dans la page du fichier texte résultante.

Avatar
elatlas
J'ai essayé les tabulations vbTab.

et voila le code :

'------------
With oTxt
For i = 0 To 2
.WriteLine Application.Rept(vbTab, Int((138 - n - 4) / 8) / 2) & a rrTitre(i) & Chr(10)
Next i
End With
End Sub

' 138 caractères CONSOLAS par ligne
' 8 caractères par vbTab
' 138 - len (titre) - 4 (2 espaces + 2 !) = 12 vbtab
' On divise 12 par deux = 6 vbTab à gauche et 6 vbTba à droite
'------------
Avatar
elatlas
Pour les titres, il y a une série de titres à ajouter tout le long de l a page du fichier texte.