IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Comment parcourir une plage de cellules par macro avec timer


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre expérimenté
    Homme Profil pro
    Retraité
    Inscrit en
    Avril 2014
    Messages
    308
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Avril 2014
    Messages : 308
    Par défaut Comment parcourir une plage de cellules par macro avec timer
    Bonjour à tous les lecteurs : N'étant pas un pro dans la programmation, je souhaite parcourir une plage de cellules par exemple B1 puis C1 puis D1 par macro avec un Timer qui se déclenche toutes les 15 secondes par exemple.
    Donc de B1 on passe à C1 puis D1 etc. selon le nombre de cellules à parcourir, puis on reviens au point de départ. Ou autre solution on arrête le défilement lorsque la dernière cellule est atteinte. A cela il faut ajouter un bouton lancer le timer puis un second pour la l'arrêt. pas de déclenchement à l'ouverture du classeur.

    Par avance merci pour votre aide.

  2. #2
    Expert confirmé
    Homme Profil pro
    Electrotechnicien
    Inscrit en
    Juillet 2016
    Messages
    3 241
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Electrotechnicien

    Informations forums :
    Inscription : Juillet 2016
    Messages : 3 241
    Par défaut
    Bonjour,

    Ceci avec arrêt à la dernière cellule atteinte (dans l'exemple la cellule K1)

    le fichier
    Pièce jointe 575611

    Le code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Sub Depart()
        Range("B1").Select
        Tempo
    End Sub
     
    Sub Deplacement()
        If ActiveCell.Address = "$K$1" Then Exit Sub
        ActiveCell.Offset(0, 1).Activate
        Tempo
    End Sub
     
    Sub Tempo()
        Application.OnTime Now + TimeValue("00:00:15"), "Deplacement"
    End Sub
    Cdlt

  3. #3
    Membre expérimenté
    Homme Profil pro
    Retraité
    Inscrit en
    Avril 2014
    Messages
    308
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Avril 2014
    Messages : 308
    Par défaut
    Bonjour ARTURO83 : Merci pour ta participation cela fonctionne. Autre question comment Arrêter le timer sur une cellule?

  4. #4
    Expert confirmé
    Homme Profil pro
    Electrotechnicien
    Inscrit en
    Juillet 2016
    Messages
    3 241
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Electrotechnicien

    Informations forums :
    Inscription : Juillet 2016
    Messages : 3 241
    Par défaut
    Bonjour,

    comment Arrêter le timer sur une cellule?
    On peut l'arrêter sur n'importe quelle cellule, le tout est de connaître l'élément qui va déclencher l'arrêt.
    Dans le cas précédent, on arrêtait le timer dès que l'on arrivait à la cellule K1, mais cela on pourrait l'arrêter en fonction du contenu de la cellule ou bien de sa couleur ou autre chose. .
    Quel serait c'est élément déclencheur dans votre cas?

    Cdlt

  5. #5
    Membre expérimenté
    Homme Profil pro
    Retraité
    Inscrit en
    Avril 2014
    Messages
    308
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Avril 2014
    Messages : 308
    Par défaut
    Bonjour ARTURO83 : Merci pour ton aide. Oui en cliquant sur une cellule colorée ferait mon affaire, mais il faut pouvoir relancer le timer en continuant sur la cellule suivante jusqu'à la fin.

  6. #6
    Expert confirmé
    Homme Profil pro
    Electrotechnicien
    Inscrit en
    Juillet 2016
    Messages
    3 241
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Electrotechnicien

    Informations forums :
    Inscription : Juillet 2016
    Messages : 3 241
    Par défaut
    Voici un exemple, réagit au double-clic sur une cellule jaune, et d'arrête lorsque la cellule sélectionnée est jaune ou que la limite fixée est atteinte(dans le cas présent, la limite est la colonne 15)
    le fichier
    Pièce jointe 575693

    le code dans le module de la feuille
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
        Application.EnableEvents = False
        Arret_Macro = False
        If ActiveCell.Interior.Color = RGB(255, 255, 0) Then Deplacement
        Application.EnableEvents = True
    End Sub
    Le code dans un module standard
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Public Arret_Macro As Boolean
     
    Sub Deplacement()
        If Arret_Macro = True Or ActiveCell.Column > 15 Then Exit Sub 'S'arrête si la colonne est supérieure à 15
        Tempo
        ActiveCell.Offset(0, 1).Activate 'décalage
        If ActiveCell.Interior.Color = RGB(255, 255, 0) Then Arret_Macro = True ' si la couleur est trouvée, alors on s'arrête
    End Sub
     
    Sub Tempo()
        Application.OnTime Now + TimeValue("00:00:02"), "Deplacement"
    End Sub
    Cdlt

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 13
    Dernier message: 02/06/2015, 21h43
  2. [XL-2010] Comment manipuler une plage de cellules cachées par un Autofiltre ?
    Par stargates01 dans le forum Macros et VBA Excel
    Réponses: 14
    Dernier message: 08/03/2014, 20h03
  3. Réponses: 2
    Dernier message: 27/09/2006, 19h41
  4. Comment sélectionner une plage de cellules non consécutives?
    Par jokair dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 18/08/2006, 15h36
  5. [VBA] Parcourir une plage de cellule
    Par Dinytro dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 23/09/2005, 08h18

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo