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 :

PB dans ma macro automatique


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Homme Profil pro
    Enseignant
    Inscrit en
    Juillet 2017
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Conseil

    Informations forums :
    Inscription : Juillet 2017
    Messages : 17
    Points : 12
    Points
    12
    Par défaut PB dans ma macro automatique
    Bonjour

    Je travaille sous Mac, j'ai un fichier excel qui dois s'actualiser toutes les x minutes et générer un fichier txt par la suite.
    Ce fichier reste ouvert sur un poste que je consulte régulièrement via teamviewer.
    Ma macro ne marche pas, je pense que le fichier excel se met en arrière plan et la macro s'arrête (ou se met en pause). Quand je clique sur mon fichier excel la macro se remet en marche.
    J'ai ajouté un tas de ligne pour que mon fichier se mette en avant plan.
    Je sélectionne des cellules (F1, F2, F3) juste pour voir ma macro pas à pas
    Je cherche à savoir ou est mon erreur (suis un novice en VBA).

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    'Dans ThisWorkBook
    Private Sub Workbook_Activate()
    Workbooks("nom.du.fichier.xlsm").Activate
    ActiveWorkbook.Sheets("Produit").Select
    ActiveSheet.Range("F1").Select
    ActiveWindow.WindowState = xlNormal
    Application.ScreenUpdating = True
    Application.Visible = True
    Application.OnTime Now + TimeValue("00:03:00"), "Enregistrer"
    End Sub
    Private Sub Workbook_open()
    Call Enregistrer
    End Sub
    Ma macro dans le module 1
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    Sub Enregistrer()
    'Mettre au premier plan Feuille Produit 
    Application.Visible = True
    Workbooks("nom.du.fichier.xlsm").Activate
    ActiveWorkbook.Sheets("Produit").Select
    ActiveSheet.Range("F1").Select
    ActiveWindow.WindowState = xlNormal
    Application.Visible = True
    Application.ScreenUpdating = True
    'Attente 2 sec
    Application.Wait (Now + TimeValue("00:00:02"))
    ActiveSheet.Range("G1").Select
    'Actualisation SQL
    ActiveWorkbook.RefreshAll
    ActiveSheet.Range("F2").Select
    'Attente 2 sec
    Application.Wait (Now + TimeValue("00:00:02"))
    'Enlever message pour enregistrer sur fichier existant
    Application.DisplayAlerts = False
    'Sélection Feuille Stock
    ActiveWorkbook.Sheets("stock").Select
    ActiveSheet.Range("F1").Select
    ActiveWindow.WindowState = xlNormal
    Application.Wait (Now + TimeValue("00:00:02"))
    'Direction et format de l'enregistrement
        Sheets("stock").Select
        Sheets("stock").Copy
        ChDir "/Users/toto/Desktop/momo/stock/"
        ActiveWorkbook.SaveAs FileName:= _
            "/Users/toto/Desktop/momo/stock/stock.csv", FileFormat:= _
            xlCSVUTF8, CreateBackup:=False
    ActiveWindow.Close
    Application.Wait (Now + TimeValue("00:00:01"))
    'Enregistrement du fichier et selection Feuille Produits
    ActiveWorkbook.Sheets("Produits").Select
    ActiveSheet.Range("F3").Select
    ActiveWorkbook.Save
    End Sub
    Merci d'avance (et on ne se moque pas)

  2. #2
    Expert confirmé
    Homme Profil pro
    retraité
    Inscrit en
    Juin 2012
    Messages
    3 183
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : retraité
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Juin 2012
    Messages : 3 183
    Points : 5 515
    Points
    5 515
    Par défaut
    Bonjour,

    Juste un petit exemple d'une macro qui se relance toutes les 10 secondes.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    26
    27
    28
    29
    30
    31
    '------ dans ThisWorkBook
     
    Option Explicit
     
    Private Sub Workbook_BeforeClose(Cancel As Boolean)
       '--- sans cela, ce dossier se réouvre et relance MaMacro tant qu'Excel est ouvert
       Application.OnTime EarliestTime:=tNext, Procedure:="MaMacro", Schedule:=False
    End Sub
     
    Private Sub Workbook_Open()
       Worksheets("Feuil1").Select
       Cells.ClearContents
       Range("A1").Select
       MaMacro
    End Sub
     
    '------ dans un module
     
    Option Explicit
     
    Dim kR As Long
    Public tNext As Date
     
    Sub MaMacro()
       kR = kR + 1
       With ThisWorkbook.Sheets("Feuil1")
          .Cells(kR, 1) = Now
       End With
       tNext = DateAdd("s", 10, Now)          '--- toutes les 10 secondes
       Application.OnTime tNext, "MaMacro"
    End Sub
    Bonne continuation.
    Fichiers attachés Fichiers attachés

Discussions similaires

  1. [XL-2007] remplacement de point en virgule automatiquement dans une macro
    Par skipeemed dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 01/10/2010, 12h34
  2. espacement vertical automatique dans des macros
    Par Celadon dans le forum Programmation (La)TeX avancée
    Réponses: 1
    Dernier message: 02/09/2010, 09h30
  3. click automatique dans une macro
    Par volubiliss dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 09/08/2010, 14h04
  4. Réponses: 3
    Dernier message: 30/06/2010, 19h57
  5. Inserer saisie semi-automatique dans une macro
    Par Bib0ucH dans le forum Macros et VBA Excel
    Réponses: 15
    Dernier message: 21/08/2008, 14h45

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