Défilement automatique excel pour projection

Résolu
Félebo Messages postés 17 Statut Membre -  
eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   -
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. Paf
     
    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
  2. Félebo Messages postés 17 Statut Membre 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
  3. Raymond PENTIER Messages postés 58226 Date d'inscription   Statut Contributeur Dernière intervention   17 490
     
    Non : Tu as confondu Excel et PowerPoint !
    0
  4. Félebo
     
    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
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Félebo
     
    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. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
       
      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
  7. Félebo
     
    Bonjour,

    Merci eric pour ta réponse, je suis sur que paf va nous donner la solution
    0
  8. Paf
     
    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
  9. Félebo Messages postés 17 Statut Membre 1
     
    Bonjour,

    Ok pour le fonctionnement

    Merci à tous
    0
  10. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
     
    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