Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Excel > Macros et VBA Excel
Macros et VBA Excel Vos questions relatives aux macros Excel, à l'utilisation de VBA et à l'automatisation de vos classeurs Excel.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 06/11/2011, 14h27   #1
Invité de passage
 
Inscription : février 2007
Messages : 17
Détails du profil
Informations forums :
Inscription : février 2007
Messages : 17
Points : 1
Points : 1
Par défaut Auto scroll avec pause

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.
Canidé est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/11/2011, 19h07   #2
Membre du Club
 
Homme
developpeur
Inscription : octobre 2011
Messages : 85
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : developpeur
Secteur : Distribution

Informations forums :
Inscription : octobre 2011
Messages : 85
Points : 63
Points : 63
Par défaut re

Bonsoir,

Je penses que tu cherches à faire une sorte d'effet??

Si c'est ce genre de chose tu peux essayer ceci:

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
Option Explicit
Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Sub Deffilement()
 
    Dim nbligne, nbDeCellules
 
    Range("A1").Select
 
     nbligne = 8
nbDeCellules = 8
 
boucle:
    Sleep 10000 ' temps en milliseconde
    Rows("1:" & nbligne).Select 'selection pour le masquage des lignes
    Selection.EntireRow.Hidden = True ' masque la selection
    ActiveCell.Offset(nbligne, 0).Activate 'active la prochaine serie
    If ActiveCell.Offset(1, 0).Value <> "" Then 'controle le nombre de serie
    nbligne = nbligne + nbDeCellules 'ajoute la variable du nbre de cellule
    GoTo boucle 'boucle la série
    End If
 
    Cells.EntireRow.AutoFit 'affiche l'ensemble des cellules masquées
    Range("A1").Select ' retourne au départ de la serie
 
End Sub
A coller dans un module dans vb...

A+
lenovo49 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/11/2011, 17h49   #3
Invité de passage
 
Inscription : février 2007
Messages : 17
Détails du profil
Informations forums :
Inscription : février 2007
Messages : 17
Points : 1
Points : 1
Cette ligne ne passe pas: fenêtre erreur de compilation

Code :
Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Merci
Canidé est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/11/2011, 18h43   #4
Membre du Club
 
Homme
developpeur
Inscription : octobre 2011
Messages : 85
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : developpeur
Secteur : Distribution

Informations forums :
Inscription : octobre 2011
Messages : 85
Points : 63
Points : 63
Par défaut re

Bonsoir,
Essayes avec le code complet avec ceci:

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
Sub Deffilement()
 
    Dim nbligne, nbDeCellules
 
    Range("A1").Select
 
     nbligne = 8
nbDeCellules = 8
 
boucle:
    Application.Wait (Now + TimeValue("0:00:10"))' temps  de boucle
    Rows("1:" & nbligne).Select 'selection pour le masquage des lignes
    Selection.EntireRow.Hidden = True ' masque la selection
    ActiveCell.Offset(nbligne, 0).Activate 'active la prochaine serie
    If ActiveCell.Offset(1, 0).Value <> "" Then 'controle le nombre de serie
    nbligne = nbligne + nbDeCellules 'ajoute la variable du nbre de cellule
    GoTo boucle 'boucle la série
    End If
 
    Cells.EntireRow.AutoFit 'affiche l'ensemble des cellules masquées
    Range("A1").Select ' retourne au départ de la serie
 
End Sub
Au plaisir.
lenovo49 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/11/2011, 20h05   #5
Invité de passage
 
Inscription : février 2007
Messages : 17
Détails du profil
Informations forums :
Inscription : février 2007
Messages : 17
Points : 1
Points : 1
Rien ne se passe sauf pointeur souri sablier quelques secondes

Merci
Canidé est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/11/2011, 20h37   #6
Membre du Club
 
Homme
developpeur
Inscription : octobre 2011
Messages : 85
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : developpeur
Secteur : Distribution

Informations forums :
Inscription : octobre 2011
Messages : 85
Points : 63
Points : 63
Par défaut re

Bonsoir,

Deux questions, as tu ajouté du texte de la cellule A1 à... (exemple A20)?
Il y t-il un bug au lancement?

Chez moi ca fonctionne correctement.

J'attends tes réponses.
lenovo49 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/11/2011, 20h49   #7
Invité de passage
 
Inscription : février 2007
Messages : 17
Détails du profil
Informations forums :
Inscription : février 2007
Messages : 17
Points : 1
Points : 1
Non pas de texte seulement un fond bleu de A1 à A150

comment savoir si bug au lancement

