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 plage d'un fichier Excel non ouvert vers la feuille en cours


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Inscrit en
    Juin 2006
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 1
    Par défaut copier une plage d'un fichier Excel non ouvert vers la feuille en cours
    Bonjour

    Une question toute bete je pense mais je galere depuis hier dessus ...

    J'ai un classeur Excel B, qui contient une feuille avec une plage de données A1:A6

    J'aimerai, depuis un classeur A, récupérer cette plage de données (la copier) sans ouvrir le classeur B.

    J'ai essayé la fonction copy, mais ça n'a pas marché ... j'ai récupéré une fonction getvalue sur internet, qui permet de récupérer une valeur dans un fichier non ouvert, mais je n'arrive pas à la modifier pour prendre en compte une plage de données :


    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
    '** fonction pour récupérer une valeur dans un fichier Excel non ouvert
     
    Private Function GetValue(Path, File, Sheet, Ref)
      Dim Arg As String
     
      'Vérie l'existence du fichier, ajoute les séparateurs manquants
      If Right(Path, 1) <> "\" Then Path = Path & "\"
      If Dir(Path & File) = "" Then
        GetValue = "File Not Found"
        Exit Function
      End If
     
      Arg = "'" & Path & "[" & File & "]" & Sheet & "'!" & Range(Ref) _
        .Range("A1").Address(, , xlR1C1)
      'Exécute la macro XLM
      GetValue = ExecuteExcel4Macro(Arg)
    End Function


    JE vous remercie par avance pour vos réponse

    Michael

  2. #2
    Expert confirmé

    Homme Profil pro
    Inscrit en
    Août 2005
    Messages
    3 317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2005
    Messages : 3 317
    Par défaut
    bonjour

    j'espere que cette macro pourra t'aider


    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
    Sub extractionPlageCellulesClasseurFerme()
    'Necessite d'activer la reference Microsoft ActiveX Data Object 2.x Library
    '
    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
     
    Cellule = "A1:A6" 'plage de cellules à extraire
    Feuille = "Feuil1$" 'n'oubliez pas d'ajouter $
     
                Fichier = "C:\leClasseurFermé.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("A1").CopyFromRecordset Rst
     
                Rst.Close
                Source.Close
                Set Source = Nothing
                Set Rst = Nothing
                Set ADOCommand = Nothing
     
    End Sub


    bon apres midi
    michel

Discussions similaires

  1. Réponses: 12
    Dernier message: 15/09/2014, 18h51
  2. Macro copier coller d'une plage sur nouveau fichier excel sous condition
    Par lapagaille dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 27/02/2014, 13h11
  3. Réponses: 0
    Dernier message: 25/07/2013, 09h36
  4. [Toutes versions] Copier une colonne d'un fichier Excel dans un fichier TEXT.
    Par jerem_orga dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 21/08/2010, 23h41
  5. Copier une figure dans un fichier excel
    Par botti23 dans le forum MATLAB
    Réponses: 5
    Dernier message: 12/04/2007, 13h39

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