Problème avec une Boite de dialogue

Résolu/Fermé
rEVOLV3r Messages postés 223 Date d'inscription jeudi 12 août 2010 Statut Membre Dernière intervention 21 septembre 2022 - 22 juil. 2014 à 09:53
rEVOLV3r Messages postés 223 Date d'inscription jeudi 12 août 2010 Statut Membre Dernière intervention 21 septembre 2022 - 23 juil. 2014 à 07:51
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 938 Date d'inscription jeudi 11 septembre 2008 Statut Membre Dernière intervention 16 octobre 2016 54
Modifié par skk201 le 22/07/2014 à 11:11
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 jeudi 12 août 2010 Statut Membre Dernière intervention 21 septembre 2022 28
22 juil. 2014 à 11:23
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 938 Date d'inscription jeudi 11 septembre 2008 Statut Membre Dernière intervention 16 octobre 2016 54
22 juil. 2014 à 13:45
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 jeudi 12 août 2010 Statut Membre Dernière intervention 21 septembre 2022 28
22 juil. 2014 à 14:17
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 24569 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 28 décembre 2023 7 213
22 juil. 2014 à 15:07
Bonjour,

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

eric
0
rEVOLV3r Messages postés 223 Date d'inscription jeudi 12 août 2010 Statut Membre Dernière intervention 21 septembre 2022 28
23 juil. 2014 à 07:51
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