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 :

Programmer une tâche en Excel


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre actif
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Octobre 2012
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Octobre 2012
    Messages : 14
    Par défaut Programmer une tâche en Excel
    Citation Envoyé par SilkyRoad Voir le message
    bonsoir

    Tu peux tester cette procédure pour créer une tache:


    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
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    Option Explicit
     
    '----------------------------------------------------
    'Source:
    'http://www.tek-tips.com/viewthread.cfm?qid=794484
    '
    '----------------------------------------------------
     
    Private Declare Function NetScheduleJobAdd Lib "netapi32.dll" _
        (ByVal Servername As String, Buffer As Any, JobID As Long) As Long
     
     
    Private Type AT_INFO
        JobTime As Long
        DaysOfMonth As Long
        DaysOfWeek As Byte
        Flags As Byte
        Command As String
    End Type
     
     
    Private Enum JobAdd
        JOB_RUN_PERIODICALLY = 1&
        JOB_ADD_CURRENT_DATE = 8&
        JOB_NONINTERACTIVE = 16&
    End Enum
     
     
    Private Enum sjWeekdays
        Monday = 1
        Tuesday = 2
        Wednesday = 4
        Thursday = 8
        Friday = 16
        Saturday = 32
        Sunday = 64
    End Enum
     
     
    Private Enum sjDays
        d1 = 1
        d2 = 2
        d3 = 4
        d4 = 8
        d5 = 16
        d6 = 32
        d7 = 64
        d8 = 128
        d9 = 256
        d10 = 512
        d11 = 1024
        d12 = 2048
        d13 = 4096
        d14 = 8192
        d15 = 16384
        d16 = 32768
        d17 = 65536
        d18 = 131072
        d19 = 262144
        d20 = 524288
        d21 = 1048576
        d22 = 2097152
        d23 = 4194304
        d24 = 8388608
        d25 = 16777216
        d26 = 33554432
        d27 = 67108864
        d28 = 134217728
        d29 = 268435456
        d30 = 536870912
        d31 = 1073741824
    End Enum
     
     
     
    Sub Test()
        '(ouverture du bloc notes)
        vbScheduleJob "notepad.exe", DateAdd("n", 1, Now), JOB_RUN_PERIODICALLY, Wednesday, d4
    End Sub
     
     
    Private Function vbScheduleJob(strCommand As String, sjTime As Date, _
        AddFlags As JobAdd, Optional DayOfWeek As sjWeekdays = 0, _
        Optional DayOfMonth As sjDays = 0, Optional PCName As String = vbNullString) As Long
     
        Dim myInfo As AT_INFO
        Dim JobID As Long
     
        With myInfo
            .Command = StrConv(strCommand, vbUnicode)
            .Flags = AddFlags
            .JobTime = DateDiff("s", "00:00:00", Format(sjTime, "hh:mm:ss")) * 1000
            .DaysOfWeek = DayOfWeek
            .DaysOfMonth = DayOfMonth
        End With
     
        NetScheduleJobAdd PCName, myInfo, JobID
     
        vbScheduleJob = JobID
    End Function


    bonne soirée
    michel

  2. #2
    Membre actif
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Octobre 2012
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Octobre 2012
    Messages : 14
    Par défaut programme
    bonjour je pense que ce code est tres bien pour moi juste a l adapté mais je ne sais pas ou mettre mon code et lire la date exactement 2 mois de difference




    Citation Envoyé par SilkyRoad Voir le message
    bonsoir

    Tu peux tester cette procédure pour créer une tache:


    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
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    Option Explicit
     
    '----------------------------------------------------
    'Source:
    'http://www.tek-tips.com/viewthread.cfm?qid=794484
    '
    '----------------------------------------------------
     
    Private Declare Function NetScheduleJobAdd Lib "netapi32.dll" _
        (ByVal Servername As String, Buffer As Any, JobID As Long) As Long
     
     
    Private Type AT_INFO
        JobTime As Long
        DaysOfMonth As Long
        DaysOfWeek As Byte
        Flags As Byte
        Command As String
    End Type
     
     
    Private Enum JobAdd
        JOB_RUN_PERIODICALLY = 1&
        JOB_ADD_CURRENT_DATE = 8&
        JOB_NONINTERACTIVE = 16&
    End Enum
     
     
    Private Enum sjWeekdays
        Monday = 1
        Tuesday = 2
        Wednesday = 4
        Thursday = 8
        Friday = 16
        Saturday = 32
        Sunday = 64
    End Enum
     
     
    Private Enum sjDays
        d1 = 1
        d2 = 2
        d3 = 4
        d4 = 8
        d5 = 16
        d6 = 32
        d7 = 64
        d8 = 128
        d9 = 256
        d10 = 512
        d11 = 1024
        d12 = 2048
        d13 = 4096
        d14 = 8192
        d15 = 16384
        d16 = 32768
        d17 = 65536
        d18 = 131072
        d19 = 262144
        d20 = 524288
        d21 = 1048576
        d22 = 2097152
        d23 = 4194304
        d24 = 8388608
        d25 = 16777216
        d26 = 33554432
        d27 = 67108864
        d28 = 134217728
        d29 = 268435456
        d30 = 536870912
        d31 = 1073741824
    End Enum
     
     
     
    Sub Test()
        '(ouverture du bloc notes)
        vbScheduleJob "notepad.exe", DateAdd("n", 1, Now), JOB_RUN_PERIODICALLY, Wednesday, d4
    End Sub
     
     
    Private Function vbScheduleJob(strCommand As String, sjTime As Date, _
        AddFlags As JobAdd, Optional DayOfWeek As sjWeekdays = 0, _
        Optional DayOfMonth As sjDays = 0, Optional PCName As String = vbNullString) As Long
     
        Dim myInfo As AT_INFO
        Dim JobID As Long
     
        With myInfo
            .Command = StrConv(strCommand, vbUnicode)
            .Flags = AddFlags
            .JobTime = DateDiff("s", "00:00:00", Format(sjTime, "hh:mm:ss")) * 1000
            .DaysOfWeek = DayOfWeek
            .DaysOfMonth = DayOfMonth
        End With
     
        NetScheduleJobAdd PCName, myInfo, JobID
     
        vbScheduleJob = JobID
    End Function


    bonne soirée
    michel

Discussions similaires

  1. Programmer une tâche à date fixe
    Par melleb dans le forum C#
    Réponses: 3
    Dernier message: 28/03/2012, 19h22
  2. Programmer une tâche quotidienne
    Par Flackou dans le forum Ruby on Rails
    Réponses: 4
    Dernier message: 18/02/2009, 15h25
  3. programmer une tâche via VBA/Excel
    Par simstef dans le forum Excel
    Réponses: 5
    Dernier message: 07/08/2007, 15h53
  4. Programmer une tâche journalière
    Par wiss20000 dans le forum API standards et tierces
    Réponses: 8
    Dernier message: 13/04/2007, 08h56
  5. Comment récupérer l'ID d'une tâche programmée avec AT ?
    Par langela94 dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 23/09/2005, 11h01

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