Faire défiler une listbox en VBA

Le
Gilbert
Bonjour,

Dans un formulaire j'ai une listbox qui affiche le compte-rendu d'exécution d'une procédure.
Le traitement affiche de nombreuses lignes, ce qui fait qu'au bout d'un moment il n'est plus possible de lire ce qui s'affiche
pendant l'exécution.
On peut bien sûr utiliser la barre de défilement verticale, mais j'aimerais que ce défilement soit automatique.

Connaissez-vous le moyen de réaliser ça en VBA?

Merci d'avance

--
Cordialement,

Gilbert
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
jero
Le #21400291
Salut,
Par exemple : (btFaireDéfiler : bouton de commande, tTxt1 textbox)
Private Sub btFaireDéfiler_Click()
Dim Lg As Byte, Pos As Byte, I As Byte, Ch As String, svgTxt1 As String, Nb
As Long
Nb = 3000000 : 'à adapter
svgTxt1 = Me.tTxt1
Lg = Len(svgTxt1)
For I = 1 To Lg
Ch = Mid(svgTxt1, I + 1, Lg - I) & Left(svgTxt1, I)
Me.tTxt1 = Ch
tempo (Nb)
DoEvents
Next I
Me.tTxt1 = svgTxt1
End Sub

Sub tempo(Tps As Long)
Dim T As Long
For T = 1 To Tps: Next T
End Sub
A+

"Gilbert"
Bonjour,

Dans un formulaire j'ai une listbox qui affiche le compte-rendu
d'exécution d'une procédure.
Le traitement affiche de nombreuses lignes, ce qui fait qu'au bout d'un
moment il n'est plus possible de lire ce qui s'affiche
pendant l'exécution.
On peut bien sûr utiliser la barre de défilement verticale, mais
j'aimerais que ce défilement soit automatique.

Connaissez-vous le moyen de réaliser ça en VBA?

Merci d'avance

--
Cordialement,

Gilbert



Gilbert
Le #21401361
Merci de ta réponse.

Ce n'est pas une zone de texte (textbox) que je veux faire défiler, c'est
une zone de liste (listbox) dans laquelle des lignes s'inscrivent les unes
au-dessous des autres.
Je voudrait que la dernière ligne inscrite soit toujours visible.
Comme si je cliquais à chaque fois sur la flèche basse de la barre de
défilement verticale.

Gilbert



"jero"
Salut,
Par exemple : (btFaireDéfiler : bouton de commande, tTxt1 textbox)
Private Sub btFaireDéfiler_Click()
Dim Lg As Byte, Pos As Byte, I As Byte, Ch As String, svgTxt1 As String,
Nb As Long
Nb = 3000000 : 'à adapter
svgTxt1 = Me.tTxt1
Lg = Len(svgTxt1)
For I = 1 To Lg
Ch = Mid(svgTxt1, I + 1, Lg - I) & Left(svgTxt1, I)
Me.tTxt1 = Ch
tempo (Nb)
DoEvents
Next I
Me.tTxt1 = svgTxt1
End Sub

Sub tempo(Tps As Long)
Dim T As Long
For T = 1 To Tps: Next T
End Sub
A+

"Gilbert"
Bonjour,

Dans un formulaire j'ai une listbox qui affiche le compte-rendu
d'exécution d'une procédure.
Le traitement affiche de nombreuses lignes, ce qui fait qu'au bout d'un
moment il n'est plus possible de lire ce qui s'affiche
pendant l'exécution.
On peut bien sûr utiliser la barre de défilement verticale, mais
j'aimerais que ce défilement soit automatique.

Connaissez-vous le moyen de réaliser ça en VBA?

Merci d'avance

--
Cordialement,

Gilbert








jero
Le #21412981
Excuse... je suis allé un peu vite...
Je regarde ce week-end si j'ai un moment
A+
"Gilbert" %23AA%
Merci de ta réponse.

