XL 2016 VBA : Copier des valeurs entre deux fichiers

Leché

XLDnaute Junior
Bonjour,

J'ai ce bout de code qui me permet de :

1- Je copie une plage de donnée du FichierA ( les données sont le résultat d'une formule)
2- J'ouvre un second Fichier (dans le même dossier que le FichierA) ayant un nom aléatoire et dont le nom est contenue dans mon fichierA en cellule A1
3- Je colle les données copier du FichierA sur mon fichier fraichement ouvert (en valeur)

VB:
Workbooks("FichierA.xlsm").Worksheets("Feuil1").Range("D8").Select
Workbooks("FichierA.xlsm").Worksheets("Feuil1").Range("D8:D100").Copy

MonFichier = Range("A1").Value
Workbooks.Open Filename:=ThisWorkbook.Path & "\" & MonFichier

Worksheets("Feuil1").Range("V2:V100").Select 'Zone selectionnée
Worksheets("Feuil1").Range("V2:V100").Clear 'Zone selectionnée supprimé
Worksheets("Feuil1").Range("V2").Select 'Cellule selectionné pour copier les donnée du fichier A
   Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False


Cependant cela me met une erreur au moment du collage, avez vous une idée de ce qui ne va pas ?
Je pensais rajouter un bout de code qui garde en mémoire le copiage des données, mais je ne voit pas comment faire?

Merci pour votre aide,

Salutations,
 
Solution
Re-bonjour,

C'est ton clear qui force la déselection du copy.
Essaye comme suivant :
VB:
MonFichier = Range("A1").Value
Workbooks.Open Filename:=ThisWorkbook.Path & "\" & MonFichier

Worksheets("Feuil1").Range("V2:V100").Clear
Workbooks("FichierA.xlsm").Worksheets("Feuil1").Range("D8:D100").Copy
Worksheets("Feuil1").Range("V2").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False

Bonne journée,

xUpsilon

XLDnaute Accro
Bonjour,

Commence par supprimer les select qui ne servent à rien :
VB:
Workbooks("FichierA.xlsm").Worksheets("Feuil1").Range("D8:D100").Copy

MonFichier = Range("A1").Value
Workbooks.Open Filename:=ThisWorkbook.Path & "\" & MonFichier

Worksheets("Feuil1").Range("V2:V100").Clear
Worksheets("Feuil1").Range("V2").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False

Ensuite, quel est le message d'erreur ? Je me demande si les Select ne posent pas un problème de non correspondance de la taille de plage.

Bonne journée,
 

Leché

XLDnaute Junior
Bonjour,

Commence par supprimer les select qui ne servent à rien :
VB:
Workbooks("FichierA.xlsm").Worksheets("Feuil1").Range("D8:D100").Copy

MonFichier = Range("A1").Value
Workbooks.Open Filename:=ThisWorkbook.Path & "\" & MonFichier

Worksheets("Feuil1").Range("V2:V100").Clear
Worksheets("Feuil1").Range("V2").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False

Ensuite, quel est le message d'erreur ? Je me demande si les Select ne posent pas un problème de non correspondance de la taille de plage.

Bonne journée,
Bonjour,

Merci pour ta réponse :)

Alors j'ai toujours l'erreur, sur la dernière ligne, en faisant cette modification :

Erreur d'exécution '1004' :
La méthode PasteSpecial de la classe Range à échoué.

Salutations,
 

xUpsilon

XLDnaute Accro
Re-bonjour,

C'est ton clear qui force la déselection du copy.
Essaye comme suivant :
VB:
MonFichier = Range("A1").Value
Workbooks.Open Filename:=ThisWorkbook.Path & "\" & MonFichier

Worksheets("Feuil1").Range("V2:V100").Clear
Workbooks("FichierA.xlsm").Worksheets("Feuil1").Range("D8:D100").Copy
Worksheets("Feuil1").Range("V2").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False

Bonne journée,
 

Leché

XLDnaute Junior
Re-bonjour,

C'est ton clear qui force la déselection du copy.
Essaye comme suivant :
VB:
MonFichier = Range("A1").Value
Workbooks.Open Filename:=ThisWorkbook.Path & "\" & MonFichier

Worksheets("Feuil1").Range("V2:V100").Clear
Workbooks("FichierA.xlsm").Worksheets("Feuil1").Range("D8:D100").Copy
Worksheets("Feuil1").Range("V2").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False

Bonne journée,

Et bah ça fonctionne :)

Merci beaucoup pour ton aide.

Bonne journée,

Salutations
 

Discussions similaires

Statistiques des forums

Discussions
311 713
Messages
2 081 806
Membres
101 819
dernier inscrit
lukumubarth