Code en VBA

Résolu
daiman -  
daiman Messages postés 41 Statut Membre -
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
Configuration: Windows XP
Internet Explorer 7.0

8 réponses

  1. Papou93 Messages postés 146 Date d'inscription   Statut Membre Dernière intervention   59
     
    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
  2. Papou93 Messages postés 146 Date d'inscription   Statut Membre Dernière intervention   59
     
    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
  3. Polux31 Messages postés 7219 Statut Membre 1 204
     
    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
  4. Papou93 Messages postés 146 Date d'inscription   Statut Membre Dernière intervention   59
     
    Bravo Polux31,

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

    Merci.

    Cordialement.
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Polux31 Messages postés 7219 Statut Membre 1 204
     
    de rien
    0
  7. daiman
     
    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
  8. Polux31 Messages postés 7219 Statut Membre 1 204
     
    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
  9. daiman Messages postés 41 Statut Membre
     
    merci polux31,
    sa fonctionne.
    j'était loin d'y arrivé, je cherchais à faire une boucle............
    0