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 :

Variable Non reconnue par ma Sub


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
    Étudiant
    Inscrit en
    Juin 2013
    Messages
    144
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2013
    Messages : 144
    Par défaut Variable Non reconnue par ma Sub
    Bonjour

    J'ai un Userform dont le code est le 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
    Private Sub CommandButton1_Click()
     
    Dim FichierChoisi As String
    FichierChoisi = Application.GetOpenFilename
     
    Dim j As Integer
    Dim con As ADODB.Connection
     
        With con
            .Provider = "Microsoft.Jet.OLEDB.4.0"
            .ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & FichierChoisi & _
                 ";Extended Properties=""Excel 12.0;HDR=YES;"""
            .Open
        End With
     
    Call ImportDonnées
     
    End Sub
    et j'ai ma sub nommée ImportDonnées contenue dans un module dont le code est le 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
    Sub ImportDonnées()
     
    Dim wbContrepartie As Workbook
    Dim n3 As Integer
     
    Set wbContrepartie = Workbooks.Open(FichierChoisi)
    Sheets(Feuil1).Select
    n3 = Workbooks("TP8").Sheets.Count
    Sheets(Feuil1).Copy After:=Workbooks("TP8.xlsm").Sheets(n3)
     
    wbContrepartie.Close
    Set wbContrepartie = Nothing
     
    Workbooks("TP8").Sheets(Feuil1).Select
     
    End Sub
    le problème c'est que ma macro s'arrête à ce niveau

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set wbContrepartie = Workbooks.Open(FichierChoisi)
    en me disant que ma variable FichierChoisi n'est pas définie.

    Je ne sais pas comment la déclarer dans ma sub. Merci de m'apporter votre aide.

  2. #2
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Octobre 2012
    Messages
    199
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2012
    Messages : 199
    Par défaut
    Bonjour,

    1- il faut passer le nom du fichier en parametre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Call ImportDonnées(FichierChoisi)
    2- la syntaxe pour declarer le classeur FichierChoisi est:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Set wbContrepartie = Workbooks(FichierChoisi)
    et non pas
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Set wbContrepartie = Workbooks.Open(FichierChoisi)
    Par contre il faut que le fichier "FichierChoisi" soit ouvert.

  3. #3
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2013
    Messages
    144
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2013
    Messages : 144
    Par défaut
    Et c'est justement parce que je veux l'ouvrir que je mets

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set wbContrepartie = Workbooks.Open(FichierChoisi)
    je vais éssayer de le remplacer par

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Set wbContrepartie = Workbooks(FichierChoisi)
    wbContrepartie.Open
    et voir ce que ça donne. Mais il faut dabord que cette étape fonctionne

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Call ImportDonnées(FichierChoisi)
    En fait, il me remet le même code d'erreur à ce niveau quand je passe FichierChoisi en paramètre.

  4. #4
    Invité
    Invité(e)
    Par défaut Bonjour,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Call ImportDonnées(FichierChoisi)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Sub ImportDonnées(FichierChoisi As String)
    Set wbContrepartie = Workbooks.Open(FichierChoisi)
     
    wbContrepartie.Sheets("Feuil1").Copy After:=Workbooks("TP8.xlsm").Sheets(Workbooks("TP8.xlsm").Sheets.Count)
     
    wbContrepartie.Close False
    Set wbContrepartie = Nothing
     
    End Sub

  5. #5
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Octobre 2012
    Messages
    199
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2012
    Messages : 199
    Par défaut
    Si je ne me trompe pas, pour ouvrir un fichier on peut utiliser:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    workbook.open(cheminFichier & nomFichier)
    et une fois le fichier ouvert, tu peux le declarer
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Set wbContrepartie = Workbooks(FichierChoisi)

  6. #6
    Invité
    Invité(e)
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Call ImportDonnées(cheminFichier & nomFichier)

  7. #7
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2013
    Messages
    144
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2013
    Messages : 144
    Par défaut Même message d'erreur
    exactement.
    La variable FichierChoisi contient à la fois le chemin et le nom du fichier
    entre autre

    FichierChoisi=CheminFichier & NomFichier.

    En fait j'ai toujours le même message d'erreur. En fait mon appelle de Sub

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Call ImportDonnées(FichierChoisi)
    est dans une Private Sub ListBox1_Click() soit j'ai ceci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Private Sub ListBox1_Click()
    Dim Feuil1 As String, i As Integer
    For i = 0 To ListBox1.ListCount - 1
        If ListBox1.Selected(i) Then
            Feuil1 = ListBox1.List(i)
        End If
    Next i
     
    Call ImportDonnées(FichierChoisi, Feuil1)
     
    End Sub
    le problème c'est que si j'ajoute ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim FichierChoisi As String
    dans ma private sub, il va m'initiliser la variable FichierChoisi

    et lorsque je vais vouloir ouvrir mon fichier à partir d'ici

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set wbContrepartie = Workbooks.Open(FichierChoisi)
    j'aurai un message d'erreur parce que FichierChoisi sera égal à ""

    désolé de n'avoir pas mis le programme entier, je n'ai pas pensé que le problème aurai pu se matérialiser sur ma private sub.

  8. #8
    Invité
    Invité(e)
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Private Sub UserForm_Click()
    If ComboBox1.ListIndex <> -1 Then
        Feuil1 = ListBox1.List(ComboBox1.ListIndex)
        Call ImportDonnées(FichierChoisi, Feuil1)
    End If
    End Sub
    Sub ImportDonnées(FichierChoisi As String, Feuil1 As String)
    'Code
    '....
    End Sub

  9. #9
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Octobre 2012
    Messages
    199
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2012
    Messages : 199
    Par défaut
    Donc si FichierChoisi = chemin + le nom du fichier il faut que tu mette dans une variable ton nom de fichier seul ( sans le chemin)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     
    Set wbContrepartie = Workbooks(NomFichierChoisi)

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

Discussions similaires

  1. Antivirus non reconnu par centre de sécurité
    Par shukin dans le forum Windows XP
    Réponses: 8
    Dernier message: 04/04/2006, 15h22
  2. variable non reconnue
    Par shnouf dans le forum Langage
    Réponses: 7
    Dernier message: 13/02/2006, 16h44
  3. variables non reconnues
    Par syscom14 dans le forum Langage
    Réponses: 6
    Dernier message: 11/10/2005, 18h37
  4. [API]JTAPI non reconnu par eclipse
    Par julio84 dans le forum Eclipse Java
    Réponses: 2
    Dernier message: 15/04/2005, 14h03
  5. [Lomboz] [JBoss] JBoss 3.2.6 non reconnu par Lomboz ?
    Par romain3395 dans le forum Eclipse Java
    Réponses: 4
    Dernier message: 17/12/2004, 16h35

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