OVH Cloud OVH Cloud

Impression d'un long texte dans une cellule

2 réponses
Avatar
Pierre Archambault
Bonjour à tous,

J'ai créé une classeur qui comporte deux feuilles. La première est le recto
d'un contrat avec tous les détails relatif au travail à faire etc. Sur la
deuxième feuille, j'ai tapé les conditions du contrat. J'ai mis un
paragraphe par cellule. Les cellules ont une largeur qui correspond à la
largeur imprimable de la page. Le format de ces cellules (paragraphes) est :

Alignement | contrôle du texte : "Renvoyer à la ligne automatiquement."

Après avoir sélectionné ces deux pages, j'arrive à les imprimer
correctement. Mais si je le fais par programmation VBA, la première page est
correcte mais la seconde n'imprime que les ± 255 premiers caractères de
chaque cellule. Pourquoi ce comportement ? Y a-t-il une façon de contourner
ce problème. J'ai besoin que ce soit fait par VBA.

Merci de votre aide

Pierre

2 réponses

Avatar
Patrick BASTARD
Bonjour, *Pierre Archambault*

Puis-je me permettre respectueusement de te conseiller d'utiliser plutôt
Word (ou tout autre traitement de texte).
Excel sait faire plein de choses, mais en traitement de texte, ce n'est pas
vraiment la meilleure solution.


--
Bien amicordialement,
P. Bastard



Bonjour à tous,

J'ai créé une classeur qui comporte deux feuilles. La première est le
recto d'un contrat avec tous les détails relatif au travail à faire
etc. Sur la deuxième feuille, j'ai tapé les conditions du contrat.
J'ai mis un paragraphe par cellule. Les cellules ont une largeur qui
correspond à la largeur imprimable de la page. Le format de ces
cellules (paragraphes) est :

Alignement | contrôle du texte : "Renvoyer à la ligne
automatiquement."

Après avoir sélectionné ces deux pages, j'arrive à les imprimer
correctement. Mais si je le fais par programmation VBA, la première
page est correcte mais la seconde n'imprime que les ± 255 premiers
caractères de chaque cellule. Pourquoi ce comportement ? Y a-t-il une
façon de contourner ce problème. J'ai besoin que ce soit fait par VBA.

Merci de votre aide

Pierre


Avatar
michdenis
Bonjour Pierre,

Une suggestion, tu ajoutes seulement pour l'impression, une zone de texte dans lequel tu transfères le texte de la plage de
cellules.

Le code aurait l'air de ceci :

Adapte le nom de la feuille "Feuil1" dans la procédure
et la plage de cellule où est ton texte

'------------------------------------------
Private Sub Workbook_BeforePrint(Cancel As Boolean)

Dim T As String, C As Range
Dim Sh As Worksheet
Application.ScreenUpdating = False
For Each Sh In ActiveWindow.SelectedSheets
If Sh.Name = "Feuil1" Then 'à adapter
With Sh.Range("A1:G51") 'à définir ...
Set Tb = Sh.OLEObjects.Add(ClassType:="Forms.TextBox.1", _
Link:úlse, DisplayAsIcon:úlse, _
Left:=.Left, Top:=.Top, Width:=.Width - 0.05, Height:=.Height - 0.05)
Tb.Object.MultiLine = True
Tb.ShapeRange.Line.Visible = msoFalse
For Each C In Sh.Range("A1:A3")
T = T & C.Value & vbCrLf
Next
Tb.Object.Text = T
End With
With Sh
.PageSetup.CenterHorizontally = True
.PageSetup.CenterVertically = True
.PrintOut
End With
Tb.Object.Delete
Else
Sh.PrintOut
End If
Next
Cancel = True

End Sub
'------------------------------------------


Salutations!




"Pierre Archambault" a écrit dans le message de news: pRQdf.3532$
Bonjour à tous,

J'ai créé une classeur qui comporte deux feuilles. La première est le recto
d'un contrat avec tous les détails relatif au travail à faire etc. Sur la
deuxième feuille, j'ai tapé les conditions du contrat. J'ai mis un
paragraphe par cellule. Les cellules ont une largeur qui correspond à la
largeur imprimable de la page. Le format de ces cellules (paragraphes) est :

Alignement | contrôle du texte : "Renvoyer à la ligne automatiquement."

Après avoir sélectionné ces deux pages, j'arrive à les imprimer
correctement. Mais si je le fais par programmation VBA, la première page est
correcte mais la seconde n'imprime que les ± 255 premiers caractères de
chaque cellule. Pourquoi ce comportement ? Y a-t-il une façon de contourner
ce problème. J'ai besoin que ce soit fait par VBA.

Merci de votre aide

Pierre