Macro enregistrement cellule dans un fichier différent

Bonjour a tous,

Je cherche un peu d’aide pour me donner une piste pour l’ecriture d’une macro:

Je souhaite enregistrer une cellule A1 d’un fichier A dans la cellule Xx (variable en fonction de la cellule B1 du fichier A) d’un fichier B.

Les fichiers A et B sont toujours ouvert simultanément.

Est ce que quelqu’un aurait une idée?

Merci d’avance pour votre aide.

Bonjour Cedric, bonjour le forum,

Code à mettre dans le fichier A :

Sub Macro1()
Dim CS As Workbook
Dim OS As Worksheet
Dim CD As Workbook
Dim OD As Worksheet
Dim DEST As Range

Set CS = ThisWorkbook
Set OS = CS.Worksheets("Feuil1")
Set OD = Workbooks("FichierB.xlsx")
Set OD = CD.Worksheets("Feuil1")
Set DEST = OS.Range("B1").Value
OS.Range("A1").Copy DEST
End Sub

Je n'ai pas daigné commenté le code, comme j'ai l'habitude de faire, vu que tu n'as pas pris la peine d'être plus précis... On ne copie dans d'un fichier vers une autre fichier mais d'un onglet d'un fichier vers un onglet d'un autre fichier...

Bonjour ThauTheme, et merci pour ta réponse,

Bonjour à tous

Je me suis effectivement mal expliqué :

Je souhaite copier la cellule R3 de l’onglet du fichier « factures client » feuille « FACTURES »

Et

Le coller dans la colonne H de l’onglet du fichier « Codes » feuille « liste clients»

La ligne de collage doit être sélectionnée avec le N• client situé en cellule D12 de l’onglet du fichier « factures client » feuille « FACTURES »

Et en colonne A de l’onglet du fichier « Codes » feuille « liste clients».

J’espère être plus précis dans mes explications.

Re,

Essaie comme ça :

Sub Macro1()
Dim CS As Workbook 'définit la variable CS (Classeur Source)
Dim OS As Worksheet 'définit la variable OS (Onglet Source)
Dim CD As Workbook 'définit la variable CD (Classeur Destination)
Dim OD As Worksheet 'définit la variable OD (Onglet Destination)
Dim LI As Integer 'définit la variable LI (LIgne)

Set CS = ThisWorkbook 'définit le classeur source CS
Set OS = CS.Worksheets("FACTURES") 'définit l'onglet source OS
Set OD = Workbooks("Codes.xlsx") 'définit le classeur destination CD (attention ! tu n'as pas spécifier l'extension. à adapter)
Set OD = CD.Worksheets("Liste Clients") 'définit l'onglet destination OS
LI = OS.Range("D12").Value 'définit la ligne LI
'copie la cellule R3 de l'onglet source et la colle dans la cellule ligne LI colonne H de l'onget destination
OS.Range("R3").Copy OD.Cells(LI, "H")
End Sub

Re, et merci encore Thau Thème,

Effectivement je n'ai pas précisé l’extension du fichier Code. Il s'agit d'un fichier .xlsm

J'ai bien modifié l'extension dans le fichier mais il y a une erreur sur la ligne ci-dessous:

Set OD = Workbooks("Codes.xlsm")

Je ne comprend pas pourquoi?

RE,

  • Quelle est le numéro de l'erreur ?
  • Le fichier porte-t-il EXACTGEMENT le nom : Codes.xlsm ?
  • Est-il ouvert ?

Re,

Erreur d'execution: '13'

Oui le fichier porte exactement le même nom et il est ouvert.

Il y a également un troisième onglet d'ouvert "Menu.xlsm" d'ouvert mais je ne pense pas que cette erreur vient de là.

Re,

Depuis le début Cédric tu confonds les fichiers et les onglets...

Un fichier est un document Excel, appelé aussi classeur. Il est unique et se trouve dans un dossier.

Un onglet (ou feuille ) se trouve dans un classeur. Il peux y avoir un seul onglet ou plusieurs centaines dans un même fichier.

C'est pour ça que je t'ai dit au début on ne copie pas d'un fichier A vers un autre fichier B mais d'un onglet O1 d'un fichier A vers un onglet O2 d'un fichier B.

Effectivement, il y avait une erreur dans mon code. Voici la correction :

Sub Macro1()
Dim CS As Workbook 'définit la variable CS (Classeur Source)
Dim OS As Worksheet 'définit la variable OS (Onglet Source)
Dim CD As Workbook 'définit la variable CD (Classeur Destination)
Dim OD As Worksheet 'définit la variable OD (Onglet Destination)
Dim LI As Integer 'définit la variable LI (LIgne)

Set CS = ThisWorkbook 'définit le classeur source CS
Set OS = CS.Worksheets("FACTURES") 'définit l'onglet source OS
Set CD = Workbooks("Codes.xlsm") 'définit le classeur destination CD (attention ! tu n'as pas spécifier l'extension. à adapter)
Set OD = CD.Worksheets("Liste Clients") 'définit l'onglet destination OS
LI = OS.Range("D12").Value 'définit la ligne LI
'copie la cellule R3 de l'onglet source et la colle dans la cellule ligne LI colonne H de l'onget destination
OS.Range("R3").Copy OD.Cells(LI, "H")
End Sub

Maintenant si tu as un autre problème, envoie nous les deux fichiers concernés sinon on va y passer des lustres...

Bonjour,

Désolé pour ma réponse tardive (1 semaine de vacances) et Merci Thau Thème.

Je rencontre toujours un problème avec cette macro . Encore erreur exécution; 13

LI = OS.Range("D12").Value 'définit la ligne LI

Est ce que cela peut venir du fait que les cellules D12/D13/E12/E13 sont fusionnées?

Tau Thème, je ne peux malheureusement pas te transférer les fichiers pour des raison de confidentialité avec mon entreprise. J'espère que tu comprendras et encore merci pour ton aide.

Cédric.

Re,

Heu non, je ne comprends pas. Il est tellement facile avec Excel de créer un fichier exemple non confidentiel reprenant la structure de ton fichier d'origine, avec une poignée de données... Mais si tu as la flemme, moi encore plus...

Bonjour,

Ci-joint les fichiers en question (simplifié au maximum)

Désolé d'insisté mais je suis vraiment bloqué.

Merci d'avance pour votre aide.

1code-ltda.xlsm (734.31 Ko)
Rechercher des sujets similaires à "macro enregistrement fichier different"