Ce n'est pas une zone de texte (textbox) que je veux faire défiler, c'est
une zone de liste (listbox) dans laquelle des lignes s'inscrivent les unes
au-dessous des autres.
Je voudrait que la dernière ligne inscrite soit toujours visible.
Comme si je cliquais à chaque fois sur la flèche basse de la barre de
défilement verticale.

Gilbert



"jero"
Salut,
Par exemple : (btFaireDéfiler : bouton de commande, tTxt1 textbox)
Private Sub btFaireDéfiler_Click()
Dim Lg As Byte, Pos As Byte, I As Byte, Ch As String, svgTxt1 As String,
Nb As Long
Nb = 3000000 : 'à adapter
svgTxt1 = Me.tTxt1
Lg = Len(svgTxt1)
For I = 1 To Lg
Ch = Mid(svgTxt1, I + 1, Lg - I) & Left(svgTxt1, I)
Me.tTxt1 = Ch
tempo (Nb)
DoEvents
Next I
Me.tTxt1 = svgTxt1
End Sub

Sub tempo(Tps As Long)
Dim T As Long
For T = 1 To Tps: Next T
End Sub
A+

"Gilbert"
Bonjour,

Dans un formulaire j'ai une listbox qui affiche le compte-rendu
d'exécution d'une procédure.
Le traitement affiche de nombreuses lignes, ce qui fait qu'au bout d'un
moment il n'est plus possible de lire ce qui s'affiche
pendant l'exécution.
On peut bien sûr utiliser la barre de défilement verticale, mais
j'aimerais que ce défilement soit automatique.

Connaissez-vous le moyen de réaliser ça en VBA?

Merci d'avance

--
Cordialement,

Gilbert












Gilbert
Le #21409841
Bon, j'ai trouvé dans un forum

Liste.TopIndex = Liste.ListCount - 1

--
Cordialement,

Gilbert


"Gilbert"
Merci de ta réponse.

Ce n'est pas une zone de texte (textbox) que je veux faire défiler, c'est
une zone de liste (listbox) dans laquelle des lignes s'inscrivent les unes
au-dessous des autres.
Je voudrait que la dernière ligne inscrite soit toujours visible.
Comme si je cliquais à chaque fois sur la flèche basse de la barre de
défilement verticale.

Gilbert



"jero"
> Salut,
> Par exemple : (btFaireDéfiler : bouton de commande, tTxt1 textbox)
> Private Sub btFaireDéfiler_Click()
> Dim Lg As Byte, Pos As Byte, I As Byte, Ch As String, svgTxt1 As String,
> Nb As Long
> Nb = 3000000 : 'à adapter
> svgTxt1 = Me.tTxt1
> Lg = Len(svgTxt1)
> For I = 1 To Lg
> Ch = Mid(svgTxt1, I + 1, Lg - I) & Left(svgTxt1, I)
> Me.tTxt1 = Ch
> tempo (Nb)
> DoEvents
> Next I
> Me.tTxt1 = svgTxt1
> End Sub
>
> Sub tempo(Tps As Long)
> Dim T As Long
> For T = 1 To Tps: Next T
> End Sub
> A+
>
> "Gilbert" >
>> Bonjour,
>>
>> Dans un formulaire j'ai une listbox qui affiche le compte-rendu
>> d'exécution d'une procédure.
>> Le traitement affiche de nombreuses lignes, ce qui fait qu'au bout d'un
>> moment il n'est plus possible de lire ce qui s'affiche
>> pendant l'exécution.
>> On peut bien sûr utiliser la barre de défilement verticale, mais
>> j'aimerais que ce défilement soit automatique.
>>
>> Connaissez-vous le moyen de réaliser ça en VBA?
>>
>> Merci d'avance
>>
>> --
>> Cordialement,
>>
>> Gilbert
>>
>>
>>
>
>
>


Publicité
Poster une réponse
Anonyme