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 valeurs vers un autre classeur [XL-2010]


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Directeur technique
    Inscrit en
    Novembre 2013
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2013
    Messages : 2
    Points : 1
    Points
    1
    Par défaut Copier valeurs vers un autre classeur
    Bonjour,

    Habituellement, lorsque je veux copier des valeurs, j'utilise l'astuce présentée dans la rubrique de la FAQ intitulée "Peut on effacer les formules pour ne garder que les valeurs ?", soit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Range("F1:H20").Value = Range("F1:H20").Value
    Cette astuce fonctionne aussi lorsqu'on veut copier les données vers un autre onglet, mais plus vers un autre classeur.
    Exemples :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Sheets(2).Range("A1:C5").Value = Sheets(1).Range("A1:C5").Value 'OK

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Windows("Classeur2").Sheets(2).Range("A1:C5").Value = Windows("Classeur1").Sheets(1).Range("A1:C5").Value 'KO


    Existe-t-il un moyen de généraliser ce fonctionnement ?

    Merci d'avance de vos réponses.

  2. #2
    Inactif  
    Homme Profil pro
    Inscrit en
    Septembre 2012
    Messages
    1 733
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2012
    Messages : 1 733
    Points : 2 553
    Points
    2 553
    Par défaut
    va voir du coté de pastespecial xlvalues

  3. #3
    Expert éminent
    Avatar de Oliv-
    Homme Profil pro
    solution provider
    Inscrit en
    Mars 2006
    Messages
    4 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : solution provider

    Informations forums :
    Inscription : Mars 2006
    Messages : 4 087
    Points : 7 168
    Points
    7 168
    Billets dans le blog
    20
    Par défaut
    Salut,
    tu ne dois pas utiliser windows, mais workbooks
    et il vaut mieux utiliser le nom de tes feuilles que le numéro d'index, qui il me semble peuvent changer si on tri les onglets.

    Moi j'utilises .Value2 au lieu de .Value
    attention aussi au format de la cellule selon ce que tu veux


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Workbooks("Classeur2").Sheets(2).Range("A1:C5").Value = Workbooks("Classeur1").Sheets(1).Range("A1:C5").Value
    en mieux
    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
    Sub copie_entre_fichiers()
    Dim WKdest As Workbook
    Dim WKOrig As Workbook
    Dim Wsdest As Worksheet
    Dim WsOrig As Worksheet
     
    Set WKdest = Workbooks("Classeur2")
    Set WKOrig = Workbooks("Classeur1")
     
     
    Set Wsdest = WKdest.Sheets("feuil2")
    Set WsOrig = WKOrig.Sheets("feuil1")
     
    'ou
    '
    'Set Wsdest = Workbooks("Classeur2").Sheets("feuil2")
    'Set WsOrig = Workbooks("Classeur1").Sheets("feuil1")
     
     
    Wsdest.Range("A1:C5").Value = WsOrig.Range("A1:C5").Value2
     
    End Sub

  4. #4
    Nouveau Candidat au Club
    Homme Profil pro
    Directeur technique
    Inscrit en
    Novembre 2013
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2013
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    Merci Oliv- pour tes explications qui m'ont permis de résoudre mon problème.

    Utilisation du numéro d'index dans mes onglets
    Je te confirme que l'index dépend de l'ordre de rangement des onglets dans le classeur. Il m'arrive de jouer avec dans mes macros, lorsque je ne peux utiliser les noms des onglets.
    Dans le cas présent, j'ai utilisé les index pour que le code marche toujours lorsque les onglets par défaut sont nommés "sheet1", "sheet2", etc.

    .Value versus .Value2
    Merci pour ton conseil. Je ne connaissais pas .Value2.
    Toutefois, mes données contenant des dates, je vais garder les .Value.

    Have a nice day, you too.

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

Discussions similaires

  1. [XL-2010] Copier coller vers un autre classeur
    Par lilmonie dans le forum Macros et VBA Excel
    Réponses: 20
    Dernier message: 15/10/2014, 15h45
  2. [XL-2003] Macro pour copier valeurs dans 1 autre classeur
    Par Invité dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 20/11/2013, 08h42
  3. [AC-2003] Copier une plage de cellules d'un classeur vers un autre classeur
    Par bdcds dans le forum VBA Access
    Réponses: 2
    Dernier message: 08/06/2009, 14h58
  4. [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
  5. [VBA-Excel]Copier des cellules vers un autre classeur
    Par Tartenpion dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 04/10/2006, 18h18

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