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 :

Ligne de Commande Batch afficher Usf Excel [XL-2002]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    147
    Détails du profil
    Informations personnelles :
    Âge : 73
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 147
    Par défaut Ligne de Commande Batch afficher Usf Excel
    Bonjour

    Je cherche a ouvrir un Usf Excel "AlerteEchéance" a l'ouverture de Windows
    sans l'application Excel Visible


    Via le tuto "Excel Batch passage de paramétres" j'ai essayé de faire une tache planifiée
    mais ça fonctionne pas voici ce que j'ai fait


    Dans tâches planifiée j'ai mis cette ligne

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "C:\Program Files\Microsoft Office\Office10\EXCEL.EXE" /cmd/AlerteEchéance "C:\Facture Gestion StockV42.xls"
    et ce code dans Workbook_Open

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Private Sub Workbook_Open()
    Dim macmdline As Variant
    Dim monparam As Variant 'déclare une variable
    macmdline = GetCmd 'affecte la valeur de la ligne de commande
    If Not IsNull(macmdline) Then 'si la variable est nulle
    If Len(macmdline) > 0 Then 'on s'assure qu'il y a eu une ligne de commande passée
    If InStr(macmdline, "/cmd") > 0 Then
    macmdline = Replace(macmdline, ThisWorkbook.FullName, "", , , vbTextCompare)
    monparam = Split(macmdline, "/cmd")
    VBA.UserForms.Add(Mid(monparam(1), 2, Len(monparam(1)) - 3)).Show
    End If
    End If
    End If
    End Sub
    Par contre si je met dans tâches planifiées cette ligne ,la ça fonctionne

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "F:\Mes Documents Cat\Formation logiciels\Classeur en Cours\Relevé Facture en Cours\Facture Gestion StockV42.xls"
    Ou ai-je fais une erreur????,,
    Merci de votre aide
    Cordialement

  2. #2
    Membre Expert
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    652
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2009
    Messages : 652
    Par défaut
    Bonjour,

    Changez le code de Workbook_Open

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Private Declare Function GetCommandLine& Lib "kernel32" Alias "GetCommandLineA" ()
    Private Declare Function lstrlen& Lib "kernel32" Alias "lstrlenA" (lpString As Any)
    Private Declare Function lstrcpy& Lib "kernel32" Alias "lstrcpyA" (lpString1 As Any, lpString2 As Any)
     
    Private Sub Workbook_Open()
    Dim A$
    Dim Cmd&
    Cmd& = GetCommandLine()
    A$ = Space$(lstrlen(ByVal Cmd&))
    lstrcpy ByVal A$, ByVal Cmd&
    If Len(A$) > 0 Then MsgBox A$
    End Sub
    Cordialement.

    PMO
    Patrick Morange

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    147
    Détails du profil
    Informations personnelles :
    Âge : 73
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 147
    Par défaut
    Bonsoir

    Merci de votre réponse
    Mais ça ne fonctionne pas
    Excel s'ouvre mais pas mon usf "AlerteEchéance"


    a++++++++++++++
    Cordialement

  4. #4
    Membre Expert
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    652
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2009
    Messages : 652
    Par défaut
    Bonjour,

    Il faut travailler la chaîne A$ comme dans l'exemple ci-dessous

    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
    Private Declare Function GetCommandLine& Lib "kernel32" Alias "GetCommandLineA" ()
    Private Declare Function lstrlen& Lib "kernel32" Alias "lstrlenA" (lpString As Any)
    Private Declare Function lstrcpy& Lib "kernel32" Alias "lstrcpyA" (lpString1 As Any, lpString2 As Any)
     
    Const PARAM1 As String = "AlerteEchéance" 'paramètre ligne de commande
     
    Private Sub Workbook_Open()
    Dim A$
    Dim Cmd&
    Dim Parametre
    Cmd& = GetCommandLine()
    A$ = Space$(lstrlen(ByVal Cmd&))
    lstrcpy ByVal A$, ByVal Cmd&
    If Len(A$) > 0 Then
      A$ = Mid(A$, InStr(1, A$, PARAM1) + Len(PARAM1))
      Parametre = Trim(Mid(A$, 1, InStr(1, A$, " ") - 1))
     
      If Parametre <> "" Then
        If Parametre = "ouzqehfgulzrq" Then
          'faire ceci
        ElseIf Parametre = "omùqkfds" Then
          'faire cela
        ElseIf Parametre = "AlerteEchéance" Then
          'mon_userform.Show
        End If
      End If
     
    End If
    End Sub
    Cordialement.

    PMO
    Patrick Morange

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    147
    Détails du profil
    Informations personnelles :
    Âge : 73
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 147
    Par défaut
    Bonjour
    Merci de votre aide

    J'ai tardé a répondre cause plus de courant EDF depuis vendredi dernier

    J'ai essayé mais j'arrive pas a faire fonctionner votre code comprends pas vraiment ce code
    suis désolé

    Cordialement

  6. #6
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 684
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 684
    Par défaut
    salut,
    je mets en lien le tutoriel en question : http://jpcheck.developpez.com/tutori...ge-parametres/
    Il faut bien faire la distinction entre la tâche planifiée et le batch lancée par la tâche planifiée
    le code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "C:\Program Files\Microsoft Office\Office10\EXCEL.EXE" /cmd/AlerteEchéance "C:\Facture Gestion StockV42.xls"
    est bon, mais il doit être dans un fichier .bat.
    La tâche planifiée exécutera ce fichier .bat
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Migrer les applications VBA Access et VBA Excel vers la Power Platform
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel (3e édition)
    Prise en main de Dynamics 365 Business Central

    Coffrets disponibles de mes ouvrages : https://www.editions-eni.fr/jean-philippe-andre
    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

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

Discussions similaires

  1. Programme en ligne de commande sans afficher les erreurs
    Par ifr38 dans le forum Shell et commandes GNU
    Réponses: 2
    Dernier message: 22/10/2014, 14h42
  2. Barre d'état IE8 en ligne de commande (batch)
    Par larose51 dans le forum IE
    Réponses: 0
    Dernier message: 03/04/2013, 12h55
  3. [Hudson] Exécution ligne de commande batch
    Par kij dans le forum Intégration Continue
    Réponses: 2
    Dernier message: 16/06/2010, 19h42
  4. Réponses: 0
    Dernier message: 04/04/2008, 19h47
  5. Réponses: 7
    Dernier message: 24/07/2006, 21h55

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