Copier coller une cellule

Résolu
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.

2 réponses

  1. Modérateur
    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
    1. 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
    2. Bonjour j'avais du faire une erreur car aujourd'hui la macro a très bien marché.
      Un grand merci.
      0
    3. Modérateur
      Salut
      Cool.
      De rien
      A+
      0
  2. 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
    1. 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
    2. 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