Copier coller une cellule

Résolu
Clem -  
pijaku Messages postés 13513 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.

2 réponses

  1. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 772
     
    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. 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
    2. Clem
       
      Bonjour j'avais du faire une erreur car aujourd'hui la macro a très bien marché.
      Un grand merci.
      0
    3. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 772
       
      Salut
      Cool.
      De rien
      A+
      0
  2. 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
    1. 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
    2. 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