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 :

Nom du fichier ou de classe introuvable lors de l'opération Automation [XL-2010]


Sujet :

Macros et VBA Excel

  1. #1
    Membre expérimenté

    Homme Profil pro
    Technical Account Manager
    Inscrit en
    Avril 2015
    Messages
    224
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Technical Account Manager

    Informations forums :
    Inscription : Avril 2015
    Messages : 224
    Billets dans le blog
    1
    Par défaut Nom du fichier ou de classe introuvable lors de l'opération Automation
    à tous amis VBA-tiste !

    Je souhaite dans le but d'implémenter une BDD, la remplir avec plusieurs tableaux de données.
    J'effectue le code suivant :
    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
    38
    39
    40
    41
    42
    43
    44
    45
    46
     
    Private Sub BDD_Click()
        Dim BDD, Wb As Object
        Dim l, c As Integer
        Dim num As Long
        Dim str As String
     
        str = Worksheets(3).Range("C10") 'Se trouve dans C10 "C:\Users\Documents\Fichier\Comptage\Comptage2016"
        num = Worksheets(3).Range("C11") ' Se trouve dans C11 "23703". Le numéro change pour chaque tableau
        Set BDD = CreateObject("Scripting.FileSystemObject")
        Set Wb = GetObject(str & "_" & num & ".xlsx")
     
     
        If BDD.FileExists(str & ".xlsx") = False Then
            Dim xlApp As Excel.Application
            Dim xlBook As Excel.Workbook
            Dim xlSheet As Excel.Worksheet
            'On crée l'objet Excel
            Set xlApp = CreateObject("Excel.Application")
            'On défini le nombre d'onglets (ici 5)
            xlApp.SheetsInNewWorkbook = 10
            'On ajoute un classeur
            Set xlBook = xlApp.Workbooks.Add
            'On donne un nom au classeur
            xlBook.SaveAs (str & ".xlsx")
            'On rend le classeur visible
            xlApp.Visible = True
            'On crée l'objet onglet dans le nouveau classeur créé
            Set xlSheet = xlBook.Worksheets(1)
            'On affecte un nom aux l'onglets
            xlSheet.Name = "BDD2016"
        End If
     
        Set BDD = GetObject("C:\Users\Documents\Fichier\Comptage\Comptage2016.xlsx")
        BDD.Sheets(1).Name = "BDD2016"
        BDD.Worksheets(2).Copy After:=BDD.Worksheets(1)
        BDD.Sheets(2).Name = "C_" & num
        BDD.Worksheets(2).Range("C2:C100").NumberFormatLocal = "hh:mm"
        BDD.Worksheets(2).Range("A1:F10").ClearContents
        For l = 1 To 30
            For c = 1 To 10
                BDD.Worksheets(2).Cells(l, c) = Wb.Worksheets(1).Cells(l, c)
            Next c
        Next l
     
    End Sub
    Tout fonctionnait à merveille jusqu'au numéro 23711 qui a décidé de ne pas marcher sans raison.
    Je n'ai pas changé mon code et pourtant Excel m'affiche "Nom du fichier ou de classe introuvable lors de l'opération Automation".
    Il me pointe la ligne suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     Set Wb = GetObject(str & "_" & num & ".xlsx")
    J'ai bien cherché pendant longtemps, j'ai presque tout essayé. Mais je reste sans explication.

    Est-ce que quelqu'un peut m'aider please ?

  2. #2
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Que contiennent str et num ?

  3. #3
    Membre expérimenté

    Homme Profil pro
    Technical Account Manager
    Inscrit en
    Avril 2015
    Messages
    224
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Technical Account Manager

    Informations forums :
    Inscription : Avril 2015
    Messages : 224
    Billets dans le blog
    1
    Par défaut
    str contient le chemin du fichier "C:\.....\Comptage2016"
    et num le numéro "23703"

  4. #4
    Membre expérimenté

    Homme Profil pro
    Technical Account Manager
    Inscrit en
    Avril 2015
    Messages
    224
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Technical Account Manager

    Informations forums :
    Inscription : Avril 2015
    Messages : 224
    Billets dans le blog
    1
    Par défaut
    AAAAAH .... En fait c'est bon j'ai trouvé !

    C'est peut-être mieux si je sauvegarde les données du numéro 23711
    Merci quand même de ta réponse

  5. #5
    Membre expérimenté

    Homme Profil pro
    Technical Account Manager
    Inscrit en
    Avril 2015
    Messages
    224
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Technical Account Manager

    Informations forums :
    Inscription : Avril 2015
    Messages : 224
    Billets dans le blog
    1
    Par défaut
    le peuple !

    Je relance le sujet parce-que je retrouve le même message d'erreur mais cette fois aucune erreur de fichier non enregistré.... Je cherche je ne trouve pas pour le moment

    Si quelqu'un peut me venir en aide avant 16h ça me sauverait vraiment la vie !

  6. #6
    Expert confirmé

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 169
    Billets dans le blog
    5
    Par défaut
    Bonjour,

    pourquoi réaliser de l'automation Excel pour ... Excel ??
    et pourquoi créer des nouvelles instances Excel, alors que c'est une instance Excel qui travaille déjà ?

    c'est une raison précise ou une habitude d'écriture (je vois ça assez souvent dans tes codes)

    Au lieu d'un GetObjet, tu pourrais faire un WorkBooks.Open
    Au lieu d'un FSO, tu pourrai utiliser Dir()
    etc...

  7. #7
    Membre expérimenté

    Homme Profil pro
    Technical Account Manager
    Inscrit en
    Avril 2015
    Messages
    224
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Technical Account Manager

    Informations forums :
    Inscription : Avril 2015
    Messages : 224
    Billets dans le blog
    1
    Par défaut
    Effectivement tu as peut-être raison.

    Hormis le principe d'automation je ne connais pas trop la syntaxe pour la gestion des classeurs Excel.
    J'ai essayé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
        'Récup' des valeurs chemin du fichier et numéro de train
        str = Worksheets(3).Range("C10")
        num = Worksheets(3).Range("C11")
        'Creation du fichier de la base
        Set BDD = CreateObject("Scripting.FileSystemObject")
        Set Wb = Application.Workbooks.Open(str & "_" & num & ".xlsx")
    un autre message d'erreur s'affiche " votre fichier est introuvable
    ... vérifiez l'orthographe du nom du classeur et la validité de l'emplacement" ... je ne comprends pas j'arrive pourtant à accéder à mes fichiers depuis cet emplacement

  8. #8
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    C'est de nouveau "Fichier introuvable" sur le GetObject ?
    Même question : que contiennent str et num au moment de l'erreur ?

    Essaye de mettre juste avant le GetObject une ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Debug.Print str & "_" & num & ".xlsx"
    Regarde quelle nom s'affiche dans le fenêtre d'exécution et vérifie que le fichier existe effectivement et qu'il n'est pas en cours d'utilisation.

    Dans ton Open, tu n'indiques pas le chemin.
    Donc essaye aussi de mettre quelque part un :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Debug.Print DefaultFilePath
    Pour vérifier si le chemin par défaut est le bon.

  9. #9
    Membre expérimenté

    Homme Profil pro
    Technical Account Manager
    Inscrit en
    Avril 2015
    Messages
    224
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Technical Account Manager

    Informations forums :
    Inscription : Avril 2015
    Messages : 224
    Billets dans le blog
    1
    Par défaut
    Menhir,

    Grâce à ton idée j'ai pu voir qu'il y a bien eu un problème dans ma variable "str".

    L'erreur est rectifiée et par conséquent le problème est résolu.

    Merci à vous 2 pour votre aide elle m'a été très précieuse

  10. #10
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Quand il y a un problème, premier réflexe à avoir : vérifier le contenu des variables.

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

Discussions similaires

  1. Connaître le nom du fichier exécutant une classe
    Par chaosinf dans le forum Langage
    Réponses: 9
    Dernier message: 19/09/2011, 13h27
  2. Changer Nom du Fichier lors de l'impression en PDF
    Par enfin dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 24/10/2007, 18h10
  3. Pb nom du fichier lors d'un téléchargement forcé
    Par wolfe dans le forum Langage
    Réponses: 2
    Dernier message: 14/02/2007, 10h49
  4. Réponses: 19
    Dernier message: 25/10/2006, 15h36
  5. Réponses: 8
    Dernier message: 23/06/2006, 22h53

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