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 :

Erreur introuvable en VBA [XL-2013]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Août 2012
    Messages
    187
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2012
    Messages : 187
    Par défaut Erreur introuvable en VBA
    Bonjour,

    Lors de l'exécution d'un code, un message d'erreur apparaît à l'exécution de la ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
            FichNumero = "d:\Dossiers\DOCUMENTS GENERAUX\Sur mesure - originaux\Habari Kani\160302 - Habari Kani - Numerotation des ordres de paiements bancaires.xlsx"
    Il s'agit de Erreur d'exécution 91, variable objet ou variable de bloc With non définie.

    D'après mes recherches, cela signifierait qu'il y a une boucle ou if ouvert et non fermé.
    Voici le code, je sèche dessus depuis un bon moment, je ne vois pas ce qui manque.

    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
     
    Option Explicit
     
    Sub b()
     
    OpenFileExcel
     
    End Sub
    Function OpenFileExcel()
    Dim appxl As Excel.Application
    Dim FichNumero As Workbook
    Set appxl = CreateObject("Excel.application")
     
        If FichierExiste("C:\WinBooks\Office\160302 - Habari Kani - Numerotation des ordres de paiements bancaires.xlsx") Then
            FichNumero = "C:\WinBooks\Office\160302 - Habari Kani - Numerotation des ordres de paiements bancaires.xlsx"
        ElseIf FichierExiste("d:\Dossiers\DOCUMENTS GENERAUX\Sur mesure - originaux\Habari Kani\160302 - Habari Kani - Numerotation des ordres de paiements bancaires.xlsx") Then
            FichNumero = "d:\Dossiers\DOCUMENTS GENERAUX\Sur mesure - originaux\Habari Kani\160302 - Habari Kani - Numerotation des ordres de paiements bancaires.xlsx"
        Else
            MsgBox ("Ce fichier n'existe pas")
        End If
     
    With appxl
     
        .Workbooks.Open Filename:=FichNumero, Password:="160302"
        .Visible = False
     
    End With
     
    End Function
     
     
    Function FichierExiste(NomFichier As String) As Boolean
        FichierExiste = Dir(NomFichier) <> "" And NomFichier <> ""
    End Function
    Vous avez une idée ? Merci d'avance pour votre aide.

    Bien à vous

    Henri

  2. #2
    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,

    ta variable FichNumero est déclarée en temps qu'OBJET classeur. C'est à dire que cette variable est censée représenté un objet qui est un classeur Excel

    or, tu l'utilises pour renseigner le chemin d'accès au fichier, c'est à dire un String

    tu as le choix mais voici le plus simple en termes de modifications à apporter : déclarer FichNumero de type String au lieu de Workbook

  3. #3
    Membre émérite
    Homme Profil pro
    Directeur
    Inscrit en
    Avril 2003
    Messages
    724
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur

    Informations forums :
    Inscription : Avril 2003
    Messages : 724
    Par défaut
    Salut,

    Tu défini FichNumero comme un objet de type Workbook
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim FichNumero As Workbook
    et ensuite tu lui affectes une chaine de caractères: ça c'est pas possible!
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    FichNumero = "d:\Dossiers\DOCUMENTS GENERAUX\Sur mesure - originaux\Habari Kani\160302 - Habari Kani - Numerotation des ordres de paiements bancaires.xlsx"
    C'est pas plutôt ça que tu veux faire, càd sauvegarder le classeur?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    FichNumero.SaveAs  "d:\Dossiers\DOCUMENTS GENERAUX\Sur mesure - originaux\Habari Kani\160302 - Habari Kani - Numerotation des ordres de paiements bancaires.xlsx"
    Ou alors il faut définir FichNumero comme un String

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim FichNumero As String

  4. #4
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Août 2012
    Messages
    187
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2012
    Messages : 187
    Par défaut
    Merci à Joe, merci à Philippe.

    La solution String m'a permis de tomber sur un autre problème

    Le fichier que je souhaite ouvrir est censé le faire sans apparaître à l'écran, hors il apparaît à l'écran et demande le mot de passe, alors qu'il est indiqué dans l'instruction.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    With appxl
     
        .Workbooks.Open Filename:=FichNumero, Password:="160302"
        .Visible = False
     
    End With
    Serait-ce à cause de la méthode de valorisation de FichNumero ?

    Henri

  5. #5
    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,

    c'est le fichier ou l'application Excel qui doit être masquée ?

    là c'est l'application ... qui se masque APRES ouverture du fichier

    essaye déjà comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    With appxl
         .ScreenUpdating = False
        .Workbooks.Open Filename:=FichNumero, Password:="160302"
        .Visible = False
    End With

  6. #6
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Août 2012
    Messages
    187
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2012
    Messages : 187
    Par défaut
    Bonjour,

    Merci beaucoup pour la solution "IsNumeric(Num)", c'est effectivement tout aussi efficace et nettement moins alambiqué que la fonction que j'avais imaginée.

    Henri

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

Discussions similaires

  1. [AC-2010] Erreur introuvable dans requête SQL dans VBA.
    Par Mickey7312 dans le forum VBA Access
    Réponses: 2
    Dernier message: 25/02/2015, 22h49
  2. Erreur de compilation VBA "Projet ou bibliothèque introuvable"
    Par princeyobs dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 26/03/2009, 13h14
  3. erreur introuvable-.---
    Par cyrill.gremaud dans le forum ASP
    Réponses: 3
    Dernier message: 22/09/2005, 09h42
  4. [LG]erreur introuvable
    Par kojima dans le forum Langage
    Réponses: 8
    Dernier message: 11/02/2005, 18h15
  5. [syntaxe] erreur introuvable
    Par JohnnyC dans le forum Outils
    Réponses: 2
    Dernier message: 29/04/2004, 11h26

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