Lancer un shell et garder la main dans Excel

pivecleyrac Messages postés 8 Date d'inscription   Statut Membre Dernière intervention   -  
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,
Je cherche à mettre à jour un fichier excel à son ouverture.
Je suis sur un serveur dolibarr, ou je gère une base de tarif d'articles, et j'ai un fichier Excel, qui récupère les tarifs. Or je n'ai pas réussi à me connecter à la base de données, donc j'ai créé un fichier php, sur mon site qui créé un fichier .csv dans mon répertoire téléchargement.
A l'ouverture de mon fichier excel, j'ouvre avec shell le fichier php via Chrome.
Le problème, c'est que je perds la main d'Excel, et donc ne peut plus continuer automatiquement ma macro.
Voici ma macro:
Sub Lance_Tarif()
    Dim navigate As String
    navigate = "https://le nom de mon site/excel.php"
    Shell "C:\Program Files (x86)\Google\Chrome\Application\chrome.exe " & navigate, 0
    ..... la macro continue
End Sub


Si quelqu'un a des suggestions je suis preneur.
Merci d'avance.
Christophe
A voir également:

7 réponses

yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 584
 
bonjour, veux-tu dire que la macro s'arrête en attendant que chrome se termine?
0
pivecleyrac Messages postés 8 Date d'inscription   Statut Membre Dernière intervention  
 
Bonjour et merci de t'intéresser à ma question.
Non la macro continue, malheureusement, mais la fenêtre chrome devient active et le reste.
Je dis malheureusement, car j'aimerais que la macro attende la fin du processus de téléchargement du fichier .csv avant de continuer. J'ai mis une tempo Application.Wait (Now + TimeValue("0:00:09")), mais suivant la rapidité de la connexion, des fois ce n'est pas assez long.
Merci d'avance.
0
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 584
 
je suppose que ta macro va obtenir des données du ficher chargé, et que c'est pour cela que tu veux attendre. est-ce le cas?
peut-être est-il possible que la macro vérifie que le fichier est présent ou est récent avant de continuer?
0
pivecleyrac Messages postés 8 Date d'inscription   Statut Membre Dernière intervention  
 
Oui effectivement, le fichier que je crée permet de récupérer des données.
Il est forcément absent avant de le créer, je le supprime à la fin de ma macro.
pour tester la présence, on fait un do while?
0
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 584
 
0
pivecleyrac Messages postés 8 Date d'inscription   Statut Membre Dernière intervention  
 
Merci pour ces infos, j'ai fait :
While Fs.FileExists("monfichier.txt") <> True
    Application.Wait (Now + TimeValue("0:00:01"))
Wend

ça à l'air de fonctionner.

Comme je l'expliquais dans mon premier message, ma macro ouvre chrome, pour télécharger le fichier. J'aimerais le faire en arrière plan, et garder la main sur Excel. Pour la définition du Shell je me suis aidé de cette page https://docs.microsoft.com/fr-fr/office/vba/language/reference/user-interface-help/shell-function
mais en mettant 0 ou 6 cela ne change rien...

Dim navigate As String
navigate = "https://le nom de mon site/excel.php"
Shell "C:\Program Files (x86)\Google\Chrome\Application\chrome.exe " & navigate, 0
0
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 584
 
que veux-tu dire par "garder la main"? veux-tu qu"Excel soit en avant-plan?
je pense que c'est chrome qui passe lui-même en avant plan, même si il est démarré sans l'être.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
pivecleyrac Messages postés 8 Date d'inscription   Statut Membre Dernière intervention  
 
Oui c'est parfaitement ça. Du coup c'est possible?
0
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 584
 
je ne pense pas qu'on puisse demander à chrome de rester discret.
0
pivecleyrac Messages postés 8 Date d'inscription   Statut Membre Dernière intervention   > yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention  
 
Effectivement ça semble compliqué, Merci pour ton coup de main.
0
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 584 > pivecleyrac Messages postés 8 Date d'inscription   Statut Membre Dernière intervention  
 
peux-tu alors marquer la discussion comme résolue?
0
Chris_33000 Messages postés 523 Date d'inscription   Statut Membre Dernière intervention   48
 
bonjour,
vous pourriez ouvrir l'application en mode réduit ?
ex : start /min "" "C:\Windows\notepad.exe"
Cordialement,
0
pivecleyrac Messages postés 8 Date d'inscription   Statut Membre Dernière intervention  
 
Bonjour Chris_33000
Merci pour ta réponse.
je ne trouve pas comment écrire la fonction start. Pourrais-tu me dire ou on la trouve, merci d'avance.
Cordialement.
0
Chris_33000 Messages postés 523 Date d'inscription   Statut Membre Dernière intervention   48
 
0
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 584 > Chris_33000 Messages postés 523 Date d'inscription   Statut Membre Dernière intervention  
 
as-tu testé avec chrome?
0
Chris_33000 Messages postés 523 Date d'inscription   Statut Membre Dernière intervention   48 > yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention  
 
non je n'ai pas Chrome... J'ai testé avec IE c'est tout :
start /min "" "C:\Program Files\Internet Explorer\iexplore.exe"
0
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 584 > Chris_33000 Messages postés 523 Date d'inscription   Statut Membre Dernière intervention  
 
bonne idée, @Chris_33000, on dirait que ceci fonctionne:
Shell "C:\Program Files\Internet Explorer\iexplore.exe", vbMinimizedNoFocus 
,
je suppose donc que
Shell "C:\Program Files\Internet Explorer\iexplore.exe " & navigate , vbMinimizedNoFocus 

fera ce que pivecleyrac demande.
0
pivecleyrac Messages postés 8 Date d'inscription   Statut Membre Dernière intervention   > yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention  
 
C'est presque parfait messieurs, encore une petite question, la commande
Shell "C:\Program Files\Internet Explorer\iexplore.exe " & navigate , vbMinimizedNoFocus
ouvre une fenêtre pour me demander si je veux ouvrir ou enregistrer le fichier. Est-il possible d'obliger le fichier à s'enregistrer? Peur-être en php?
Merci d'avance.
0