Détecter un retour à la ligne automatique.

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

mromain

XLDnaute Barbatruc
Bonjour le forum,


Suite à cette discussion, j'ai effectué quelques recherches afin de savoir comment détecter les retours à la ligne automatique du texte dans une cellule.
Malheureusement, je n'ai pas réussi à trouver une solution...

Si vous en avez une, je suis preneur 🙂.

A+
 
Re : Détecter un retour à la ligne automatique.

Bonjour tout le monde,

Une idée qui semble prometteuse mais que je n'ai pas le temps d'approfondir plus pour cause de travaux :
Créer un textbox avec les même caractéristiques que la cellule et relever la ligne des mots grâce à la propriété curline.
propriétés de textbox1 :
- multiline=true
-selection.margin=false
Code:
Sub test()
    With Worksheets("feuil1")
        .TextBox1.Width = [B2].Width + 2
        .TextBox1.Height = [B2].Height
        
        .TextBox1.Text = [B2].Value
        .TextBox1.Font.Name = [B2].Font.Name
        .TextBox1.Font.Bold = [B2].Font.Bold
        .TextBox1.Font.Italic = [B2].Font.Italic
        .TextBox1.Font.Size = [B2].Font.Size
        
        .TextBox1.SelStart = 60
        .TextBox1.Activate
        MsgBox ("'afin' est en ligne " & .TextBox1.CurLine + 1)
    End With
End Sub
Je ne sais pas si le +2 à .width est général ou lié à ma résolution écran.

Si quelqu'un veut prendre la suite, j'ai des cartons à faire... ;-)
eric

Edit: j'avais oublié l'essentiel : .TextBox1.Text = [B2].Value, fichier joint non modifié.
 

Pièces jointes

Dernière édition:
Re : Détecter un retour à la ligne automatique.

Bonjour eriiiic,

C'est plus que prometteur, ça règle élégamment le problème.

En faisant une boucle sur la position de chaque lettre du texte de la cellule, la propriété CurLine de la TextBox donnera sa ligne.

Bravo.

A+
 
Re : Détecter un retour à la ligne automatique.

Re Eric,

Un petit bémol cependant.

Dans la cellule, des caractères peuvent avoir des polices différentes de la police de base.

Ce n'est pas possible de répercuter cela dans la TextBox.

Peut-être utiliser une RichTextBox ? Mais je n'y connais rien, je n'en ai jamais installé.

A+
 
Re : Détecter un retour à la ligne automatique.

Bonsoir,

Autre bémol : mon idée ne peut pas s'appliquer à une fonction personnalisée (qui ne peut changer son environnement...)
Seulement à un sub, ce qui réduit son intérêt. Désolé...
eric
 
Re : Détecter un retour à la ligne automatique.

J'ai trouvé une solution si c'est toujours d'actualité. ^__^
texte saisi dans un textbox retranscrit dans des cellules en fonction de curline


Dim i As Long, lg As Long, x As Long, y As Long, lg2 As Long
Me.TextBox1.SetFocus
For i = 1 To Len(Me.TextBox1)
Me.TextBox1.SelStart = i
lg = Me.TextBox1.CurLine
Next i


For x = 0 To lg
For i = 1 To Len(Me.TextBox1)
Me.TextBox1.SelStart = i
lg2 = Me.TextBox1.CurLine
If lg2 = x Then Range("A1").Offset(y, 0) = Range("A1").Offset(y, 0) & Mid(Me.TextBox1, i, 1)
Next i
If Range("A1").Offset(y + 1, 0) = "" And Range("A1").Offset(y + 1, 0).Locked = False Then y = y + 1
Next x
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
2
Affichages
115
Réponses
5
Affichages
186
Réponses
56
Affichages
2 K
Réponses
5
Affichages
142
Réponses
5
Affichages
208
Retour