Problème avec une Boite de dialogue

Résolu
rEVOLV3r Messages postés 223 Date d'inscription   Statut Membre Dernière intervention   -  
rEVOLV3r Messages postés 223 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

Voici mon problème, que je ne comprend pas accessoirement.
Le code si dessous sert à ouvrir un a un des répertoires contenant des données dans le but de les traiter. Cependant, c'est la que ca devient bizarre, il fonctionne très bien ! Mais pas la permière fois. Lorsque que j'allume mon ordi je dois obligatoirement enlever les ' devant retval afin d'ouvrir la boite de dialogue (que je quitte directe). Sans ca, je peux faire ce que je veux mais le programme me fait une erreur "Fichier introuvable" alors qu'il est ouvert (ouai il est con des fois).

Donc pour résumer : si je montre pas le chemin en "Hard" avec la boite de dialogue lors de l'allumage de l'ordinateur, ma macro bug. Mais une fois que cela a été fait, plus de problème ! plus besoin d'avoir cette boite. POURQUOI ????
Si quelqu'un peut m'expliquer ca serait niquel :-)
merci beaucoup !

For i = 0 To 8

'Définition du chemin à tester - PERMET DE PAS FAIRE BUGER LA MACRO SUIVANTE
Dim RetVal As Boolean

CheminOpen = CheminMachine(i)
CheminOpenData = CheminOpen & "\*."
ChDir (CheminOpen)

'RetVal = Application.Dialogs(xlDialogOpen).Show(CheminOpenData) 'ouverture de la boite de dialogue
'If RetVal = True Then Exit Sub 'si "annulé" est pressé parce que le chemin est correct, alors on continue
'Y a t'il des fichiers à déplacer ?


Dim objOFS As Variant
Set objOFS = CreateObject("Scripting.FileSystemObject")

'Test si au moins un fichier present
If Dir(CheminOpenData) <> "" Then

fichier = Dir(CheminOpenData)
...



A voir également:

5 réponses

skk201 Messages postés 942 Date d'inscription   Statut Membre Dernière intervention   54
 
Si tu met un ' ça deveindra un commentaire plus un ligne d'exectution.

For i = 0 To 8

'Définition du chemin à tester - PERMET DE PAS FAIRE BUGER LA MACRO SUIVANTE
Dim RetVal As Boolean

CheminOpen = CheminMachine(i)
CheminOpenData = CheminOpen & "\*."
ChDir (CheminOpen)

'RetVal = Application.Dialogs(xlDialogOpen).Show(CheminOpenData) 'ouverture de la boite de dialogue
'If RetVal = True Then Exit Sub 'si "annulé" est pressé parce que le chemin est correct, alors on continue
'Y a t'il des fichiers à déplacer ?


Dim objOFS As Variant
Set objOFS = CreateObject("Scripting.FileSystemObject")

'Test si au moins un fichier present
If Dir(CheminOpenData) <> "" Then

fichier = Dir(CheminOpenData) 


Maintenant sans les appostrphes

For i = 0 To 8

'Définition du chemin à tester - PERMET DE PAS FAIRE BUGER LA MACRO SUIVANTE
Dim RetVal As Boolean

CheminOpen = CheminMachine(i)
CheminOpenData = CheminOpen & "\*."
ChDir (CheminOpen)

RetVal = Application.Dialogs(xlDialogOpen).Show(CheminOpenData) 'ouverture de la boite de dialogue
If RetVal = True Then Exit Sub 'si "annulé" est pressé parce que le chemin est correct, alors on continue
'Y a t'il des fichiers à déplacer ?


Dim objOFS As Variant
Set objOFS = CreateObject("Scripting.FileSystemObject")

'Test si au moins un fichier present
If Dir(CheminOpenData) <> "" Then

fichier = Dir(CheminOpenData) 


Tu vois la différence ?

Edit:

Maintenant que je reli je pense pas que ça soit ça le problème.

Dans la ligne
RetVal = Application.Dialogs(xlDialogOpen).Show(CheminOpenData)


Tu t'attend a ce que Application.Dialogs(xlDialogOpen).Show(CheminOpenData) Renvoie True/False... ?

Ajoute cette ligne avant le Retval = Application... et regarde quel valeur ça te renvoie.

 Msgbox Application.Dialogs(xlDialogOpen).Show(CheminOpenData) 
0
rEVOLV3r Messages postés 223 Date d'inscription   Statut Membre Dernière intervention   28
 
Bonjour,

Merci de votre réponse.

Oui je connais la différence entre un commentaire et une lignes d'exécution ;-) J'en suis a plus de 100'000 lignes de codes VBA je pense ^^

Le problème c'est que je voudrais pas avoir besoin d'utiliser cette boite de dialogue...mais j'ai rien trouvé d'autre pour initier le bon fonctionnement du programme après avoir allumé mon ordinateur :-(
J'aimerais pouvoir la virer.

En expliquant mieux :

1) Ordi allumé
2) Excel ouvert
3) macro lancée -> bug -> chemin introuvable
4) enlever ' de la ligne retval
5) relancer la macro -> boite de dialogue -> quitte
6) remettre ' devant la ligne retval
7) lancer autant de fois la macro que possible, jamais plus de bug

Voila ce qu'il se passe en gros.
J'aimerais juste plus devoir avoir a faire avec cette fichue boite de dialogue ;-)

Merci bien ! C'est cool de répondre autant vite !
Bonne journée
0
skk201 Messages postés 942 Date d'inscription   Statut Membre Dernière intervention   54
 
Tu peux faire que la boite de dialogue se lance uniquement si il y a une erreur grace a la ligne "On error goto"

Si tu me donne tout le code je peux te montrer.
0
rEVOLV3r Messages postés 223 Date d'inscription   Statut Membre Dernière intervention   28
 
Ah oui pas bête...j'y avais pas pensé. Merci je vais essayer déjà par moi même ;-)

Mais ca résoudra pas le fait que j'ai envie d'enlever une bonne fois pour toute cette boite de dialogue :-D mais honnetement j'arrive pas a comprendre pourquoi je dois lui montrer le chemin de cette facon pour qu'après elle fonctionne...
0

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

Posez votre question
eriiic Messages postés 24603 Date d'inscription   Statut Contributeur Dernière intervention   7 276
 
Bonjour,

CheminOpenData = CheminOpen & "\*."
Il ne manque pas une extension derrière \*. ?

eric
0
rEVOLV3r Messages postés 223 Date d'inscription   Statut Membre Dernière intervention   28
 
Bonjour,

Non ce sont des données de type FICHIER. donc pas d'extensions. Assez le bordel a traiter pour les tests j'en conviens, mais je n'ai pas l'autorisation de modifier les programmes LabView les générant :-(
0