Code en VBA

Résolu/Fermé
daiman - 14 oct. 2007 à 04:37
daiman Messages postés 41 Date d'inscription vendredi 5 octobre 2007 Statut Membre Dernière intervention 17 mars 2008 - 15 oct. 2007 à 23:59
Bonjour,
je suis presque arrivé à faire quelque chose de correct avec les macro exel. mais je bloc la dessus.
gmao = Application.InputBox(Prompt:="n'oubliez pas d'extraire dans résultat le RMP05 " & "& gmao & ", Title:="entrez votre code GMAO")
Workbooks.Open Filename:="C:\Documents and Settings\ZINDIEN\Bureau\jeu flash\" & gmao & ".xls"

mon code fonctionne très bien sauf si le fichier n'existe pas. comment faire pour qu'il sorte de la macro sans poser de question ou simplement en disant que le fichier n'existe pas?
merci d'avance
A voir également:

8 réponses

Papou93 Messages postés 146 Date d'inscription mercredi 4 avril 2007 Statut Membre Dernière intervention 5 juin 2012 59
15 oct. 2007 à 09:13
Bonjour daiman,

Pour sortir de la macro sans plantage, c'est simple :

On Error Resume Next
gmao = Application.InputBox(Prompt:="n'oubliez pas d'extraire dans résultat le RMP05 " & "& gmao & ", Title:="entrez votre code GMAO")
Workbooks.Open Filename:="C:\Documents and Settings\ZINDIEN\Bureau\jeu flash\" & gmao & ".xls"


Je cherche la solution pour afficher un message (j'ai peu pratiqué la gestion des erreurs, je m'intéresse donc à ton problème pour ma culture personnelle).

Cordialement.
0
Papou93 Messages postés 146 Date d'inscription mercredi 4 avril 2007 Statut Membre Dernière intervention 5 juin 2012 59
15 oct. 2007 à 09:35
Rebonjour daiman,

J'ai trouvé, j'ai testé, ça fonctionne :
gmao = Application.InputBox(Prompt:="n'oubliez pas d'extraire dans résultat le RMP05 " & "& gmao & ", Title:="entrez votre code GMAO")
With Application.FileSearch
      .NewSearch
      .Filename = gmao & ".xls"
      .LookIn = "C:\Documents and Settings\ZINDIEN\Bureau\jeu flash\"
      .SearchSubFolders = False
      If .Execute = 0 Then
        MsgBox "Fichier inexistant !", vbOKOnly + vbExclamation
        Exit Sub
      End If
End With
Workbooks.Open Filename:="C:\Documents and Settings\ZINDIEN\Bureau\jeu flash\" & gmao & ".xls"

Tu peux bien sûr modifier le code en lieu et place de
MsgBox "Fichier inexistant !", vbOKOnly + vbExclamation
mais il faut conserver
Exit Sub
sinon ça plante.

J'espère que ça marchera aussi chez toi !

Cordialement.
0
Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 1 204
15 oct. 2007 à 09:37
bonjour daiman,

On Error Resume Next
......

If Err.Number <> 0 then
MsgBox "Erreur: le ficher " & gmao & ".xls n'existe pas.",,"Message erreur"
' Ici ton code que doit éxecuter ton programme ex: Exit Sub
End If


bon courage

;o)
0
Papou93 Messages postés 146 Date d'inscription mercredi 4 avril 2007 Statut Membre Dernière intervention 5 juin 2012 59
15 oct. 2007 à 10:40
Bravo Polux31,

C'est beaucoup plus simple que ma version et ça fonctionne tout aussi bien.
J'en prend note !

Merci.

Cordialement.
0

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

Posez votre question
Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 1 204
15 oct. 2007 à 12:29
de rien
0
Bonjour,
merci sa fonctionne très bien. par contre je vais essayé de trouve unmoyen de rebouclé sur gmao = Application.InputBox(Prompt:="n'oubliez pas d'extraire dans résultat le RMP05 " & "& gmao & ", Title:="entrez votre code GMAO").
de façon à ce qu'il demande un nom jusqu'au bon.
mais vous pouvez m'aider aussi je suis pas contre.
encore merci
0
Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 1 204
15 oct. 2007 à 19:54
Dans ce cas tu fais une fonction qui retourne un booléen.

Par exemple:

Function OuvrirFichier() As Boolean

On Error Resume Next
gmao = Application.InputBox(Prompt:="n'oubliez pas d'extraire dans résultat le RMP05 " & "& gmao & ", Title:="entrez votre code GMAO")
Workbooks.Open Filename:="C:\Documents and Settings\ZINDIEN\Bureau\jeu flash\" & gmao & ".xls"

If Err.Number <> 0 then
MsgBox "Erreur: le ficher " & gmao & ".xls n'existe pas.",,"Message erreur"
OuvrirFichier = False
Exit Function
Else
OuvrirFichier = True
End If

End Function

// Appel de la fonction OuvrirFichier

Sub Command1_click()
Dim vrai As Boolean

vrai = False
While vrai = False
vrai = OuvrirFichier
Wend

End Sub


Ne pas prendre comme ça, c'est un exemple fait de tête ... a toi de l'adapter
0
daiman Messages postés 41 Date d'inscription vendredi 5 octobre 2007 Statut Membre Dernière intervention 17 mars 2008
15 oct. 2007 à 23:59
merci polux31,
sa fonctionne.
j'était loin d'y arrivé, je cherchais à faire une boucle............
0