Exécuté en tache de fond, ce classeur se comporte différemment.

Emmanuel75019

XLDnaute Nouveau
Chers Excel Downloaders,

Je n'arrive pas à comprendre pourquoi ce sacré classeur se comporte si différemment, exécuté normalement et en tache de fond...

Pour tester :

1 Télécharger ceci.

2 Exécuter "OxygenMotor.xls" et presser le seul bouton.
3 Tester l'userform qui se présente : OK.
4 Quitter

5 Exécuter "Run Oxygen ... .vbs" (affiche ce même USF, le casseur en tâche de fond.)
6 Tester l'USF : Deux bugs.
7 Penser à arrêter le processus Excel.exe après le crash.

Un grand merci d'avance aux bonnes âmes qui voudront bien étudier ça…

Bien cordialement,

Emmanuel
 
Dernière édition:

Gorfael

XLDnaute Barbatruc
Re : Exécuté en tache de fond, ce classeur se comporte différemment.

Salut Emmanuel75019 et le forum
Je ne l'ai pas lancé, mais :
Quand tu exécutes une instruction du type Sheets("Feuille").range("Ax") excel comprend ActiveWorkBook.Sheets("Feuille").range("Ax").
La précision de ton poste ne me donne pas envie de tester quoi que ce soit : Tâche de fond ? Quelle est la tâche principale ? Des bugs ? Ça ne fonctionne pas comme tu veux ? ou il y a des erreurs Excel, et lesquelles ?

Précise déjà le classeur à toutes tes instructions (ThisWorkBook.sheets(... ) et vérifie que tes erruers existent toujours, et donne-les
A+
 

Emmanuel75019

XLDnaute Nouveau
Re : Exécuté en tache de fond, ce classeur se comporte différemment.

Bonjour Gorfael,

Excuses-moi si j’ai été peu explicite et merci de m’avoir quand même répondu.

J'imagine que ces problèmes ne sont pas des bugs mais je n’arrive à comprendre suffisamment ce qu’il se passe pour solutionner.

Le premier problème se produit avec cette ligne du USF :

Code:
TextBox2.Text = Sheets("pilotes").Range("C4")
Si on remplace C4, qui contient une formule, par D4, qui contient une chaine de caractères (pour test), le problème disparait.


Le deuxième problème se produit avec la recherche, que voici :
Code:
ActiveWorkbook.Worksheets("pilotes").Sort.SortFields.Clear 
ActiveWorkbook.Worksheets("pilotes").Sort.SortFields.Add Key:=Range("A1"), _
        SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
    With ActiveWorkbook.Worksheets("pilotes").Sort
        .SetRange Range("A1:B150")
        .Header = xlNo
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With

J’ai essayé de placer
Code:
msgbox ActiveWorkbook.Name
juste au dessus pour vérifier que les lignes s’appliquent bien au bon classeur : confirmation.


C’est tout ce que je peux dire pour l’instant…. Je n’ai vraiment pas d’autres pistes en tête à explorer…

Merci de ton aide.
 
Dernière édition:

Emmanuel75019

XLDnaute Nouveau
Re : Exécuté en tache de fond, ce classeur se comporte différemment.

Bonjour,

J'ai du nouveau :)
Ce problème se produit sous Excel 2003 mais pas sous 2007.
Le hic c'est ce fichier est destiné à être exécuté sur des postes 2003... :(

Quelqu'un à t-il déjà entendu parler de bugs en mode "tâche de fond" sous 2003 ?
Existe t-il des solutions?

Au cas où ça puisse avoir un intérêt, voici le code du fichier VBS qui exécute le fichier Excel en tâche de fond (Il est dans le dossier que je vous propose de télécharger).

Code:
Set aapp= WScript.CreateObject("WScript.Shell")
Set appli= WScript.CreateObject("excel.Application")
pathString = left(WScript.ScriptFullName, instrrev(WScript.ScriptFullName,"\"))
Set monfichier = appli.Workbooks.Open(pathString & "OxygenMotor.xls", False)
on error resume next
appli.run("invit")

Merci d'avance.

Cordialement,

Emmanuel