Je lance la macro par executer de outils macro
au lancement le curseur devient sablier après le 10 premières secondes, il y a un
petit sursaut d'ecran et le curseur redevient normal puis plus rien ne se passe
Canidé est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/11/2011, 21h13   #8
Membre du Club
 
Homme
developpeur
Inscription : octobre 2011
Messages : 85
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : developpeur
Secteur : Distribution

Informations forums :
Inscription : octobre 2011
Messages : 85
Points : 63
Points : 63
Par défaut re

Bonsoir,

Ah oui, il faut mettre du texte ou une lettre dans les cellules de A1 à A150 par exemple!!

Merci de me détailler le but de cette macro car si elle fonctionne qu'avec les couleurs c'est pas le bon code.

Ce code sert à faire dérouler les paquets de ligne de 8 tous les 10 secondes.
mais il faut de la matiere dans les cellules de la premiere colonne.
lenovo49 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/11/2011, 21h38   #9
Invité de passage
 
Inscription : février 2007
Messages : 17
Détails du profil
Informations forums :
Inscription : février 2007
Messages : 17
Points : 1
Points : 1
je joins le fichier
Seuls "Joueurs", "ClasseP1", "ClasseP2", "ClasseP3", "Classe P4" sont concernés par le défilement Fichier exemple.xls

ok ça le déroulement fonctionne, j'ai numéroter les cellules A1 à A150 avec la même couleur que le font pour ne pas voir les numéros.
Par contre ça ne boucle, le défilement revient au départ et s'arrète
Canidé est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/11/2011, 22h53   #10
Membre du Club
 
Homme
developpeur
Inscription : octobre 2011
Messages : 85
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : developpeur
Secteur : Distribution

Informations forums :
Inscription : octobre 2011
Messages : 85
Points : 63
Points : 63
Par défaut re

Bon,

Ok je vois ce que tu veux faire mais cela va te poser un autre pb:
si je boucle en permance, comment tu va faire pour sortire de cette boucle??
Et tout le temps que cette boucle va s'executer, aucune autres macros ne pourront être activés au même moment!!

Connaît tu le nombre de boucle que tu souhaite ou le temps nécessaire au défilement?

Sinon ce code peut se declancher à la suite d'un événement dans ta feuille..
A toi de me donner des piste???
lenovo49 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/11/2011, 12h30   #11
Invité de passage
 
Inscription : février 2007
Messages : 17
Détails du profil
Informations forums :
Inscription : février 2007
Messages : 17
Points : 1
Points : 1
Bonjour,

On me propose ceci:

Code :
1
2
3
4
5
6
7
8
9
Sub Joueurs
y = 1
Sheets("Joueurs").Cells(1).Select
Do
Application.Wait DateAdd("s", 1, Now)
Application.Goto IIf(ActiveCell.Row + 10 >= Cells(Rows.Count, 1).End(xlUp).Row + 10, Sheets("Joueurs").Cells(1), ActiveCell.Offset(10)), True
If ActiveCell.Row = 1 Then y = y + 1
Loop Until y > Sheets("Joueurs").Range("A1").Value
End Sub
Une macro par feuille ( Ctrl+j ) dans ce cas, ce qui permet d'avoir un raccourci clavier spécifique à chaque feuille ( ici "Joueurs" ) et d'éviter de lancer la mauvaise feuille.

De choisir le nombre de boucle dans "A1"

merci pour votre avis
Canidé est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/11/2011, 19h07   #12
Membre du Club
 
Homme
developpeur
Inscription : octobre 2011
Messages : 85
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : developpeur
Secteur : Distribution

Informations forums :
Inscription : octobre 2011
Messages : 85
Points : 63
Points : 63
Par défaut re

Bonsoir,

Serait il possible de faire de nous faire un point sur le but final de ce classeur?

Explique l'interêt afin de te donner une réponse plus précise.

A+
lenovo49 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/11/2011, 16h19   #13
Invité de passage
 
Inscription : février 2007
Messages : 17
Détails du profil
Informations forums :
Inscription : février 2007
Messages : 17
Points : 1
Points : 1
Bonjour,

Le but du classeur est de rentrer les résultats des joueurs de plusieurs manches sur des feuilles appropriées afin de projeter sur un écran d'autres feuilles mises en forme qui ne reprennent que les totaux de chaque joueur dans l'ordre décroissant, ce qui donne leur classement.
Le nombre important de joueurs oblige à projeter par paquet de 10 avec une pause pour le temps de lecture.

Merci à tous
Canidé est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 16h49.


 
 
 
 
Partenaires

Hébergement Web