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 :

Ouverture de fichiers via Fonction [XL-2007]


Sujet :

Macros et VBA Excel

  1. #1
    Membre confirmé
    Inscrit en
    Juillet 2009
    Messages
    156
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 156
    Par défaut Ouverture de fichiers via Fonction
    Bonjour,

    Je cherche à ouvrir 2 fichiers xls en passant par une fonction :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Call openFiles(fichier1, "FICHIER1")
    Call openFiles(fichier2, "FICHIER2")
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    Public Function openFiles(ByRef fichier As Variant, ByVal Nom As String) As String
     
    Do
        fichier = Application.GetOpenFilename(, , "SELECTIONNER " & Nom)
            If fichier = False Then
            toto = MsgBox("Fin du programme.", vbExclamation)
            Exit Function
        End If
        Workbooks.Open Filename:=fichier
    Loop Until fichier Like ("*" & LCase(Nom) & "*")
     
    End Function
    Jusque là pas de problème, cela me donne le résultat escompté, les 2 fichiers s'ouvrent.

    Le problème étant que j'aimerais récupérer le nom de ces 2 fichiers dans le programme principal afin de pouvoir les utiliser (pour les fermer par exemple).
    Mais je n'y arrive pas....

    Cela est-il possible ? Et si oui, comment le réaliser ou quelle piste dois-je suivre pour y arriver?

    D'avance merci!

  2. #2
    Membre expérimenté
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    258
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 258
    Par défaut
    bonjour
    Lorsque tu ouvres un fichier, il est actif.
    Tu peux alors, juste apres l'avoir ouvert, enregistrer son nom dans une variable du type:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    nomfichier1 =active.workbooks.name
    l'autre possibilité et de récupérer son numéro dans la liste de la collection workbook que je récupère par une petite boucle:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    for i=1 to workbook.count
         if workbook(i).name=active.workbooks.name then
                 nofichier=i
          end if
    next
    ces deux méthodes donnent le meme résultat

    bonn journée
    Christophe

  3. #3
    Membre confirmé
    Inscrit en
    Juillet 2009
    Messages
    156
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 156
    Par défaut
    Et oui, tout simplement...
    Mais lorsque je place le active.workbooks.name dans le programme principal, j'ai une erreur 424 en retour : 'Objet requis'

  4. #4
    Membre confirmé
    Inscrit en
    Juillet 2009
    Messages
    156
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 156
    Par défaut
    En fait tout cela marche très bien, il semble juste ne pas y avoir de point entre active et workbook pour que cela fonctionne chez moi :
    ActiveWorkbook.Name

    Encore merci !!

  5. #5
    Membre expérimenté
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    258
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 258
    Par défaut
    de rien,
    N"oulie pas de flaguer comme RESOLU

  6. #6
    Invité
    Invité(e)
    Par défaut bonjour,
    à titre d'info:
    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
    Public Function openFiles(ByRef fichier As Variant, ByVal Nom As String) As Workbook
     
    Do
        fichier = Application.GetOpenFilename(, , "SELECTIONNER " & Nom)
            If fichier = False Then
            toto = MsgBox("Fin du programme.", vbExclamation)
            Exit Function
        End If
       Set openFiles = Workbooks.Open(Filename:=fichier)
    Loop Until fichier Like ("*" & LCase(Nom) & "*")
     
    End Function
    Sub test()
    Dim wb As Workbook
    Set wb = openFiles("C:\Fichier.xls", "Fichier.xls")
    wb.Close False
    End Sub

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

Discussions similaires

  1. Ouverture de fichiers en fonction de leur format
    Par charlottes dans le forum R
    Réponses: 5
    Dernier message: 15/11/2012, 13h09
  2. [XL-2003] ouverture de fichier en fonction des derniers chiffres de l'année
    Par bosk1000 dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 16/11/2009, 06h03
  3. Réponses: 0
    Dernier message: 21/10/2008, 17h35
  4. Ouverture de fichier via un process
    Par Spaeda dans le forum Windows Forms
    Réponses: 2
    Dernier message: 04/07/2008, 12h31
  5. ouverture de fichier via une menubar
    Par horkets dans le forum AWT/Swing
    Réponses: 2
    Dernier message: 16/08/2006, 09h55

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