Copier coller feuille d'un classeur vers un autre classeur [Résolu/Fermé]

Messages postés
172
Date d'inscription
mercredi 7 décembre 2016
Statut
Membre
Dernière intervention
27 mars 2018
- - Dernière réponse : GermPeru
Messages postés
172
Date d'inscription
mercredi 7 décembre 2016
Statut
Membre
Dernière intervention
27 mars 2018
- 3 févr. 2017 à 22:56
Bonjour a tous,

Je sais quíl y a plusieuurs discution sur le sujet mais la je bloque.

Je cherche a copier les données d´une feuille dún classeur vers une autre feuille dún autre classeur. Mon code bloque sur le copier coller, j´ai essayé de differentes facon mais fonctionne pas...

Je lance ma maccro depuis le fichier GuardarComo (path: "C:\Users\user\Desktop\Dispesacion\alamacén\GuardarComo.xlsm", Password:="Germain").


Sub Abrir()
Dim MaRep As String, Chemin As String

Chemin = "C:\Users\user\Desktop\lotes\"
On Error GoTo NoExiste
MaRep = InputBox("Introduzca N° de lote:", "Impresión etiqueta de dispensación")

      ' ouverture du fichier ac mdp
      Workbooks.Open Chemin & MaRep & ".xls", Password:="Dispensacion"
      'on ne rend pas visible le fichier alors ouvert
      ActiveWindow.Visible = False
      'on copie les données de la feuille "marep" du fichier "marep" pour les coller dans classeur "guardarcomo" ds la feuille "Impet"
      Workbooks(Chemin & MaRep & ".xls").Sheets(MaRep).Cells.Copy ThisWorkbook.Sheets("ImpEt").Range("A1").Paste ' On colle les données
      Workbooks(Chemin & MaRep & ".xls").Close False ' Ferme le fichier source sans le sauvegardé
Exit Sub

NoExiste:
MsgBox "El N° de lote introducido no existe", vbCritical

End Sub


Merci de l´aide.
Afficher la suite 

2 réponses

Messages postés
3
Date d'inscription
mardi 4 mars 2014
Statut
Membre
Dernière intervention
3 février 2017
0
Merci
Bjr
Si j'ai bien compris:
-Les deux classeurs étant ouvert
-faite un clique droit sur la feuille à copié,
-cliquer sur Déplacer ou copier dans le menu qui s'affiche,
-dans la fenêtre qui s'ouvre sélectionner le nom du classeur de réception dans la liste déroulante,
-Cocher la case Créer une copie.
-puis OK.
GermPeru
Messages postés
172
Date d'inscription
mercredi 7 décembre 2016
Statut
Membre
Dernière intervention
27 mars 2018
-
Bjr,

Je voudrais automatiser par vba cette action car je souhaiterais faire d'autres actions avec les données copiées.

Je lance la maccro depuis le classeur "gaurdarcomo", j'ai une input box qui me permet d´ouvrir le deuxieme fichier "MaRep". Le nom de la feuille de ce 2ieme fichier est le meme que le nom du fichier, parametré dans le meme fichier via code vba. Copier les données de la feuille du classeur alors ouvert les collées dans la feuille nommée "ImpEt" puis fermé le classeur "MaRep".

Merci
Messages postés
172
Date d'inscription
mercredi 7 décembre 2016
Statut
Membre
Dernière intervention
27 mars 2018
0
Merci
Aprés y avoir passé la journée jý suis arrivé en definissant les fichiers et en travaillant avec les positions index de chacune des feuilles dans chacun des classeurs.
Il y a certainement plus efficace mais cela fonctionne, alors pour ceux que ca peut interesser je vous indique le code:

Sub Abrir()
Dim MaRep As String, Chemin As String, FichierMaRep As String, FichierActuel As String

'dossier contenant les N° de lot
Chemin = "C:\Users\user\Desktop\lotes\"

On Error GoTo NoExiste

'Definit fichieractuel
FichierActuel = ActiveWorkbook.Name

'Demande du N° de lot a ouvrir
MaRep = InputBox("Introduzca N° de lote:", "Impresión etiqueta de dispensación")

'Definit fichier ma rep
FichierMaRep = Chemin & MaRep & ".xls"

' ouverture du fichier, sans actualisation des liens, non en lecture seul pour copier les données et ac mdp
Workbooks.Open FichierMaRep, 0, False, Password:="Dispensacion"
FichierMaRep = ActiveWorkbook.Name

'copie les données de la feuille en position index 1 du fichier "marep" pour les coller dans classeur "guardarcomo" en position index 1
Workbooks(FichierMaRep).Sheets(1).Copy After:=Workbooks(FichierActuel).Sheets(1)

' Ferme le fichier source sans le sauvegardé
Workbooks(FichierMaRep).Close False
Exit Sub

NoExiste:
MsgBox "El N° de lote introducido no existe", vbCritical

End Sub