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 :

Copier une donnée d'un classeur fermé


Sujet :

Macros et VBA Excel

  1. #1
    Membre averti
    Homme Profil pro
    Responsable de Production
    Inscrit en
    Janvier 2015
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Responsable de Production
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2015
    Messages : 25
    Par défaut Copier une donnée d'un classeur fermé
    Bonjour,

    Je voudrais récupérer la valeur d'une cellulede la feuil1 d'un classeur "source.xlsm" fermé et la coller a l'ouverture d'un classeur "interface.xlsm dans une cellule de la feuil3.

    J'ai réussi à faire une connexion ADODB qui à l'air de fonctionner dans un module, mais je ne sais pas du tout comment récupérer la valeur de la cellule du classeur férmé "source.xlsm".

    Faut-il que je mette le code complet (connexion et requête) dans ThisWorkbook_open ?

    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
    Sub RequeteClasseurFerme_Excel2007()
    Dim Cn As ADODB.Connection
    Dim Fichier As String
    Dim NomFeuille As String, texte_SQL As String
    Dim Rst As ADODB.Recordset
    Dim Workbook As Workbook
    'Workbook As Workbooks
    'Définit le classeur fermé servant de base de données
    Fichier = "C:\Users\Philippe\SkyDrive\Documents\NC Jone\Tbx source.xlsm"
    'Nom de la feuille dans le classeur fermé
    NomFeuille = "tbx source"
    Set Cn = New ADODB.Connection
    '--- Connexion ---
    With Cn
    .Provider = "Microsoft.Jet.OLEDB.4.0"
    .ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" _
    & Fichier & ";Extended Properties=""Excel 12.0;HDR=YES;"""
    .Open
    End With
    '-----------------
    '
    '... la requête.... Comment dire cellule A1 classeur ouvert = valeur de cellule B2 classeur fermé ?
    '
    '--- Fermeture connexion ---
    Cn.Close
    Set Cn = Nothing
    End Sub
    Merci pour votre aide.

  2. #2
    Membre émérite Avatar de Nico Chg
    Homme Profil pro
    Apprenti ingénieur Business Development
    Inscrit en
    Juillet 2014
    Messages
    352
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Apprenti ingénieur Business Development
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Juillet 2014
    Messages : 352
    Par défaut
    Bonjour,

    Peut être que tu as un peu de documentation ici : Tutoriel de SilkyRoad

  3. #3
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    http://www.developpez.net/forums/d14...e/#post8104806

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub Workbook_Open()
    RequeteClasseurFerme_Excel2007
    End Sub

  4. #4
    Membre émérite Avatar de Nico Chg
    Homme Profil pro
    Apprenti ingénieur Business Development
    Inscrit en
    Juillet 2014
    Messages
    352
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Apprenti ingénieur Business Development
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Juillet 2014
    Messages : 352
    Par défaut
    Après avoir fouillé le tutoriel, regarde cette partie la, a adapter à tes besoins, bien évidemment.

    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
     
    'Provient du tutoriel de SilkyRoad
    'Source : http://silkyroad.developpez.com/VBA/ClasseursFermes/
     
    Sub extractionValeurCelluleClasseurFerme()
        Dim Source As ADODB.Connection
        Dim Rst As ADODB.Recordset
        Dim ADOCommand As ADODB.Command
        Dim Fichier As String, Cellule As String, Feuille As String
     
        'Adresse de la cellule contenant la donnée à récupérer
        Cellule = "B4:B4"
          'Pour une plage de cellules, utilisez:
          'Cellule = "A4:C10"
     
        Feuille = "Feuil1$" 'n'oubliez pas d'ajouter $ au nom de la feuille.
        'Chemin complet du classeur fermé
        Fichier = "C:\Base.xls"
     
        Set Source = New ADODB.Connection
        Source.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
            "Data Source=" & Fichier & ";Extended Properties=""Excel 8.0;HDR=No;"";"
     
        Set ADOCommand = New ADODB.Command
        With ADOCommand
            .ActiveConnection = Source
            .CommandText = "SELECT * FROM [" & Feuille & Cellule & "]"
        End With
     
        Set Rst = New ADODB.Recordset
        Rst.Open ADOCommand, , adOpenKeyset, adLockOptimistic
     
        Set Rst = Source.Execute("[" & Feuille & Cellule & "]")
     
        Range("A2").CopyFromRecordset Rst
     
        Rst.Close
        Source.Close
        Set Source = Nothing
        Set Rst = Nothing
        Set ADOCommand = Nothing
    End Sub

  5. #5
    Membre averti
    Homme Profil pro
    Responsable de Production
    Inscrit en
    Janvier 2015
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Responsable de Production
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2015
    Messages : 25
    Par défaut
    Merci Nico,

    ça fonctionne du feu de BIIIIP.... Laïcité oblige

    PS : Merci à tous les autres qui m'ont répondu

    Le post est résolu

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

Discussions similaires

  1. Copier une feuille d'un classeur fermé dans un autre fermé
    Par abdelkarim_1987 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 11/09/2013, 18h44
  2. [XL-2003] copier une feuille sur un classeur fermé
    Par zangaloni dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 12/01/2012, 20h23
  3. [XL-2003] copier des données d'un classeur à un autre à l'aide d'une macro
    Par tottiasr dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 02/05/2011, 15h19
  4. Copier une ligne dans un classeur fermé et enregistrer sous
    Par PPN83 dans le forum Macros et VBA Excel
    Réponses: 23
    Dernier message: 18/11/2010, 01h54
  5. récuperé dans une feuille les donnés de plusieur classeurs fermé
    Par peygase83 dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 10/02/2009, 19h31

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