Transférer cellules d'un fichier Excel vers un autre fichier

Bonjour à tous,

Je suis vraiment débutant en macro vba, j'espère que vous pourrez m'aider.

J'ai essayé plusieurs codes en cherchant sur internet et même sur ce forum mais sans succès, ça a jamais marché...

Je voudrais transférer des valeurs de cellules d'un premier fichier excel vers un deuxième. Un bouton de macro serait sur le premier classeur. En cliquant dessus, le 2ème classeur s'ouvrirait, les cellules voulues se transféreraient dans ce classeur puis celui-ci se refermerait automatiquement.

Je vous joins ces deux classeurs Excel ça sera plus simple : "BASE_BDD" et "Statistiques AT".

Concrètement, en cliquant sur le bouton "exporter", le fichier "Statistiques AT" s'ouvrirait puis la cellule D200 de "BASE_BDD" se copierait dans la cellule C27 de "Statistiques AT", puis D201 vers B27, G206 vers F27, G207 vers G27, etc ... puis le fichier "Statistiques AT" se refermerait automatiquement.

Mais c'est pas fini , à chaque fois que je cliquerais sur le bouton "exporter", j'aimerais que les cellules ce copient sur la ligne suivante du 2ème classeur (en intégrant un offset je crois..) pour éviter que les cellules déjà remplies soient remplacées.

Ce code est peut-être simple mais je ne comprends pas ..

J'espère que j'ai été clair, merci d'avance pour votre aide !

Bonne journée

67base-bdd.xlsm (166.24 Ko)

Bonjour pafly

Sub transfert()
Dim wk1 As Workbook, wk2 As Workbook
Dim sh1, sh2
Dim LastRw1 As Long, LastRw2 As Long
Dim i As Integer, n As Integer

'adapter le chemin
Workbooks.Open Filename:=ThisWorkbook.Path & "\Statistiques AT.xlsm"

Set wk1 = Workbooks("Base_BDD.xlsm")
Set wk2 = Workbooks("Statistiques AT.xlsm")
Set sh1 = wk1.Sheets("Retour terrain")
Set sh2 = wk2.Sheets("Stats 2.0")

' derniere ligne de la colonne G de wk1.Sheets("Retour terrain")
LastRw1 = sh1.Cells(Rows.Count, 7).End(xlUp).Row

' derniere ligne de la colonne B de wk2.Sheets("Stats 2.0")
LastRw2 = sh2.Cells(Rows.Count, 2).End(xlUp).Row + 1

'transfert de D200 de "BASE_BDD" C27 de "Statistiques AT", puis D201 vers B27,
'8 - 1
sh2.Range("C" & LastRw2).Value = sh1.Range("D200").Value
sh2.Range("B" & LastRw2).Value = sh1.Range("D201").Value

' G206 vers F27, G207 vers G27, etc
' 0 - 1 - 3
For i = 206 To LastRw1
  sh2.Cells(LastRw2, 6 + n).Value = sh1.Range("G" & i).Value
  n = n + 1
Next

wk2.Save
wk2.Close
End Sub

Merci beaucoup sabV !!

Ça marche super bien !

Rechercher des sujets similaires à "transferer fichier"