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 coller en valeur d'un fichier excel à un autre [XL-2010]


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
    Mars 2012
    Messages
    161
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Biens de consommation

    Informations forums :
    Inscription : Mars 2012
    Messages : 161
    Par défaut Copier coller en valeur d'un fichier excel à un autre
    Bonjour,

    Récemment j'ai repris un petit passe temps que j'avais abandonné qui est celui de faire de la vba sur excel. Seulement ça fait un petit moment que je n'y ai pas touché et je bloque sur un code tout simple. en gros j'ai un fichier "données.xslx" dans lequel il y'a des données et dans un même dossier j'ai un fichier "logiciel.xlsm" qui prend en charge les macros. Il faudrait que quand j'appuie sur la macro dans mon fichier "logiciel.xlsm" ça copie en valeur (les données étant issus de formules) toutes les données (A1:N117) de la feuille "recap 3 dernieres saisons" de mon fichier "données.xlsx" vers la feuille "domicile" du fichier "logiciel.xlsm" en A1.

    Voila je sais que c'est un simple copier coller mais entre 2 fichier la je bloque je me rappelle plus du tout comment faire.

    Cordialement

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2008
    Messages : 42
    Par défaut
    Je pense que ceci devrait t'aider ...


    http://www.developpez.net/forums/d15...ees-d-fichier/

  3. #3
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2012
    Messages
    161
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Biens de consommation

    Informations forums :
    Inscription : Mars 2012
    Messages : 161
    Par défaut ou dois je mettre le chemin de destination?
    Merci donc en suivant le tuto j'ai trouvé ce code qui semble correspondre à ce dont j'ai besoin mais si j'ai compris effectivement comment aller chercher l'info je en sais pas ou indiquer ou il faut la coller. De plus quand j'essaye de lui indiquez un chemin d’accès il me répond "erreur de compilation" type défini par l'utilisateur non défini. Pourriez vous m'aidez?

    Cordialement

    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
    Private Sub Montpellier_dom_cmd_Click()
     
        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 = "A1:N117"
     
        Feuille = "Recap 3 derniere saisons$" 'n'oubliez pas d'ajouter $ au nom de la feuille.
        'Chemin complet du classeur fermé
        Fichier = "C:\Users\PC_DU_GREEN\Desktop\Stat pari\stat montpellier.xlsx"
     
        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
     
    frmexterieur.Show
    frmdomicile.Hide
    End Sub

  4. #4
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2012
    Messages
    161
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Biens de consommation

    Informations forums :
    Inscription : Mars 2012
    Messages : 161
    Par défaut Je n'y comprends rien
    J'ai lu le tuto en long en large et en travers mais je trouve pas ce que je cherche je veux juste faire un copier coller d'une plage d'une feuille d'un fichier fermer à une feuille d'un autre fichier.

    Le tuto ne m'indique pas ce que je dois faire pour ça il lit, il compare il ordonne mai je veux juste faire un simple copier coller

    Si une bonne ame pouvais m'aider avec un petit code ce serai vraiment très gentils

    cordialement

  5. #5
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    3 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 3 453
    Par défaut
    Bonjour,

    il me répond "erreur de compilation" type défini par l'utilisateur non défini.
    Cocher la référence "Microsoft ActiveX Data Objects x.x Library" Outils-->Références... où x.x est la ou une des versions disponibles.
    Sinon, en relation tardive. Adapter le chemin et nom du classeur cible, le nom de la feuille dans le classeur cible et la plage à récupérer dans la proc Test, ne pas modifier les autres :
    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
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
     
    Sub Test()
     
        Dim Classeur As String
        Dim Feuille As String
        Dim Plage As String
     
        Classeur = "C:\Dossier1\Dossier2\Classeur.xls"
        Feuille = "Feuil1"
        Plage = "A1:F19"
     
        Recup Classeur, Feuille, Plage
     
    End Sub
     
    'Sub de connexion séparée
    Private Sub ConnexCLasseur(ConCL As Object, _
                               Fichier As String, _
                               Optional Rs)
     
        'création de l'objet en relation tardive (évite de cocher la référence)
        Set ConCL = CreateObject("ADODB.Connection")
     
        'si demandé, crée l'objet pour le jeu d'erregistrements
        If Not IsMissing(Rs) Then Set Rs = CreateObject("ADODB.Recordset")
     
        'ouvre la connexion
        ConCL.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
                   "Data Source=" & Fichier & ";" & _
                   "Extended Properties=""Excel 8.0;HDR= NO;IMEX= 2;"""
     
    End Sub
     
    Sub Recup(ByVal Fichier As String, _
              ByVal Feuille As String, _
              ByVal Plage As String)
     
        Dim ConnecCL As Object
        Dim Rs As Object
     
        'lance la connexion
        ConnexCLasseur ConnecCL, Fichier, Rs
     
        'effectue la récup
        With Rs
     
            .CursorType = 1
            .LockType = 3
            .Open "SELECT * FROM `" & Feuille & "$" & Plage & "` ", ConnecCL
     
            If Not Rs.EOF Then
     
                ActiveWorkbook.Worksheets("Feuil1").Range("A1").CopyFromRecordset Rs
     
            Else
     
                'si la source était vide...
                MsgBox "Aucun enregistrement renvoyé.", vbCritical
     
            End If
     
        End With
     
        ConnecCL.Close
     
        Set Rs = Nothing
        Set ConnecCL = Nothing
     
    End Sub
    Hervé.

  6. #6
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2012
    Messages
    161
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Biens de consommation

    Informations forums :
    Inscription : Mars 2012
    Messages : 161
    Par défaut
    Merci beaucoup ça m'est d'une grande aide

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 12/05/2015, 16h25
  2. Code VBA pour copier-coller des colonnes d'un fichier Excel à un autre
    Par User Name dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 26/01/2014, 23h30
  3. copier /coller une colonne dans un fichier excel
    Par fboss dans le forum VB.NET
    Réponses: 0
    Dernier message: 13/11/2009, 12h33
  4. Réponses: 1
    Dernier message: 29/12/2008, 10h12
  5. coller une cellule d'un fichier excel à un autre
    Par ickyknox dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 29/03/2007, 17h58

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