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 -
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)
...
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:
- Problème avec une Boite de dialogue
- Boite gmail saturée - Guide
- Dialogue boost - Accueil - Guide streaming
- Boite gmail bloquée - Guide
- Se connecter à ma boite hotmail - Guide
- Boite a couleur - Télécharger - Divers Photo & Graphisme
5 réponses
Si tu met un ' ça deveindra un commentaire plus un ligne d'exectution.
Maintenant sans les appostrphes
Tu vois la différence ?
Edit:
Maintenant que je reli je pense pas que ça soit ça le problème.
Dans la ligne
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.
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)
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
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
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.
Si tu me donne tout le code je peux te montrer.
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...
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...
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question