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 :

Transfert de données entre deux fichiers "xlsm"


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2017
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Novembre 2017
    Messages : 2
    Points : 1
    Points
    1
    Par défaut Transfert de données entre deux fichiers "xlsm"
    Bonjour,

    J'ai commencé à taper un code pour copier plusieurs valeurs d'un fichier excel pour les copier vers un autre.
    J'ai réussi à obtenir quelque chose qui fonctionne, cependant, j'aimerais savoir s'il est possible de réaliser un code moins lourd ?
    Autre soucis, je n'arrive pas à coller les valeurs sans mise en forme. J'ai utilisé l'enregistreur de macros pour voir le code exact mais ça ne fonctionne pas.

    Voici le code :

    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 Transfert_données()
     
    Dim MaPlage As Range
     
     
     
    With ThisWorkbook.Worksheets("donnéesbase")
    Set MaPlage = .Range("B2")
    End With
     
    MaPlage.copy
    ActiveSheet.Paste Destination:=Workbooks("Climacro").Worksheets("Données").Range("C24:C24")
    Range("C24:C24").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
            :=False, Transpose:=False
     
     
    With ThisWorkbook.Worksheets("CLMD-5-Liste Locaux")
    Set MaPlage = .Range("D2:D1000")
    End With
     
    MaPlage.copy
    ActiveSheet.Paste Destination:=Workbooks("Climacro").Worksheets("Liste Locaux").Range("E10:E1000")
    Range("E10:E1000").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
            :=False, Transpose:=False
     
    End Sub
    Merci d'avance !

  2. #2
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 331
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 331
    Points : 23 786
    Points
    23 786
    Par défaut
    Bonjour.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    ActiveSheet.Paste Destination:=Workbooks("Climacro").Worksheets("Données").Range("C24:C24")
    Range("C24:C24").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
            :=False, Transpose:=False
    Ces 2 instruction font grosso modo la même chose, elles copient les données.
    La 1ère copie tout, la seconde seulement les valeurs donc si tu ne veux que les valeurs, il ne faut pas faire le paste.

    Et je pense que ton code pourrait être :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    call Workbooks("Climacro").activate
    call Workbooks("Climacro").Worksheets("Données").activate
    Range("C24:C24").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
            :=False, Transpose:=False
    [/CODE]

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2017
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Novembre 2017
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    Bonjour,

    J'ai réussi à résoudre mon problème et même à l'améliorer !

    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
     
    Sub test3()
     
     
    Dim tabl(4)
    Dim monfichier As String, chemin As String
     
     
     
    With Sheets("donnéesbase")
        tabl(0) = .Range("B2").Value
        tabl(1) = .Range("C2").Value
        tabl(2) = .Range("D2").Value
    End With
     
    With Sheets("CLMD-5-Liste Locaux")
        tabl(3) = .Range("RéférenceLocal").Value
        tabl(4) = .Range("Nom_imposé").Value
    End With
     
     
     
    chemin = InputBox("Chemin fichier climadim")
    Workbooks.Open (chemin)
     
     
     
    With ActiveWorkbook.Worksheets("Données")
        .Range("C24") = tabl(0)
        .Range("C26") = tabl(1)
        .Range("D31") = tabl(2)
    End With
     
    With ActiveWorkbook.Worksheets("Liste local")
        .Range("Référence_local") = tabl(3)
        .Range("Nom_imposé") = tabl(4)
    End With
     
     
     
    End Sub
    Cependant, je viens d'en rencontrer un nouveau : je ne peux ouvrir que les fichiers xlsx et j'ai besoin, au final, d'ouvrir des fichiers xlsm.
    Le code beug, logiquement, à ce niveau :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    chemin = InputBox("Chemin fichier climadim")
    Workbooks.Open (chemin)
    Merci d'avance !

  4. #4
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 331
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 331
    Points : 23 786
    Points
    23 786
    Par défaut
    Bonjour.

    La commande est à priori correcte.

    As-tu un message d'erreur ?

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

Discussions similaires

  1. [PPT-2003] transfert de donné entre deux fichier du meme repertoire
    Par yvespi dans le forum VBA PowerPoint
    Réponses: 8
    Dernier message: 04/05/2010, 22h01
  2. transfert de données entre deux sites en C
    Par menel dans le forum Réseau
    Réponses: 10
    Dernier message: 18/08/2006, 23h44
  3. transfert de données entre deux tables
    Par student007 dans le forum Access
    Réponses: 4
    Dernier message: 23/12/2005, 13h04
  4. Réponses: 5
    Dernier message: 30/11/2005, 16h41

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