Erreur d'execution 75

houston87 Messages postés 26 Date d'inscription mercredi 27 janvier 2010 Statut Membre Dernière intervention 28 septembre 2011 - 18 févr. 2010 à 16:38
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 - 19 févr. 2010 à 09:57
un petit ptoblème à régler

j'importe un fichier à partir d'un module avec getopenfile et avec deuxième module je procède à l'analyse de ce fichier chemin qui intervient dans mon code quand je le fais comme ça ça marche trés bien, je vous donne une partie du code par exemple

a = FreeFile
Open chemin For Binary As #a
Get #a, 25, Freq
Close #a
Range("B1").Value = Fre


Par contre des que j'essaie de refaire la même analyse en recliquant une deuxième fois sur le bouton paramtrer avec le deuxième moduel j'ai une erreur d'exécution 75 qui me dit comme quoi il y a une erreur d'accès au chemin comme si il le retrouvait pas comment puis je faire pour garder mon fichier comme dans une mémoire le temps de cette analyse ou même de mettre en place un chemin variable selon ce que je vais mettre lors de l'ouverture et d'éviter cette erreur et ça soit comme ça pour les prochaines analyses.

voici donc mon module concerné


Public chemin As String


Public Sub file()


chemin = Application.GetOpenFilename()

If UCase(Right(chemin, 3)) <> "WAV" Then
MsgBox "Ce n'est pas un Fichier .Wav ", vbCritical + 4096, "Attention!"
Exit Sub
End If


End Sub


Merci d'avance

6 réponses

cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
18 févr. 2010 à 17:05
-1- On dit bonjour, ça se fait
-2- VBA est présent sur tous les logiciels Office : Dans lequel travailles-tu ?
-3- Le manque de ponctuation et le fait que tu ne te sois pas relu fait que ta question est difficile à comprendre, surtout quand tu nous parles d'analyse, perso, je ne vois de quoi tu parles.
-4- "j'importe un fichier à partir d'un module avec getopenfile" Non, tu sélectionnes. Importer, c'est autre chose.
-5- "des que j'essaie de refaire la même analyse" : Sélection ? parce que "analyse" ...
-6- "sur le bouton paramtrer" : Quel bouton ? On ne voit pas de code qui ait un lien avec un bouton
-7- Ah non, faute de français qui, ajouté au manque de ponctuation, neccessite un décryptage : Quelle horreur !
"sur le bouton paramtré
avec le deuxième moduel
"
Pourquoi une deuxième fois ?
La première fois sur le même bouton, tu allais dans la même Sub, non ?
Pu***n ! m***e ! Relisez-vous les gars ! C'est du charabiah !

Si Chemin est dimensionné (à un seul endroit) en Public dans un module, il gardera sa valeur dans tout le code.
Sur quelle instruction as-tu cette erreur ?
Que vaut Chemin au moment de l'erreur ?

