Défilement automatique excel pour projection

Résolu
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

9 réponses

  1. 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
    1. 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
      1. Contributeur
        Non : Tu as confondu Excel et PowerPoint !
        0
        1. 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
          1. 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
            1. Contributeur
              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
          2. Bonjour,

            Merci eric pour ta réponse, je suis sur que paf va nous donner la solution
            0
            1. 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
              1. Bonjour,

                Ok pour le fonctionnement

                Merci à tous
                0
                1. Contributeur
                  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