IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Fichier ouvert ? sinon sortir ! [XL-2007]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    77
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 77
    Par défaut Fichier ouvert ? sinon sortir !
    Bonsoir, voilà j'aimerais une petite aide concernant ceci :

    J'ai deux fichiers excel :

    Un qui se nomme "Trier", l'autre "Lancer" (avec macro)

    Quand mon fichier "Trier" est ouvert, la macro "lancer", le mets en premier plan et lance la macro sans soucis.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Windows("Trier.xls").Activate
    Mais quand le fichier "Trier" n'est pas ouvert, la macro plante et donc j'aimerais simplement qu'il m'envoie un message box pour annoncer qu'il n'est pas ouvert et qu'il arrête la macro. Merci pour votre aide.

  2. #2
    Membre éclairé Avatar de Nicopilami
    Profil pro
    Ingénieur sécurité
    Inscrit en
    Janvier 2009
    Messages
    354
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur sécurité

    Informations forums :
    Inscription : Janvier 2009
    Messages : 354
    Par défaut
    Hello
    bon une solution simple mais moche (quick & dirty):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    on error resume next
    Windows("Trier.xls").Activate
    on error goto 0
    if Err.number<>0 then 
        msgbox "Argh, le fichier est fermé...",vbCritical
       exit sub
    endif
    Pas testé mais ca devrait fonctionner.
    Maintenant la solution serait de voir si le fichier est ouvert en faisant par exemple

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    estOuvert=false
    foreach wk in workbooks
       if wk.name="Trier.xls" then estOuvert=true
    next
    if not estOuvert then
        msgbox "Argh, le fichier est fermé...",vbCritical
       exit sub
    endif
    Pas testé mais ca devrait fonctionner aussi.

    ++
    Nico

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    77
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 77
    Par défaut
    Le premier est très bien, merci à toi.

    Encore moi, je reviens la dessus parce qu'en fait je me rends compte que si je lance la macro avec un autre fichier rien ne l'arrête pour me dire qu'il ne correspond pas. Peux-tu m'aider ? merci je te joins un bout de ma macro.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    On Error Resume Next
       Windows("tri.xls").Activate
       On Error GoTo 0
       If Err.Number <> 0 Then
        MsgBox "Le fichier tri est fermé, veuillez l'ouvrir", vbCritical
       Exit Sub
        End If
      Nom = "tri.xls"
      For x = 1 To Workbooks.Count
        If Workbooks(x).Name = Nom Then Exit For
      Next x
      If x > Workbooks.Count Then
        Nom = OuvreFichier
      End If 
      If Nom = "" Then Exit Sub
      Set Wb = Workbooks(Mid(Nom, InStrRev(Nom, "\", -1) + 1))
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    Function OuvreFichier() As String
    ' http://excel.developpez.com/faq/?page=FenetresExcel#FileDialog
      With Application.FileDialog(msoFileDialogFilePicker)
        .InitialFileName = ThisWorkbook.Path & "\"
        .Title = "Choisir un fichier exemple"
        .AllowMultiSelect = False
        .Filters.Clear
        .Filters.Add "Fichiers", "*.xls,*.xlsm"
        If .Show = True Then
          Workbooks.Open .SelectedItems(1)
          OuvreFichier = .SelectedItems(1)
        End If
      End With
    End Function

  4. #4
    Membre éclairé Avatar de Nicopilami
    Profil pro
    Ingénieur sécurité
    Inscrit en
    Janvier 2009
    Messages
    354
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur sécurité

    Informations forums :
    Inscription : Janvier 2009
    Messages : 354
    Par défaut
    hum... peux-tu préciser ton besoin ici ?
    je ne comprends pas dans quel sens tu prends la chose...

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    77
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 77
    Par défaut
    Quand lance ma macro, il m'ouvre un explorateur et je choisis mon fichier qui doit être au nom de "Tri", par exemple.

    Si je choisis un autre fichier avec un nom différent la macro se lance quand même et je veux éviter ça.

  6. #6
    Membre éclairé Avatar de Nicopilami
    Profil pro
    Ingénieur sécurité
    Inscrit en
    Janvier 2009
    Messages
    354
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur sécurité

    Informations forums :
    Inscription : Janvier 2009
    Messages : 354
    Par défaut
    rajoute une ligne à ta selection de fichier :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
    Function OuvreFichier() As String
    ' http://excel.developpez.com/faq/?page=FenetresExcel#FileDialog
      With Application.FileDialog(msoFileDialogFilePicker)
        .InitialFileName = ThisWorkbook.Path & "\"
        .Title = "Choisir un fichier exemple"
        .AllowMultiSelect = False
        .Filters.Clear
        .Filters.Add "Fichiers", "*.xls,*.xlsm"
        If .Show = True Then
          Workbooks.Open .SelectedItems(1)
          OuvreFichier = .SelectedItems(1)
        End If
      End With
      If InStr(OuvreFichier, "\tri.xls") < 1 Then OuvreFichier=""
    End Function
    Avec cette ligne, si tu ne trouves pas tri.xls dans l'URL du fichier selectionné, ca réinitialise ton nom de fichier selectionné à une chaine vide, et du coup ta macro qui appelait ton ouverture de fichier s'arrete d'elle même

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Si fichier ouvert rien sinon ouvre le
    Par LaMite dans le forum Macros et VBA Excel
    Réponses: 31
    Dernier message: 12/05/2014, 16h19
  2. tester si fichier ouvert
    Par nbelg27 dans le forum Access
    Réponses: 6
    Dernier message: 08/09/2005, 10h19
  3. Réponses: 5
    Dernier message: 13/05/2005, 12h26
  4. Nombre maximum de fichiers ouverts par processus
    Par galinoo dans le forum Windows
    Réponses: 3
    Dernier message: 27/10/2004, 17h47
  5. Nombre de fichiers ouverts simultanément
    Par matrixfan dans le forum C++Builder
    Réponses: 3
    Dernier message: 27/05/2002, 17h47

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo