eviter que le texte déborde de la cellule

ripo

XLDnaute Junior
Bonjour,
Comment éviter qu'un texte déborde de la cellule quand la largeur de la colonne est plus petite que la taille du texte?

facile non?... pas pour moi! :)

Merci, A+
 

thomashty

XLDnaute Occasionnel
Re : eviter que le texte déborde de la cellule

Bonjour à tous !!

Pour quoi as tu opté ?

-ajuster ne m'arrange pas, l’écriture devient vraiment minuscule..
-renvoie à la ligne non plus, ça élargit ma cellule..
-l'espace non plus, le faire sur > 2000lignes..

N'y a t il pas un moyen de tout simplement stopper le texte au bord de la cellule ?;)

Bien à vous
TH
 

Roland_M

XLDnaute Barbatruc
Re : eviter que le texte déborde de la cellule

bonsoir à tous,

il n'y a pas 36 solutions, soit,
tu occupes la cellule en face mais tu n'en veux pas
tu élargies la colonne mais tu n'en veux pas
tu essayes de diminuer la police mais tu dis que c'est riqiqi mini
tu renvoies à la ligne mais tu n'en veux pas
...
bref, il ne te reste plus qu'à raccourcir ton texte !? mais tu ne voudras pas non plus !

perso, lorsque j'ai une colonne susceptible de recevoir une trop grande longueur de texte
je place cette colonne en dernier dans mon tableau.
pas toujours évident, mais bon, il faut bien à un moment donné trancher !




Bonjour à tous !!

Pour quoi as tu opté ?

-ajuster ne m'arrange pas, l’écriture devient vraiment minuscule..
-renvoie à la ligne non plus, ça élargit ma cellule..
-l'espace non plus, le faire sur > 2000lignes..

N'y a t il pas un moyen de tout simplement stopper le texte au bord de la cellule ?;)

Bien à vous
TH
 

thomashty

XLDnaute Occasionnel
Re : eviter que le texte déborde de la cellule

bonsoir à tous,

il n'y a pas 36 solutions, soit,
tu occupes la cellule en face mais tu n'en veux pas
tu élargies la colonne mais tu n'en veux pas
tu essayes de diminuer la police mais tu dis que c'est riqiqi mini
tu renvoies à la ligne mais tu n'en veux pas
...
bref, il ne te reste plus qu'à raccourcir ton texte !? mais tu ne voudras pas non plus !

perso, lorsque j'ai une colonne susceptible de recevoir une trop grande longueur de texte
je place cette colonne en dernier dans mon tableau.
pas toujours évident, mais bon, il faut bien à un moment donné trancher !

Vous avez raison il faut parfois savoir faire des concessions !

Va pour l'espace..
 

VIARD

XLDnaute Impliqué
Bonjour à tous

Je suis tombé tout à fait par hasard sur ce thème.
Alors peut-être un début de solution.

VB:
Sub TailleCarac_Par_Taillecellule2()
'ajuster les caractère à la taille de la cellule (largeur)
Dim NbCar%, TailleC%, Large&, Taille%, Text$, Hauteur&

Text = Cells(2, 3).Value
TailleC = Cells(2, 3).Font.Size
NbCar = Len(Text)
'----------------
Large = Cells(2, 3).ColumnWidth
TailleC = (Large * 11.3) / NbCar
Cells(2, 3).Font.Size = TailleC
Hauteur = TailleC * 1.3
Cells(2, 3).RowHeight = Hauteur
If Hauteur < 15 Then Cells(2, 3).RowHeight = 15
Cells(2, 3).VerticalAlignment = xlCenter
Range("C2").Font.Name = "Arial Narrow"
End Sub

A+ Jean-Paul
 

VIARD

XLDnaute Impliqué
Bonjour à toutes et tous

J'ai creusé un peu plus le sujet.
le nouveau module traite la cellule unique ou fusionnée sur la même ligne.
Tel qu'elle est la sub traite une cellule quelconque.

VB:
Sub TailleCarac_Par_Taillecellule3()
'ajuster les caractère à la taille de la cellule (largeur)
'ou cellules fusionnées sur la même ligne
Dim NbCar%, TailleC%, Large&, Taille%, Text$, Hauteur&
Dim Adr$, Adr1$, Lg&, Col%, NbF%, i%

Adr = ActiveCell.Address
Col = Range(Adr).Column
Text = Range(Adr).Value
NbF = ActiveCell.MergeArea.Cells.Count 'Nb colonne
TailleC = Range(Adr).Font.Size
NbCar = Len(Text): If NbCar = 0 Then Exit Sub
Large = Range(Adr).ColumnWidth
'--- Largeur total cellules fusionnées ---
Lg = 0
For i = Col To NbF + Col - 1
    Large = Cells(1, i).ColumnWidth
    Lg = Large + Lg
Next i
'-----------------------------------------
TailleC = (Large * Lg) * 0.8 / NbCar
Range(Adr).Font.Size = TailleC
Hauteur = TailleC * 1.3
Range(Adr).RowHeight = Hauteur
If Hauteur < 15 Then Range(Adr).RowHeight = 15
Range(Adr).VerticalAlignment = xlCenter
Range(Adr).HorizontalAlignment = xlCenter
Range(Adr).Font.Name = "Algerian" '"Arial Narrow"
End Sub

Salutation
Jean-Paul
 

Si...

XLDnaute Barbatruc
Salut

je procède ainsi
upload_2018-11-9_13-43-4.png
 

job75

XLDnaute Barbatruc
Bonjour le fil, salut VIARD, Si...
-l'espace non plus, le faire sur > 2000lignes..
Ce n'est pas un problème avec ce code :
Code:
Sub LimiteTexte()
ActiveSheet.UsedRange.Replace " ", "", xlWhole 'RAZ
With ActiveSheet.UsedRange 'redéfinit le UsedRange
    .Columns(.Columns.Count + 1) = " "
    On Error Resume Next 'si aucune SpecialCell
    .SpecialCells(xlCellTypeBlanks) = " "
End With
End Sub
A+
 

VIARD

XLDnaute Impliqué
Bonjour JOB, SI et à tous

ok, les cellules fusionnées n'étaient pas prévues au programme,
mais pour titrer un tableau c'est pratique ou un tableau de bord.
@SI, oui bien sur c'est ton choix.
@job, bien le code, mais il supprime le texte des cellules fusionnées.

Amicalement
Jean-Paul
 

job75

XLDnaute Barbatruc
Re,
@job, bien le code, mais il supprime le texte des cellules fusionnées.
S'il y a des cellules fusionnées on utilisera un tableau VBA, très rapide :
Code:
Sub LimiteTexte()
Dim t, ub%, i&, j%
ActiveSheet.UsedRange.Replace " ", "", xlWhole 'RAZ
With ActiveSheet.UsedRange 'redéfinit le UsedRange
    With .Resize(, .Columns.Count + 1)
        t = .Formula 'matrice, plus rapide
        ub = UBound(t, 2)
        For i = 1 To UBound(t)
            For j = 1 To ub
                If t(i, j) = "" Then t(i, j) = " "
        Next j, i
        .Formula = t 'restitution
    End With
End With
End Sub
A+
 

Discussions similaires

Réponses
5
Affichages
432

Statistiques des forums

Discussions
314 499
Messages
2 110 249
Membres
110 711
dernier inscrit
chmessi