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 :

pourquoi cette erreur de déclaration variable [XL-2010]


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
    Décembre 2004
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 67
    Par défaut pourquoi cette erreur de déclaration variable
    bonjour,

    j'ai ecrit une macro qui
    1° recherche les disques présents jusqu'à trouver la clé usb
    2° puis ensuite compte les fichiers html présents sur la clé
    3° pour ouvrir ces fichiers et en extraire des données

    mon probleme est que ma macro plante dès le point 2
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    monfic = Dir(temp & ":\*.html")
    alors que j'ai bien fait la declaration de variables

    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
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    ' 
    Cette macro compte les fichiers htmml sur la cle usb puis les ouvre un pas un pour en extraire les données
    Sub Copie_Donnees_htmml_v1()
    ' Déclaration des variables
    Dim FSO As Object
    Dim Drv As Object
    Dim temp As Variant
    Dim monfic As Object
    Dim i As Integer
    Dim c As Variant
     
    'Parcours des disques
    Set FSO = CreateObject("Scripting.FileSystemObject")
     
    For Each Drv In FSO.Drives
        If Drv.DriveType = 1 Then
        temp = Drv.DriveLetter
     
    End If
    Next
     
    'comptage des fichiers html présents sur la cle
    monfic = Dir(temp & ":\*.html")
    Do
    monfic = Dir
    i = i + 1
    Loop Until monfic = ""
    'Création d'un classeur
    Workbooks.Add
    'Nommage de la feuille
    Sheets("Feuil1").Name = "Résultat"
    'Ouverture du dernier fichier html
    For i = i To 1 Step -1
    Workbooks.Open Filename:=temp & ":\" & i & ".html"
     
    Workbooks(i & ".htm").Activate
    ...
    est ce que j'aurais oublié quelque chose ??

    merci de votre aide

  2. #2
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 176
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 13 176
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Es-tu sûr que ta clé USB est détectée ?
    As-tu vérifié la valeur de ta variable temp, contient-elle la bonne lettre du drive ?
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  3. #3
    pgz
    pgz est déconnecté
    Expert confirmé Avatar de pgz
    Homme Profil pro
    Développeur Office VBA
    Inscrit en
    Août 2005
    Messages
    3 692
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Office VBA
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2005
    Messages : 3 692
    Par défaut
    Bonjour.

    Quand tu dis que tu as bien définis tes variables, tu ne t'es pas trop fatigué : tout est Objet. C'est du "late binding" et tu perds l'aide à l'édition du code, et une grande partie de la détection d'erreur de compilation. Mais c'est juste une remarque.

    Plus ennuyeux, tu a déclaré monfic comme objet alors que Dir renvoie une chaîne de caractères. Cela doit provoquer ton erreur.

    J'ai vu qu'ensuite tu veux ouvrir du HTML comme un classeur : cela pourrait bien bugguer à nouveau.

    COrdialement,

    PGZ

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

Discussions similaires

  1. Pourquoi cette erreur ?
    Par Alexdezark dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 16/01/2009, 16h05
  2. Pourquoi cette erreur ?
    Par moukah2 dans le forum Débuter
    Réponses: 4
    Dernier message: 17/12/2007, 11h50
  3. Pourquoi cette erreur ?
    Par Switche dans le forum Caml
    Réponses: 6
    Dernier message: 24/10/2007, 18h49
  4. Je ne comprends pas pourquoi cette erreur
    Par amine_en_france dans le forum AWT/Swing
    Réponses: 1
    Dernier message: 09/06/2007, 22h09
  5. [C#]Pourquoi cette erreur à la suppression d'un repertoire ?
    Par prince_antonio dans le forum ASP.NET
    Réponses: 2
    Dernier message: 20/07/2006, 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