Défilement automatique excel pour projection

Résolu/Fermé
Félebo Messages postés 13 Date d'inscription vendredi 26 octobre 2007 Statut Membre Dernière intervention 29 mai 2020 - 6 nov. 2011 à 15:18
eriiic Messages postés 24570 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 23 avril 2024 - 9 nov. 2011 à 17:13
Bonjour,

Je cherche à faire défiler automatiquement les lignes d'une feuille excel avec une pause.
Feuille: 5 colonnes, X lignes
Affichage: 5 colonnes, 8 lignes, pause de 10 secondes puis les 8 lignes suivantes
et ainsi de suite jusqu'à la dernière ligne
Défilement en boucle (à la fin, repartir au départ).

Si code ou macro, comment les introduire à la feuille pour faire fonctionner.

Merci pour votre aide qui me sera très précieuse.

Windows XP pack3
Excel 2002
A voir également:

9 réponses

Bonjour,

<Outils >, <Macro>, <Nouvelle Macro>

Définir le nom et les touches de raccourci pour lancer la macro

<Ok>

puis

<outils>, <Macro> , <arrêter la macro>

puis <outils>, <Macro>,<macro>

sélectionner le nom de la macro définie précédemment

puis <Modifier>

on passe alors sous l'éditeur vba et dans la fenêtre nouvellement ouverte copier le code ci-dessous:

NbLig = 8
Pause = "0:00:10"
Range("A1").Select
Derlig = Range("A" & Rows.Count).End(xlUp).Row
i = 1
While 1 < 2
    Application.Wait Now + TimeValue(Pause)
    ActiveWindow.SmallScroll Down:=NbLig
    i = i + 8
        If i > Derlig Then
            ActiveWindow.SmallScroll up:=i
            i = 1
    End If
Wend



Fermer l'éditeur vba

sur la feuille excel utiliser les touches de raccourci définies au début pour lancer la macro

bonne suite
2
Félebo Messages postés 13 Date d'inscription vendredi 26 octobre 2007 Statut Membre Dernière intervention 29 mai 2020 1
7 nov. 2011 à 16:16
Merci Paf

Voici la macro dans vba

Sub Défilement()

NbLig = 8
Pause = "0:00:10"
Range("A1").Select
Derlig = Range("A" & Rows.Count).End(xlUp).Row
i = 1
While 1 < 2
Application.Wait Now + TimeValue(Pause)
ActiveWindow.SmallScroll Down:=NbLig
i = i + 8
If i > Derlig Then
ActiveWindow.SmallScroll up:=i
i = 1
End If
Wend

End Sub

Lorsque j'appuie sur ctrl+d (touche raccourci choisie), il ne se passe rien seul le pointeur de souri devient un sablier et reste indéfiniment.
Pour sortir il faut que j'appuie 2 fois sur Echap
Le débeger me donne la ligne i = 1en jaune.

Si tu peux m'aider, merci
1
Raymond PENTIER Messages postés 58395 Date d'inscription lundi 13 août 2007 Statut Contributeur Dernière intervention 25 avril 2024 17 095
6 nov. 2011 à 16:48
Non : Tu as confondu Excel et PowerPoint !
0
Non il s'agit bien d'excel.
Je souhaite projeter les résultats obtenus sous excel qui sont affichés en plein écran sur mon portable.
Les lignes étant nombreuses, il faudrait les afficher par 8 et faire défiler ces paquets de 8 les uns après les autres avec une pause entre.
Je suis novice donc si utilisation de vba, soyez gentille de me donner la marche à suivre pour introduire le code dans excel.
Merci
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Bonsoir,

Merci Paf, ton code fonctionne, il fallait que les cellules de A1 à A150 contiennent quelque chose
Comment faire pour stopper la boucle soit manuellement, soit après un certain nombre de boucles
0
eriiic Messages postés 24570 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 23 avril 2024 7 213
7 nov. 2011 à 22:34
Bonsoir,

Je laisse paf répondre à ta question, mais il faudrait insérer un DoEvents() dans la boucle que le micro puisse traiter les autres évènements du système.
eric
0
Bonjour,

Merci eric pour ta réponse, je suis sur que paf va nous donner la solution
0
re avec du retard

1) pour que ça fonctionne si la colonne A est toujours vide , modifier, dans Derlig = Range("A" & Rows.Count).End(xlUp).Row, "A" par la lettre de la première colonne non vide.
2) pour stopper la boucle manuellement : pas de solution simple( pour moi !) peut être qu' eriic pourrait l'indiquer?
3) pour arrêter après un certain nombre de boucle, le code ci dessous:
NbLig = 8
NbBoucle = 100
Pause = "0:00:10"
Range("A1").Select

Derlig = Range("A" & Rows.Count).End(xlUp).Row
i = 1
For j= 1 To NbBoucle
    Application.Wait Now + TimeValue(Pause)
    ActiveWindow.SmallScroll Down:=NbLig
    i = i + 8
        If i > Derlig Then
            ActiveWindow.SmallScroll up:=i
            i = 1
    End If
Next

dans cette version, l'usage de la touche <Echap> interrompt la macro.

Bonne suite
0
Félebo Messages postés 13 Date d'inscription vendredi 26 octobre 2007 Statut Membre Dernière intervention 29 mai 2020 1
9 nov. 2011 à 16:24
Bonjour,

Ok pour le fonctionnement

Merci à tous
0
eriiic Messages postés 24570 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 23 avril 2024 7 213
9 nov. 2011 à 17:13
Bonjour,

J'insiste, il faut absolument insérer un DoEvents() dans la boucle que le micro puisse traiter les autres évènements du système.

eric
0