XL 2010 MACRO COPIER COLLER VALEUR d'un fichier à un autre

Matthieu Sattler

XLDnaute Nouveau
Bonjour à tous,

Je sais qu'il existe de nombreux sujets sur mon problème mais étant debutant en MACRO excel .. je ne comprend pas les syntaxes de macro que vous utilisez :D

Mon problème : je souhaiterais copier une selection de cellule depuis un fichier A et les coller en valeur sur un fichier B.

Fichier A : ResReportKON May2018
Fichier B : Forecast RM catégorie SPé

Je souhaiterais copier la selection C4 à AG4 de la feuille MAY18forecast du fichier A au depart de la cellule C3 de la feuille MAI2018 du fichier B.

Quelqu'un pourrait-il m'aider ? :/ je suis en galère totale ...

J'aimrais que cette macro se lance via un bouton et répéter le copier coller sur plusieurs selections à destination de plusieurs cellules de depart.
Merci d'avance de votre aide qui me serait précieuse.
 

Pièces jointes

  • ResReportKON May2018.xlsx
    35 KB · Affichages: 22
  • Forecast RM catégorie SPé.xlsx
    111.5 KB · Affichages: 23

Lone-wolf

XLDnaute Barbatruc
Bonjour Matthieu et bienvenue sur XLD :)

Joint les fichiers pour une aide plus éfficace. De plus

Je souhaiterais copier la selection C4 à AG4 de la feuille MAY18forecast du fichier A au depart de la cellule C3 de la feuille MAI2018 du fichier B

Moi je lit ceci: Fichier B : Forecast RM catégorie SPé. Où est la feuille MAI2018?? :rolleyes:
 

Lone-wolf

XLDnaute Barbatruc
Re

Encore une chose. Est-tu sûr de vouloir copié juste cette ligne? Voici la macro

VB:
Option Explicit

Public Sub Copie_Ligne()
Dim WbSource As Workbook, WbDest As Workbook, Wb As Workbook

    Set Wb = "ResReportKON May2018.xlsx"
    Set WbSource = Workbooks.Open(Wb)
    Set WbDest = ThisWorkbook

    WbSource.Sheets("May18FORECAST").Range("c4:cg4").Copy
    WbDest.Sheets("Mai2018").Range("c3").PasteSpecial Paste:=xlPasteValues
   
    Application.CutCopyMode = 0
    Application.Goto WbDest.Sheets("Mai2018").Range("a1")
   
    ActiveWorkbook.Close False
End Sub

Est-ce que c'est juste?
 

Matthieu Sattler

XLDnaute Nouveau
Alors en réalité je souhaiterais copier 6 lignes du Fichier A vers le fichier B. Mais je ne voulais pas abuser de votre temps.

Je me suis dis qu'il suffirait de rajouter les codes de la première ligne et de juste changer les cellules de depart et de destination.

C'est pas le cas c'est ça ? c'est plus complexe ? :D
 

Matthieu Sattler

XLDnaute Nouveau
Quand je copie colle ton script dans le créateur de macro j'ai cette erreur qui apparait :(

upload_2018-4-23_11-39-52.png
 

Lone-wolf

XLDnaute Barbatruc
Re

La tu abuse. Depuis quelle ligne et jusqu'à quelle ligne tu veux faire la copie?? :rolleyes:. Il faut d'abord enregistrer Forecast Rm au format xlsm (classeur prenant en charge les macros. Clique sur developpeur(si tu l'as) > Visual Basic > Insertion, et tu insère un module (pas module de classe). Là tu fait un copié-collé de cette macro.

VB:
Public Sub Copie_Ligne()
Dim WbSource As Workbook, WbDest As Workbook, Wb As String

    Application.ScreenUpdating = False
    'Chemin à modifier si besoin
    Wb = ThisWorkbook.Path & "\ResReportKON May2018.xlsx"
 
    Set WbSource = Workbooks.Open(Wb)
    Set WbDest = ThisWorkbook

    WbSource.Sheets("May18FORECAST").Range("c4:cg10").Copy
    WbDest.Sheets("Mai2018").Range("c3").PasteSpecial Paste:=xlPasteValues
 
    Application.CutCopyMode = 0
    Application.Goto WbDest.Sheets("Mai2018").Range("a1")
    Application.DisplayAlerts = False
    ThisWorkbook.Save
 
    WbSource.Close False
End Sub

EDIT: désolé j'avais oublié ThisWorkbook.Path &
 

Matthieu Sattler

XLDnaute Nouveau
Super merci :D en gros je veux copier coller donc la ligne que tu as déjà coder + la ligne C5 à AG5 du fichier A au depart de C4 sur le fichier B
puis C12 à AG12 au depart de C30 sur fichier B, C13 à AG13 au depart de c31 sur fichier B, C20 à AG 20 au depart de C57 sur fichier B et de C21 à AG21 au depart de C58 sur fichier B :D
 

Matthieu Sattler

XLDnaute Nouveau
Dernière question, j'ai réussi à rajouter toutes les lignes que je voulais donc top, mais aurait-il un moyen pour que je puisse lancer la macro avec le fichier source (resreportKONmay2018) ouvert ? Car là dès que je lance la macro il me dit que le fichier doit être fermé :/
 

Matthieu Sattler

XLDnaute Nouveau
Super merci, et petite question, si je veux prendre les infos dans le meme documents, je peux partir de ce meme code et simplement changer le fichier source ? Par exemple si à la place de ce chemin Wb = ThisWorkbook.Path & "\ResReportKON May2018.xlsx" je veux prendre les info sur une page du fichier Thisworkbook il me suffit de changer resreportKON May2018.xls par thisworkbook ?
 

Discussions similaires

Statistiques des forums

Discussions
311 725
Messages
2 081 948
Membres
101 850
dernier inscrit
Danigra