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

Excel Discussion :

Programmer le lancement d'une macro VBA


Sujet :

Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2014
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2014
    Messages : 20
    Par défaut Programmer le lancement d'une macro VBA
    Bonjour le Forum

    J'ai écris un code qui me permet de copier et d'insérer dans un onglet des données (j'ai adapté ce code d'après une discussion du forum "Programmer un enregistrement hebdomadaire en VBA ?"

    Je cherche à automatiser ce code en le lançant une fois par semaine mais ça ne marche pas

    Excel sera toujours ouvert

    Dans le ThisWorkBook
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Private Sub Workbook_Open()
     
    Application.OnTime TimeValue("09:33:00"), "Sauve"
     
    End Sub
    Dans un module

    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 Sauve()
    'Macro enregitrée par jfo le 21/04/2015
     
    If Weekday(Date) = vbSaturday Then
     
    Dim DLig As Integer
     
       With Sheets("Compteur") 'Sélectionne la feuille Compteur
     
        DLig = .Range("A" & Rows.Count).End(xlUp).Row + 1 ' Positionne sur la bonne cellule
        .Rows(DLig).Insert
     
        'Recopie des formules
     
        .Cells(DLig, "A") = Cells(DLig - 1, "A").Value
        .Cells(DLig, "B").FormulaR1C1 = Cells(DLig - 1, "B").FormulaR1C1
        .Cells(DLig, "D").FormulaR1C1 = Cells(DLig - 1, "D").FormulaR1C1
        .Cells(DLig, "E").FormulaR1C1 = Cells(DLig - 1, "E").FormulaR1C1
        .Cells(DLig, "G").FormulaR1C1 = Cells(DLig - 1, "G").FormulaR1C1
        .Cells(DLig, "H").FormulaR1C1 = Cells(DLig - 1, "H").FormulaR1C1
        .Cells(DLig, "I").FormulaR1C1 = Cells(DLig - 1, "I").FormulaR1C1
        .Cells(DLig, "J").FormulaR1C1 = Cells(DLig - 1, "J").FormulaR1C1
     
        'Récupération des données de la feuille "Récap Prises"
     
        Sheets("Récap Prises").Cells(24, 8).Copy Sheets("Compteur").Cells(65535, 3).End(xlUp)(2)
        Sheets("Récap Prises").Cells(37, 8).Copy Sheets("Compteur").Cells(65535, 6).End(xlUp)(2)
     
        Application.CutCopyMode = False
     
       End With
     
     End If
     
       Application.Wait "09:33:01"
       Application.OnTime TimeValue("09:33:00"), "Sauve"
     
        End Sub
    Si besoin je joint le fichier


    Je suis assez novice en vba et je demande votre aide

    D'avance merci pour votre aide et votre disponibilité

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    Je pense qu'il serait possible d'utiliser le "Planificateur de tâches" du système d'exploitation pour ouvrir un classeur contenant une procédure Auto_Open.

  3. #3
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Tu devrais consulter la méthode Ontime de l'objet Application dans l'aide VBA intégrée à Excel.

    Pour ton second code, je ne comprends pas pourquoi tu as mis un Wait. A mon avis, tu peux le retirer.

    Pour le OnTime, essaye :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Application.OnTime Now + 7, "Sauve"
    A ta place, je le mettrais début de code.
    Si tu le mets en fin de code, ça retardera chaque fois son lancement de la durée de l'exécution précédente.
    Je suppose qu'il est possible de corriger ce défaut avec une formule alambiquée sur la date mais le mettre en début de code me semble plus simple.

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 04/05/2009, 15h09
  2. [VBA-XL2007] Problème de lancement d'une macro d'un autre fichier au format xlsm
    Par EvaristeGaloisBis dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 25/09/2008, 23h13
  3. [VBA-E] Lancement d'une macro en fonction du contenu d'une cellule
    Par Zak Blayde dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 30/01/2007, 16h13
  4. [VBA-E]Probleme de lancement d'une macro non souhaité
    Par Mut dans le forum Macros et VBA Excel
    Réponses: 19
    Dernier message: 06/12/2006, 13h50
  5. [VBA-E] Lancement d'une macro située dans un autre fichier
    Par sat478 dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 07/09/2006, 17h48

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