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 :

[VBA] Copie d'une plage vers un autre classeur


Sujet :

Macros et VBA Excel

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 5
    Points : 5
    Points
    5
    Par défaut [VBA] Copie d'une plage vers un autre classeur
    Bonjour =)

    Bien que le problème a été abordé maintes fois le forum, je ne trouve pas de solution à mon problème...

    Je souhaite copier une plage de données définie par un nom : Base2 (qui est une fonction décaler, ce qui rend le nombre de lignes variable) dans un autre fichier, à la suite des autres enregistrements.

    J'avais pensé rédiger le code ainsi, cependant il ne donne rien... Le nom n'étant pas correctement reconnu si on lance la macro depuis VBE, ni ne donnant des résultats via excel directement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Sub Transfert()
    Sub Transfert()
    Dim i As Integer
    Dim J As Integer
     
    i = Range("A1").CurrentRegion.Rows.Count + 1
    J = Range("Base2").Count
     
    Workbooks("Test.xls").Sheets("Feuil1").Range(Cells(i, 1), Cells(J, 10)).Value = Workbooks("Test2.xls").Sheets("Feuille").Range("Base2").Value
    End Sub
    Si jamais vous avez une idée pour faire avancer mon soucis, je suis preneur
    Merci !

  2. #2
    Membre émérite
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    2 130
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2 130
    Points : 2 443
    Points
    2 443
    Par défaut
    Salut Pachee et le forum
    C'est bien parce que t'es nouveau
    Je souhaite copier une plage de données définie par un nom : Base2 (qui est une fonction décaler, ce qui rend le nombre de lignes variable) dans un autre fichier, à la suite des autres enregistrements.
    Les deux classeurs doivent être ouverts. Normalement on se sert d'une colonne comme référentiel, pour calculer la dernière ligne non-vide : il faut toujours que la cellule de la dernière ligne de cette colonne (dans le fichier de destination) contienne une donnée. Ne commaissant pas le fichier, je prend la dernière ligne inscrite.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Dim Lig As Long
    With Workbooks("Test").Sheets("Feuil1")
        Lig = .Range("A1").SpecialCells(xlCellTypeLastCell).Row + 1
        Workbooks("Test2").Sheets("Feuille").Range("Base2").Copy _
                 .Range ("A" & Lig)
    End With
    Copier la plage Base2 de la feuille "feuille" du classeur Test2 dans la première cellule de la dernière ligne utilisée + 1 de Feuil1 du classeur Test
    A+

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 5
    Points : 5
    Points
    5
    Par défaut
    Après ajout de .xls après le nom du classeur, ça fonctionne !

    Merci Gorfael(, c')est génial !

    Edit : Il me fallait les valeurs et non les formules, que j'ai rectifié ainsi =)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Sub Transfert()
    Dim Lig As Long
    With Workbooks("Suivi.xls").Sheets("PhotoInventaire")
        Lig = .Range("A1").SpecialCells(xlCellTypeLastCell).Row + 1
        Workbooks("Modèle.xls").Sheets("Modele").Range("Base2").Copy
        Workbooks("Suivi.xls").Sheets("PhotoInventaire").Range("A" & Lig).PasteSpecial (xlPasteValues)
    End With
     
    End Sub
    Si jamais quelqu'un a mieux à proposer, je suis preneur, en tout cas, merci encore !

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

Discussions similaires

  1. [XL-2000] Erreur lors de la copie d'une feuille vers un autre classeur qui vient d'être créé
    Par Hankow dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 07/04/2015, 09h10
  2. Copie d'une feuille vers un autre classeur
    Par zeralium dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 23/10/2008, 16h08
  3. Réponses: 7
    Dernier message: 16/08/2007, 10h06
  4. [VBA-E] pb pour copier une plage vers un autre repertoire
    Par alex.a dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 04/05/2007, 15h23
  5. [VBA]comment copier une ligne vers un autre classeur
    Par iboulaye1980 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 02/05/2007, 18h22

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