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

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    octobre 2015
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : octobre 2015
    Messages : 13
    Points : 10
    Points
    10
    Par défaut Objets absents dans l'explorateur d'objets : GetFile et GetExtensionName
    Bonjour à tous,

    Voilà tout un après-midi que je cherche la solution, mais sans succès. Je n'ai pas l'impression que la question ait été posée sur ce forum, donc je me permets de créer la discussion.

    Je débute en vba Access et, pour créer une petite application dans le cadre d'un cours d'apprentissage, je dois utiliser les instructions Fichier_Objet.GetExtensionName(Nom_Fichier) et Fichier_Objet.GetFile(Nom_Fichier).Size.

    J'ai respecté tout ce qui est indiqué dans le cours, et malgré tout, cela ne fonctionne pas : vba ne reconnaît pas les GetExtensionName et GetFile. Je ne les retrouve d'ailleurs pas dans l'explorateur d'objets.

    L'aide en ligne de Microsoft ne mentionne pas que ce genre de situation est possible ; aucune solution n'est donc proposée.

    Quelqu'un aurait-il une idée pour moi ?

    Un tout grand merci pour votre aide et bonne soirée !

  2. #2
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    octobre 2015
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : octobre 2015
    Messages : 13
    Points : 10
    Points
    10
    Par défaut Résolution mystère
    Bon, eh bien je suis désolé pour le dérangement, mais "miraculeusement" cela fonctionne enfin. J'ignore pourquoi...

    Toujours est-il que les instructions GetFile et GetExtentionName ne sont pas répertoriées dans l'explorateur d'objets. Je trouve cela étrange...

  3. #3
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    novembre 2003
    Messages
    17 423
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : novembre 2003
    Messages : 17 423
    Points : 50 374
    Points
    50 374
    Billets dans le blog
    92
    Par défaut
    Salut.

    Je suppose que tu utilises un FileSystemObject. Cet objet peut être manipulé en VBA mais n'est pas natif du VBA et requiert la liaison à une bibliothèque spécifique.

    Il faudrait voir vers quoi pointe ton Fichier_Objet. Je suppose que c'est un FileSystemObject mais probablement est-il déclaré As Object sans avoir référencé la bibliothèque? Dès lors, tu n'as pas l'aide à la saisie puisque l'éditeur VBE ne sait pas vers quel type d'objet tu pointes. C'est ce qu'on appelle du Late Binding car le VBE ne pourra se connecter à l'objet pour en connaître les méthodes et propriétés qu'au moment de l'exécution lors du passage sur la ligne Set Fichier_Objet = CreateObject("Scripting.FileSystemObject"). C'est aussi pour cette raison que tu n'as pas trouvé les propriétés dans l'explorateur d'objets, qui n'explore que les bibliothèques référencées.

    Peux-tu donner le code, et notamment la ligne de déclaration de Fichier_Objet?

    Pour pouvoir utiliser l'aide à la saisie, ton objet doit être déclaré As FileSystemObject et pour cela, tu dois avoir référencé la bibliothèque Microsoft Scripting Runtime dans Outils/Références du VBE.


    Avec la bibliothèque référencée, l'explorateur d'objets renseigne bien les méthodes et propriétés du FSO

    Nom : 2020-12-28_164458.png
Affichages : 30
Taille : 18,0 Ko
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  4. #4
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    octobre 2015
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : octobre 2015
    Messages : 13
    Points : 10
    Points
    10
    Par défaut
    Merci Pierre pour cette réponse utile :-) En effet, il s'agit d'un FileSystemObject. Voici le code (inachevé) proposé par la formation vba access :

    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
    18
    19
    20
    21
    22
    Private Sub liste_fichiers_Click()
    Dim Nom_Fichier As String: Dim Taille As String: Dim Extension As String
    Dim Date_Creation As String: Dim Date_Modification As String
    Dim Objet_Fichier
    Dim Contenu_Fichier As String
    Dim Taille_Lecture As Integer: Dim NBLibre As Integer
     
    Nom_Fichier = chemin.Value & "\" & liste_fichiers.Value
    Set Objet_Fichier = CreateObject("scripting.filesystemobject")
     
    Extension = Objet_Fichier.getextensionname(Nom_Fichier)
    Taille = Objet_Fichier.getfile(Nom_Fichier).Size
    Date_Creation = Objet_Fichier.getfile(Nom_Fichier).DateCreated
    Date_Modification = Objet_Fichier.getfile(Nom_Fichier).datelastmodified
     
    detail.Value = "Créé le : " & Date_Creation & ", modifié le : " & Date_Modification & vbNewLine & "Taille : " & Taille & " octets"
     
    contenu.Visible = False
    img.Visible = True
    img.Picture = Nom_Fichier
     
    End Sub
    Merci pour la piste du référencement : je vais ajouter Microsoft Scripting Runtime car, comme je suis encore très novice (hum...), l'aide lors de l'écriture m'est indispensable (il y a de quoi se perdre dans toutes ces fonctions, méthodes, propriétés, etc. et je me perds souvent).

    Encore merci !

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 27/09/2016, 14h45
  2. Impossible de supprimer un objet feuille dans l'explorateur de projet
    Par JLK2015 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 30/08/2015, 19h50
  3. [XL-2003] Userform non listé / affiché dans l'explorateur d'objets
    Par jean_78_50a dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 04/01/2013, 18h41
  4. [XL-2003] Impossible de supprimer un objet feuille dans l'explorateur de projet
    Par allergique dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 15/08/2010, 22h12

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