Copier coller une cellule

Résolu
Clem -  
pijaku Messages postés 12263 Date d'inscription   Statut Modérateur Dernière intervention   -
Bonjour,
Je souhaite enregistrer une macro qui permette de coller une cellule (sa valeur) d'un fichier X dans une cellule d'un fichier y.

Je suis partie d'un exemple qui copie l'ensemble d'un tableau et colle à la suite d'un autre, mais je n'arrive pas à adapter ma formule.

Pouvez-vous m'indiquer quelle expression utiliser pour sélectionner une seule cellule et la coller sur une cellule bien précise de mon tableau ?

Sub copier_coller()


'on indique que le fichier moi est le fichier principal. celui qui est ouvert en 1er.
'le fichier lui est le fichier que l'on a ouvert en 2éme pour copier les infos. on le definit pour pouvoir le fermer par la suite.
Dim WorkbookMoi As Workbook
Dim NoLigne As Long
Dim WorkbookLui As Workbook
Dim reponse As Integer

Set WorkbookMoi = ActiveWorkbook


WorkbookMoi.Sheets("testmacro").Cells ("B10")
'on se met sur le bon classeur, feuille (nom_onglet) puis dans la bonne cellule.


Workbooks.Open Filename:="C:\visites.xls"


Set WorkbookLui = ActiveWorkbook

' une fois la cellule sélectionnée on la copie
ActiveWorkbook.ActiveSheet.Range("D30").Select
Selection.Copy Destination:=WorkbookMoi.Sheets("testmacro").Cells("B10")

'Fermeture du WorkbookLui. pas précaution, on lui dit qu'il est déjà sauvegarder : WorkbookLui.Saved = True
WorkbookLui.Saved = True
WorkbookLui.Close

End Sub

Je vous remercie de vos lumières.

A voir également:

2 réponses

pijaku Messages postés 12263 Date d'inscription   Statut Modérateur Dernière intervention   2 762
 
Bonjour,

Essayez ceci en adaptant le nom de la feuille (en gras dans le code) :

Sub copier_coller()  
'on indique que le fichier moi est le fichier principal. celui qui est ouvert en 1er.  
'le fichier lui est le fichier que l'on a ouvert en 2éme pour copier les infos. on le definit pour pouvoir le fermer par la suite.  
Dim WorkbookMoi As Workbook  
Dim NoLigne As Long  
Dim WorkbookLui As Workbook  
Dim reponse As Integer  

Set WorkbookMoi = ActiveWorkbook  
Set WorkbookLui = Workbooks.Open("C:\visites.xls")  
With WorkbookLui 
    .Sheets("NOM_DE_LA_FEUILLE").Range("D30").Copy Destination:=WorkbookMoi.Sheets("testmacro").Range("B10")  
    .Saved = True  
    .Close  
End With 
End Sub  


Cordialement,
Franck P
1
Clem
 
Merci Pijaku,
Effectivement je n'avais pas nommé ma feuille, mais malheureusement cela ne fonctionne toujours pas. Le fichier source ne s'ouvre même pas.
0
Clem
 
Bonjour j'avais du faire une erreur car aujourd'hui la macro a très bien marché.
Un grand merci.
0
pijaku Messages postés 12263 Date d'inscription   Statut Modérateur Dernière intervention   2 762
 
Salut
Cool.
De rien
A+
0
cho'gath
 
Copie la colonne X du classeur ouvert vers le classeur en celule Y defini dans "chemin"

Dim classeurSource As Workbook, classeurDestination As Workbook
Dim chemin As String
Dim lignedestination, lignesource As Integer

lignesource = 2
lignedestination = 2
chemin = "C:\......."


Set classeurDestination = ThisWorkbook
Set classeurSource = Application.Workbooks.Open(chemin, , True)

Do While Not (IsEmpty(classeurSource.Sheets(1).Range("X" & lignesource)))

classeurDestination.Sheets(1).Range("Y" & lignedestination) = classeurSource.Sheets(1).Range("A" & lignesource)

lignesource = lignesource + 1
lignedestination = lignedestination + 1

Loop
0
Clem
 
Merci pour ton retour cho'gath.

Je pense qu'il manque encore un petit qlq chose.
je lance la macro du fichier destination et souhaite sans ouvrir le second fichier importé ma donnée source.
Le fichier source s'ouvre mais rien ne se colle en destination.
As-tu une idée pourquoi ?
0
cho'gath
 
Pas la bonne feuille (Sheets(NUMERO ou "NOM") a remplacer), pas la bonne cellule source ou destination (Range("COLLONE" & N°ligne) )

C'est obligé d'ouvrir le fichier : classeurSource.Close (False) pour le fermer une fois les valeurs copiés
0