Puisqu'on en est à sortir la boule de cristal, recherches-tu simplement que "ta variable Chemin conserve soin contenu entre deux lancements du programme ?"
(tu as vu ? une question précise en moins d'une ligne !)
--> Il faudra la stocker dans un fichier sur le disque (*), les données ne restent pas en mémoire après fermeture.
(*) Recherche "lire fichier" ou "écrire fichier" sur le site

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
0
houston87 Messages postés 26 Date d'inscription mercredi 27 janvier 2010 Statut Membre Dernière intervention 28 septembre 2011
18 févr. 2010 à 17:43
-1- Rebonjour
-2- VBA sur excel
-3- Alors je t'explique, j'ai fichier wave que j'importe sur excel et le but et récupérer les données de ce fichier pour tracer sa courbe.
-4- effectivement je me suis mal exprimé je sélectionne un dossier à partir duquel je cherche mon fichier
-5- j'ai créer donc un module que j'ai appelé analyse dont je fais appel à partir d'un bouton qui est sur une de mes feuilles et voici une partie du code qui me permet par exemple de lire la fréquence d'échantillonnage de mon fichier

a = FreeFile
Open chemin For Binary As #a
Get #a, 25, Freq
Close #a
Range("B1").Value = Freq



J'ai mis chemin en rouge parceque c'est mon lien que je vais chercher sur un fichier.

-6- J'ai un deuxième bouton que j'ai nommé OPEN FILE et dont lequel je fait apel à un autre module FILE et c'est là ou j'ai pu utilisé mon fameux GETOPENFILE et on retrouve chemin utilisé pour le module d'avant voici le code que j'ai utilisé

Public chemin As String
Public Sub file()

chemin = Application.GetOpenFilename
If UCase(Right(chemin, 3)) <> "WAV" Then
MsgBox "Ce n'est pas un Fichier .Wav ", vbCritical + 4096, "Attention!"
Exit Sub
End If

End Sub


-7- Maintenant pour résumer j'appuie sur le bouton OPENFILE
pour choisir mon fichier qui est par exemple sur mon bureau. Par la suite j'appuie sur mon bouton Analyse puis récupérer les données sur une autre feuille excel.


Le Problème est tout simple et que lorsque j'appuie une deuxième fois sur le bouton Analyse j'ai cette erreur 75 erreur acces/chemin c'est comme si le fichier n'était plus dans son emplacement.

est ce que c'est normal? et donc y a t il une possibilité de me débarasser de ça? Comment faire ?


MERCI MERCI et ENCORE MERCI Pour TON AIDE
0
Profil bloqué
18 févr. 2010 à 17:45
Petit coup de colère de Jack bien compréhensif !
J'ai donné les mêmes réponses que Jack dans un post précédent au niveau de la variable Chemin mais lui il a sorti sa boule de cristal ! Quelle voyance

La théorie, c'est quand on sait tout et que rien ne fonctionne. La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi.

GRENIER Alain
0
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
18 févr. 2010 à 20:16
Merci d'avoir pris le temps de reprendre ces explications.
Ce que je n'arrive toujours à comprendre, c'est :
- est-ce que ces boutons et ces Sub sont dans le même classeur Excel ?
- est-ce que tu refermes le classeur entre deux clics sur les boutons ?

Dans ton point -7-, tu dis que l'appui sur les boutons OPENFILE puis ANALYSE semble fonctionner, c'est bien ça ?
Le bouton ANALYSE lance bien la Sub donnée dans le point -5- ?

Voilà 4 questions : merci de fournir 4 Oui ou Non

Si tu refermes le classeur entre les deux clics sur ANALYSE, oui, c'est normal que la valeur disparaisse puisque tu ne la sauvegardes nulle part. Dans ce cas, après validation du fichier, tu peux stocker quelque part dans ton classeur le chemin en question ET le relire lors de l'ouverture du classeur.

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
0

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

Posez votre question
houston87 Messages postés 26 Date d'inscription mercredi 27 janvier 2010 Statut Membre Dernière intervention 28 septembre 2011
18 févr. 2010 à 22:17
= NON , les sub sont dans des modules par contre les boutons sont effectivement dans la feuille et dans ma feuille j'ai par exemple ça.

Private Sub CommandButton2_Click()
Call file
End Sub

Private Sub CommandButton3_Click()
Call Analyse
End Sub

- NON , je ne ferme pas le classeur entre deux cliks ce que je fait c'est tout simple c'est j'appuie sur le premier bouton OPEN FILE je choisis mon fichier après j'appuie sur le deuxième bouton Analyse et j'attends le temps que mes données rentrent dans une autre feuille que j'ai appelé calcul.

Le sub est effectivement bien lancé cette fois mais des que j'essaie par exemple de rappuyer une deuxième fois sur le bouton Analyse pour refaire la même analyse j'ai ce code erreur accès/chemin qui apparait comme si le fichier que j'ai choisi est utilisé juste le temps de la première analyse et il disparait après.
0
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
19 févr. 2010 à 09:57
Bon, je suppose donc que tout est dans le même classeur (modules différents, soit, mais même classeur/fichier excel).
Ok, tu ne refermes pas le classeur entre deux appels

Au moment de l'erreur, qu'y a t-il dans Chemin ?
Pour le savoir, ajoute ceci en début de ta Sub Analyse :
Debug.Print Time, ">"; Chemin; "<"
A chaque passage, il devrait inscrire une ligne dans la fenêtre de debug (Ctrl-G) : A toi de vérifier quelle est la dernière valeur inscrite lors de l'erreur.

Si tu vois que le chemin est vide >< c'est que la variable a été vidée : Recherche partout dans ton code où il pourrait y avoir qqchose qui ressemble à Chemin =
En toute logique, il ne devrait y avoir que dans ta Sub "file"

PS : A l'avenir, pour les variables ou les noms de fonction/sub, essaye d'éviter les mots qui peuvent ressembler à des mots réservés du langage (comme File), ça peut créer des réactions bizarres (ce n'est pas le cas avec File pour l'instant, mais selon les références que tu ajoutes, ça peut faire des trucs bizarres).

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
0
Rejoignez-nous