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 selection dans nouveaux classeur [XL-2016]


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Homme Profil pro
    Comptable
    Inscrit en
    Octobre 2018
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Comptable

    Informations forums :
    Inscription : Octobre 2018
    Messages : 19
    Points : 11
    Points
    11
    Par défaut Copier coller selection dans nouveaux classeur
    Bonjour

    Partant d'un classeur "Base" (qui est ouvert et dans lequel je suis), je cherche a sauvegarder des données dans un autre classeur "Toto"
    J'ai bien un code qui marche mais je voudrais diminuer le nombre de lignes

    J'appelle d'abord Toto

    Workbooks.Open Filename:="K:\Toto.xlsx"

    Je dois l'ouvrir à chaque fois car j'ai beaucoup de fichiers à créer depuis ma base, les lignes étant différentes à chaque fois, je veux les sauvegarder sous des noms différents, Titi, Tata etc...
    Mais ça j'y arrive, mon souci est d'arriver à copier coller sur des fichiers différents

    Je revient sur "Base", vais dans la feuille qui m'intéresse copie, passe a toto et colle (dans la même feuille)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Windows("Base.xlsm").Activate
    Sheets("HA").Select
    Rows("4:12").Select
    Selection.Copy
    Windows("Toto.xlsx").Activate
    Sheets("HA").Select
    Range("A4").Paste
    On m'a donné un autre code sensé fonctionner qui pourrait faire la même chose, il a que 2 lignes (hors ouverture de toto) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Workbooks.Open Filename:="K:\Toto.xlsx"
    Workbook("Base.xlsm").Sheets("HA").Rows("4:12").Copy
    Workbook("Toto.xlsx").Sheets("HA").Range("A4").Paste
    Sauf que ça ne marche pas , Il ne comprend pas les Workbook : Sub ou fonction mal définie.
    J'ai essayé d'activer la fenêtre avant, mais je n'y arrive pas, je n'ai pas l'impression que l'erreur vient de là..

    Merci beaucoup pour votre aide

  2. #2
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Chamboultou Voir le message
    Bonjour,

    WorkBook s'écrit Workbooks. Modifiez les deux dernières lignes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Workbooks.Open Filename:="K:\Toto.xlsx"
    Workbook("Base.xlsm").Sheets("HA").Rows("4:12").Copy
    Workbook("Toto.xlsx").Sheets("HA").Range("A4").Paste

  3. #3
    Expert confirmé Avatar de Patrice740
    Homme Profil pro
    Retraité
    Inscrit en
    Mars 2007
    Messages
    2 475
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mars 2007
    Messages : 2 475
    Points : 5 630
    Points
    5 630
    Par défaut
    Bonjour,

    Il est préférable d'éviter le presse papier et faire la copie directement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Workbooks.Open Filename:="K:\Toto.xlsx"
    Workbooks("Base.xlsm").Sheets("HA").Rows("4:12").Copy Workbooks("Toto.xlsx").Sheets("HA").Range("A4")
    @Eric : t'as oublié les s
    Cordialement,
    Patrice
    Personne ne peut détenir tout le savoir, c'est pour ça qu'on le partage.

    Pour dire merci, cliquer sur et quand la discussion est finie, penser à cliquer sur

  4. #4
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Patrice740 Voir le message
    Bonjour Patrice,

    Non, c'est ce que je voulais mettre en évidence en demandant de corriger les lignes.

  5. #5
    Membre à l'essai
    Homme Profil pro
    Comptable
    Inscrit en
    Octobre 2018
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Comptable

    Informations forums :
    Inscription : Octobre 2018
    Messages : 19
    Points : 11
    Points
    11
    Par défaut
    Bonjour Patrice, Eric

    Ça passe toujours pas, que ce soit l'une ou l'autre solution, arrivé à Toto ligne 3 (Code 1) ou ligne 2 (Code2), j'ai :
    l'indice n'appartient pas à la sélection
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    MacroBASE1() :
     
    Workbooks.Open Filename:="K:\DIDIER D\Toto.xlsx"
    Workbooks("Base.xlsm").Sheets("HA").Rows("4:12").Copy
    Workbooks("Toto.xlsx").Sheets("HA").Range("A4").Paste
     
     
    MacroBASE2 () :
     
    Workbooks.Open Filename:="K:\DIDIER D\Toto.xlsx"
    Workbooks("Base.xlsm").Sheets("HA").Rows("1:3").Copy Workbooks("Toto.xlsm").Sheets("HA").Range("A1")
    Fichiers attachés Fichiers attachés

  6. #6
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Chamboultou Voir le message
    Bonjour,

    Il faut d'abord que votre fichier Toto contienne l'onglet HA. Ensuite essayez ce code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    Sub MacroBASE1()
     
        'Workbooks.Open Filename:="C:\Users\Eric\Downloads\Toto.xlsx"
        Workbooks.Open Filename:="K:\DIDIER D\Toto.xlsx"
        Workbooks("Base.xlsm").Sheets("HA").Rows("4:12").Copy Destination:=Workbooks("Toto.xlsx").Sheets("HA").Range("A4")
     
    End Sub

  7. #7
    Membre à l'essai
    Homme Profil pro
    Comptable
    Inscrit en
    Octobre 2018
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Comptable

    Informations forums :
    Inscription : Octobre 2018
    Messages : 19
    Points : 11
    Points
    11
    Par défaut
    oui c bon enfin ca passe !! Merci beaucoup

  8. #8
    Expert confirmé Avatar de Patrice740
    Homme Profil pro
    Retraité
    Inscrit en
    Mars 2007
    Messages
    2 475
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mars 2007
    Messages : 2 475
    Points : 5 630
    Points
    5 630
    Par défaut
    Citation Envoyé par Eric KERGRESSE Voir le message
    Il faut d'abord que votre fichier Toto contienne l'onglet HA [...]
    Et aussi, il faut que l'onglet "HA" soit une feuille de calcul (Worksheet) !

    Pour cela, ça ne résoudra pas le problème de l'absence de l'onglet ou du mauvais type d'onglet, mais il est préférable d'écrire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Workbooks.Open Filename:="K:\DIDIER D\Toto.xlsx"
    Workbooks("Base.xlsm").Worksheets("HA").Rows("1:3").Copy Workbooks("Toto.xlsm").Worksheets("HA").Range("A1")
    Cordialement,
    Patrice
    Personne ne peut détenir tout le savoir, c'est pour ça qu'on le partage.

    Pour dire merci, cliquer sur et quand la discussion est finie, penser à cliquer sur

  9. #9
    Membre à l'essai
    Homme Profil pro
    Comptable
    Inscrit en
    Octobre 2018
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Comptable

    Informations forums :
    Inscription : Octobre 2018
    Messages : 19
    Points : 11
    Points
    11
    Par défaut
    Oui c'est sur c'est mieux avec l'onglet !!, je risquais pas d'y arriver.

    Mais sinon ta ligne ne passe toujours pas .. bizarre. Je reste avec donc Copy Destination, pg
    Remerci & Bonne journée à vous 2

  10. #10
    Expert confirmé Avatar de Patrice740
    Homme Profil pro
    Retraité
    Inscrit en
    Mars 2007
    Messages
    2 475
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mars 2007
    Messages : 2 475
    Points : 5 630
    Points
    5 630
    Par défaut
    Re,

    Décompose le problème :
    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
    Option Explicit
    Sub Test()
    Dim cs As Workbook   'classeur source
    Dim fs As Worksheet  'feuille source
    Dim ps As Range      'plage source
    Dim cc As Workbook   'classeur cible
    Dim fc As Worksheet  'feuille cible
    Dim pc As Range      'plage (cellule) cible
      Set cc = ThisWorkbook
      Set fc = cc.Worksheets("HA")
      Set pc = fc.Range("A1")
      Set cs = Workbooks.Open(Filename:="K:\DIDIER D\Toto.xlsx")
      Set fs = cs.Worksheets("HA")
      Set ps = fs.Rows("1:3")
      ps.Copy pc
      cs.Close False
    End Sub
    Cordialement,
    Patrice
    Personne ne peut détenir tout le savoir, c'est pour ça qu'on le partage.

    Pour dire merci, cliquer sur et quand la discussion est finie, penser à cliquer sur

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

Discussions similaires

  1. [XL-2016] VBA Problème copier-coller colonne dans selection sous forme de tableau
    Par Math971 dans le forum Macros et VBA Excel
    Réponses: 23
    Dernier message: 01/12/2017, 10h54
  2. Réponses: 0
    Dernier message: 28/05/2015, 22h58
  3. Réponses: 10
    Dernier message: 18/02/2015, 16h48
  4. [XL-2003] VB Copier/Coller onglet dans nouveaux classeurs avec boucle
    Par Dbiche dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 05/01/2011, 12h36
  5. Copier/coller de plages entre classeurs
    Par WagaSeb dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 08/09/2006, 06h01

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