Auto Scroll pour textbox

Bataille

XLDnaute Nouveau
Bonjour!

Je suis dans la panade depuis quelque jour car je bug sur un defilement automatique horizontal du texte (un peu grand) de mon textbox.

J'espère que vous pourrai m'aider a trouver la solution car je bouine, je bouine, mais ne trouve pas!

J'utilise la cellule A1 de ma feuil1 pour aller cherché un texte que je souhaiterai afficher dans mon textbox appelé "ReportText".

Private Sub UserForm_Initialize()
ReportText = Sheets("Feuil1").Range("A1")

End Sub

Donc ça c'est OK!

J'ai trouvé sur un forum voisin un code pour faire défiler un texte qui visiblement marche pour cette personne mais que je n'arrive pas a adapté a mes besoin. Sans doute mon manque de connaissance en VB...

Private Sub ReportText_change()
Me.ReportText.SelLength = 0
If Len(Me.ReportText.Text) > 0 Then
If Right(Me.ReportText.Text, 1) = vbCrLf Then
Me.ReportText.SelStart = Len(Me.ReportText.Text) - 1
Exit Sub
End If
Me.ReportText.SelStart = Len(Me.ReportText.Text)
End If
Me.ReportText.Refresh
End Sub

lorsque je lance la macro, elle s'arrete et me surligne en jaune "Private Sub ReportText_change()", puis en bleu "Me.ReportText.Refresh".

Lorsque je supprime "Me.ReportText.Refresh" la macro demarre mais du coup le défilement ne fonctionne pas..

Ceux-ci dit je ne comprend pas le code que j'ai trouvé donc ça ne m'aide pas..

Si quelqu'un a une idée pour me dépanner, je suis preneur!

Merci d'avance pour votre participation et votre aide!!

PS: Mon textbox est dans un userform.
 

Bataille

XLDnaute Nouveau
Re : Auto Scroll pour textbox

Merci Pierrot93 pour ton aide.

La macro demarre bien mais mon texte ne défile pas.. Je comprend pas!!

Le code ressemble a ça:
Code:
Private Sub ReportText_change()
Me.ReportText.SelLength = 0
If Len(Me.ReportText.Text) > 0 Then
    If Right(Me.ReportText.Text, 1) = vbCrLf Then
        Me.ReportText.SelStart = Len(Me.ReportText.Text) - 1
        Exit Sub
    End If
    Me.ReportText.SelStart = Len(Me.ReportText.Text)
End If
 Me.Repaint
End Sub

Private Sub UserForm_Initialize()
ReportText = Sheets("Feuil1").Range("A1")

End Sub

Mon textbox affiche bien le texte mais le curseur clignotte a droite.

Je trouve quasiment pas de solution sur le net.. C'est le mimi, le rara, c'est la me...:(
 

Pierrot93

XLDnaute Barbatruc
Re : Auto Scroll pour textbox

Re,

bah.. je comprends pas trop... si je mets ton code dans un textbox ayant toutes les propriétés par défaut, à priori j'obtiens un comportement qui me parait être celui défini par le code....
 

Bataille

XLDnaute Nouveau
Re : Auto Scroll pour textbox

Logique.. ;)
Ne comprennent pas le code et l'ayant copié collé, la tache est rude!
Je me demande si le code est correct par rapport a ce que je souhaite faire car en cherchant sur le net j'apprend que selstart et SelLength servent a sélectionner..
 

Eric C

XLDnaute Barbatruc
Re : Auto Scroll pour textbox

Bonsoir le forum
Bonsoir Bataille, bonsoir Pierrot

Retrouvé dans ma cantine poussiéreuse mais toujours fonctionnelle, une soluce de, je pense notre ami Michel Xld (j'espère ne pas me tromper ...). Le WebBrowser fait office de TextBox et peut prendre la valeur de la cellule A1 (Il faut bidouiller mais j'ai testé et cela fonctionne).
 

Pièces jointes

  • TexteDefilantUSF.xls
    52 KB · Affichages: 46

Bataille

XLDnaute Nouveau
Re : Auto Scroll pour textbox

Re,

Je bidouille, je bidouille... et je cale.
J'utilise un code pour alimentais le webbrowser de façon a ce qu'il aille chercher une ligne de texte, qui change a chaque redemarrage de l'userform, dans un fichier infos.txt de manière a pouvoir tranformer les differente ligne du fichier, que je souhaite diffuser,sans avoir a toucher au tableau excel.

Mais j'ai un bug dans le code et je calcul pas. Private Sub Quitter_Click() est surligné en jaune et tablInfos est surligné en bleu. Ca fonctionne sur un textbox mais j'arrive pas a l'appliqué sur le webbrowser.
Si vous avez une idée, de la ou j'ai merdé, je prend.
Merci a modeste pour son aide sur ce code.

Code:
Private Sub Quitter_Click()
    Dim J As Integer
    
    ' On incrémente et on met le fichier à jour
    Open ThisWorkbook.Path & "\infos.tmp" For Output As #2
        If CheckBox1.Value = True Then
            flagLine = 0
        Else
            flagLine = flagLine + 1
        End If
        If flagLine > nbLines Then flagLine = 1
        Print #2, flagLine
        For J = 1 To nbLines
            Write #2, tablInfos(J)
        Next J
    Close #2
 
    Kill fullFileName
    Name ThisWorkbook.Path & "\infos.tmp" As fullFileName
    WebBrowser1.Text = ""
    Me.Hide

End Sub



Private Sub selection_évènement_Activate()
    Dim J As Integer
    Dim Info As String
    
    fullFileName = ThisWorkbook.Path & "\infos.txt"
    nbLines = 0
    Open fullFileName For Input As #1
        Input #1, flagLine
        While Not EOF(1)
            Input #1, Info
            nbLines = nbLines + 1
            ReDim Preserve tablInfos(nbLines)
            tablInfos(nbLines) = Info
        Wend
        If Val(flagLine) > 0 Then
            CheckBox1.Visible = True
            CheckBox1.Value = False
            WebBrowser1.Visible = True
            WebBrowser1.Text = tablInfos(flagLine)
        Else
            WebBrowser1.Visible = False
            CheckBox1.Visible = False
        End If
    Close #1
        
End Sub

Merci d'avance pour votre aide qui mets indispensable!:)
 

Statistiques des forums

Discussions
312 223
Messages
2 086 407
Membres
103 201
dernier inscrit
centrale vet