Copier/coller d'un fichier Excel vers un autre

monsac

XLDnaute Nouveau
Bonjour,

Premiere fois sur ce forum...
Je souhaiterai faire un copier coller de valeurs d'un fichier à un autre avec la procedure suivante:
1 Selection du fichier à ouvrir GetOpenFilename
2 Selection de la feuille, des cellules puis copie des donnees
3 Revenir au classeur d'origine
4 InputBox pour selectionner la ou les cellules d'arrivées pour coller
5 Coller

Voici le code que j'utilise que j'ai obtenu via d'autre discussions du forum, c'est pas tres propre (il y a surement des trucs qui servent à rien) mais je ne suis qu'un débutant...

Sub TEST2()
'
' TEST2 Macro
'
' Touche de raccourci du clavier: Ctrl+Maj+Y
'
' Choisir le fichier à ouvrir
MonFichier = Application.GetOpenFilename("Fichiers Excel (*.xl*), *.xl*")
If MonFichier <> False Then
Workbooks.Open Filename:=MonFichier
Else
Exit Sub
End If
' Choisir la 1,2,3,4... feuille du fichier excel
Sheets(1).Activate
' Selectionner les cellules suivantes
Range("D16:D55").Select
' Copier la selection
Selection.Copy
' Selection du classeur de départ, feuille 1,2,3,4... puis la ou les cellules
Windows("Classeur1").Activate
Sheets(1).Activate
Dim ref As Range
Set ref = Application.InputBox(prompt:="Sélectionner les cellules sur la feuille", Type:=8)
MsgBox (ref.Address)
' Coller les valeurs
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
End Sub

PB de bogue:
- La macro bloque sur l'opération de collage, il semblerait que les données du presse papier ne sont plus en mémoire ou quelque chose comme ca. Que faut il rajouter dans cette étape du code?
- En testant l'etape 4 (InputBox) sur un autre code, la macro ne prend pas en compte la cellule selectionnée pour l'étape du collage.

Merci de votre aide !!!
 

Gareth

XLDnaute Impliqué
Re : Copier/coller d'un fichier Excel vers un autre

Bonsoir,

Tu peux essayer ceci :
Code:
Sub TEST2()
Dim ref As Range
ThisWorkbook.Sheets(1).Activate 'Active Feuil1 du classeur contenant la macro
Set ref = Application.InputBox(prompt:="Sélectionner les cellules sur la feuille", Type:=8) 'Définit la Ref de cellule où copier
MonFichier = Application.GetOpenFilename("Fichiers Excel (*.xl*), *.xl*") 'Récupère le nom de fichier
If MonFichier <> False Then
   Workbooks.Open Filename:=MonFichier 'Ouvre le fichier
Else
   Exit Sub
End If
ref.Value = Workbooks(Split(MonFichier, "\")(UBound(Split(MonFichier, "\")))).Sheets(1).Range("C3").Value 'Copie la valeur de C3 du fichier choisi dans la cellule de destination choisie. Split permet de récupérer le nom du fichier sans le chemein complet.
Workbooks(Split(MonFichier, "\")(UBound(Split(MonFichier, "\")))).Close False 'Ferme le fichier
End Sub
 

monsac

XLDnaute Nouveau
Re : Copier/coller d'un fichier Excel vers un autre

Merci c'est parfait !
En revanche, savez comment intégrer une boucle (Loop) dans l'opération de facon à ce que je puisse répéter la macro automatiquement avec un autre fichier?
En attendant je vais essayer ca de mon cote !
 

Gareth

XLDnaute Impliqué
Re : Copier/coller d'un fichier Excel vers un autre

Bonsoir,

Tu peux essayer comme ceci :
Code:
Sub TEST2()
Dim Var1 As Range
ThisWorkbook.Sheets(1).Activate 'Active Feuil1 du classeur contenant la macro
On Error Resume Next
Set Var1 = Application.InputBox(prompt:="Sélectionner les cellules sur la feuille", Type:=8) 'Définit la Ref de cellule où copier
If Var1 Is Nothing Then Exit Sub
MonFichier = Application.GetOpenFilename("Fichiers Excel (*.xl*), *.xl*") 'Récupère le nom de fichier
    If MonFichier <> False Then
        Workbooks.Open Filename:=MonFichier 'Ouvre le fichier
    Else
        Exit Sub
    End If
Var1.Value = Workbooks(Split(MonFichier, "\")(UBound(Split(MonFichier, "\")))).Sheets(1).Range("C3").Value 'Copie la valeur de C3 du fichier choisi dans la cellule de destination choisie. Split permet de récupérer le nom du fichier sans le chemein complet.
Workbooks(Split(MonFichier, "\")(UBound(Split(MonFichier, "\")))).Close False 'Ferme le fichier
TEST2
End Sub
 

Discussions similaires

Statistiques des forums

Discussions
312 323
Messages
2 087 300
Membres
103 512
dernier inscrit
sisi235