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 :

[E-07] getopen filename


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre Expert
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 567
    Détails du profil
    Informations personnelles :
    Âge : 62
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 567
    Par défaut [E-07] getopen filename
    Bonjour le forum
    j'ai fais une petite appli qui tourne bien et qui consiste a ouvrir trois fichier et en extraires des infos après qu'on lui eu désigné le bon repertoire., au départ, je l'avais créer en E2003.
    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
     
    Sub bilan()
    Dim stFichier
     stFichier = Application.GetOpenFilename
       With Application.FileSearch
       .NewSearch
       .LookIn = cheminbalance(stFichier)
       .Execute
        On Error Resume Next
        ScreenUpdating = False
          For Each f In .FoundFiles
          Workbooks.Open f
    'ici, le code ouvre en boucle les trois fichiers que contient le repertoire
    ' et tout marche bien
    Next f
    End Sub
    ensuite, je l'ai modifié pour qu'elle tourne en E2008 ou getopenfilename ne fonctionne plus

    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
     
    Sub lameme_avec_2008()
    Dim fd As FileDialog, NC As Variant, Chemin As String
    Set fd = Application.FileDialog(msoFileDialogFilePicker)
    With fd
    If .Show = -1 Then
    For Each NC In .SelectedItems
    Chemin = Left(NC, Len(NC) - InStr(StrReverse(NC), "\")) & "\"
    NomFich = Dir(Chemin & "\", vbNormal)
    Application.Visible = False
    Do While NomFich <> ""
    Workbooks.Open Chemin & NomFich
    'ici le code
     
    Next NC
    End Sub
    mais voila, je dois la modifier, et si moi je travaille en 2008, l'appli va tourner sur d'autres excels que je ne connais pas. comment je peux faire ?
    ma question est : est il possible de faire fonctionner l'une ou l'autre des deux façons en fonction de la detection de la version d'excel ?
    merci d'avance.
    edit
    ou bien, existe t'il une méthode qui fonctionne sur toutes les versions ?
    question connexe , puis je réinstaller mon viel excel 2003 parallellement a excel 2008 pour faire des tests ?

  2. #2
    Membre émérite

    Profil pro
    Inscrit en
    Mai 2007
    Messages
    514
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 514
    Par défaut
    Bonsoir,

    Tu parle de la version Mac d'Excel ou tu fais une confusion avec Excel 2007 pour Windows? Dans le 1er cas je ne peux rien dire, dans le 2eme je serais tres étonné que GetOpenFileName ne soit plus supporté. Par contre FileSearch a bel et bien disparu. Tu peux trouver une solution de remplacement ici

    Sinon tu peux tester la version d'Excel avec Application.Version et executer l'une ou l'autre de tes procedures selon le cas.

    Cordialement,

    Tirex28/

  3. #3
    Membre Expert
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 567
    Détails du profil
    Informations personnelles :
    Âge : 62
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 567
    Par défaut
    merci pour la reponse. en fait oui, je parle bien de la disparition de filesearch ( j'ai du retard, je ne l'ai eu qu'en 2008 moi ). j'ai suivi le lien, si j'utilise classe file search du tuto, es ce que cela va fonctionner sur les excel precedent sans que eux ai a activer des references ?
    j'ai bien essayé application.version, il me retourne 12.0 , es ce que cela signifie que les versions antérieures sont < 12 ?
    je complete ma reponse, j'ai bien installé et utilisé le complement clfilesearch, mais ça ne me donne rien, je ne parviens pas a faire en sorte que la boite de dialogue "ouvrir" apparaisse et permette de choisir le repertoire. mais si n'etait que pour faire ça, la solution que j'utilise (#2 de mon premier post, je crois que c'est un code d'ouskel) convient très bien. le vrai probleme, c'est de construire avec 2007 un code qui fonctionne sur une version precedente ET sur la mienne.

  4. #4
    Invité
    Invité(e)
    Par défaut
    Bonjour Alsimbad,

    Les différentes versions d'Office :


    Office 92 version 3.0
    Office 94 version 4.0, 4.2, 4.3
    Office 95 version 7.0
    Office 97 version 8.0
    Office 2000 version 9.0
    Office XP version 10.0
    Office 2003 version 11.0
    Office 2007 version 12.0

  5. #5
    Membre émérite

    Profil pro
    Inscrit en
    Mai 2007
    Messages
    514
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 514
    Par défaut
    Bonjour,

    le vrai probleme, c'est de construire avec 2007 un code qui fonctionne sur une version precedente ET sur la mienne.
    Dans ce cas il me semble qu'il n'y pas d'incompatibilité entre ton code #2 et les versions d'Excel postérieur à 2000.

    Cordialement,

    Tirex28/

  6. #6
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Quelle est ta question ?
    1 - Sélectionner un répertoire puis ouvrir plusieurs classeurs sélectionnés dans ce répertoire ?
    2 - Sélectionner un répertoire et ouvrir tous les fichier de ce répertoire ?
    Parce que si c'est le premier cas, tu as dans Excel une boîte de dialogue qui ne devrait pas avoir disparu dans 2007 pour une question de compatibilité avec les versions antérieures :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Dim Chemin as string, r as boolean
        ''faux si aucun fichier sélectionné
         'si vrai, alors tu peux obtenir le nom du répertoire si tu en as toujours besoin
        If Application.Dialogs(xlDialogOpen).Show then
            Chemin = ActiveWorkbook.Path
        Endif
    Bref, je n'ai pas compris la finalité de la chose
    A+

    Edit
    Si If Application.Dialogs(xlDialogOpen).Show ne fonctionne pas, teste avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If Application.Dialogs(1).Show

  7. #7
    Membre Expert
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 567
    Détails du profil
    Informations personnelles :
    Âge : 62
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 567
    Par défaut
    merci pour vos réponses.
    jacque jean, merci pour les version, si j'arrive pas a faire ce que je veux, je pourrais probablement passer par if application.version < 12
    tirex, moi, je ne peux plus tester ce code, mais il semble qu'il n'ait pas fonctionner chez la personnes qui l'a reçu, es ce que ce pourrait etre juste une question de reference ? (je rééssairai de voir ça en début de ce semaine)
    ouskel c'est le 2. on selectionne un repertoire, au pire on pointe un fichier de ce repertoire, et le programme ouvre successivement tout les fichiers de ce repertoire prend les données, et les referme. j'ai testé les codes que tu as transmis, ils pourraient convenir puisqu'ils ouvrent bien le fichier, mais je ne sais pas compter les fichiers du repertoires pour les ouvrir successivement

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

Discussions similaires

  1. [c#] fileupload.postededfile.filename
    Par anto dans le forum Windows Forms
    Réponses: 2
    Dernier message: 27/07/2006, 16h22
  2. fileName autrement que par split ?
    Par SpaceFrog dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 23/06/2006, 22h48
  3. #include expects "FILENAME" or <FILENAME>
    Par Nocif dans le forum C
    Réponses: 9
    Dernier message: 06/10/2005, 15h01
  4. Recupération du filename avec aspupload
    Par franler dans le forum ASP
    Réponses: 5
    Dernier message: 17/01/2005, 10h48
  5. [tomcat][fileupload][ie]problème de filename
    Par devoo dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 18/12/2004, 03h08

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