Dessiner une bordure pour un titre

Le
elatlas
Bonjour à tous,

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

Exemple :

-
! Titre !
-

Merci d'avance.
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Jacquouille
Le #26373197
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
elatlas
Le #26373247
Bonjour Jacquoille,

L'enregistreur des macros fonctionne sur une feuille Excel, mais pas dans un fichier texte !
isabelle
Le #26373273
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 !

isabelle
Le #26373275
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 !

isabelle
Le #26373281
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
elatlas
Le #26373446
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.
isabelle
Le #26373478
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.

elatlas
Le #26373480
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
'------------
elatlas
Le #26373479
Pour les titres, il y a une série de titres à ajouter tout le long de l a page du fichier texte.
Publicité
Poster une réponse
Anonyme