problème copier coller entre 2 fichiers excel

samo.m

XLDnaute Nouveau
Bonsoir à tous !

Je débute en VBA depuis quelques semaines et j'essaie de créer une macro pour copier les données d'un fichier A et les coller à la suite des données déjà existantes dans un fichier B.
Je souhaite que les données du fichier A soient coller à la suite horizontalement (au niveau des colonnes)
Le problème avec cette macro est qu'à chaque exécution j'ai toujours ce même message d'erreur et je n'arrive pas à la faire fonctionner: "Erreur d’exécution 9 (l'indice n'appartient pas à la sélection)".

Dans cette macro je demande à l'utilisateur de choisir son premier fichier (le fichier possédant les données à copier) et choisir le second fichier (le fichier où les données doivent être collées)

Voici ma macro:

Sub testcomplet()

F1 = Application.GetOpenFilename
If F1 = False Then Exit Sub
MsgBox "vous avez sélectionné le fichier " & F1
F2 = Application.GetOpenFilename
If F2 = False Then Exit Sub
MsgBox "vous avez sélectionné le fichier " & F2
Workbooks.Open (F1)
Sheets("Feuil1").Range("A1").CurrentRegion.Copy
ActiveWorkbook.Close
Workbooks(F2).Sheets("Feuil1").Range("1, Columns.Count").End(xlToLeft).Offset(, 1).Activate
ActivateSheet.Paste
ActiveWorkbook.Save
End Sub

Merci pour votre aide !!
 

Patrice33740

XLDnaute Impliqué
Re : problème copier coller entre 2 fichiers excel

Bonjour,

Le problème est que la feuille Feuil1 n'existe pas forcement dans le fichier.
D'autre par une Sheet n'est pas obligatoirement une WorkSheet.

Remplaces : Sheets("Feuil1")
Par : WorkSheets(1)

D'autre part comme tu débutes, il faut prendre les bonnes habitudes dès maintenant :
- Commences tous tes modules par Option Explicit
- Déclare les variables selon leur type
 

samo.m

XLDnaute Nouveau
Re : problème copier coller entre 2 fichiers excel

Merci pour vos réponses, j'ai essayé avec vos recommandations mais cela ne fonctionne toujours pas.
Je vais mettre ma macro actuelle
 
Dernière modification par un modérateur:

samo.m

XLDnaute Nouveau
Re : problème copier coller entre 2 fichiers excel

Lorsque j'essaie de déclarer mes variables F1 et F2 J'ai une erreur d'exécution 13 (incompatibilité de type)
Voici ma macro:

Sub testcomplet()
Dim F1 As String
Dim F2 As String
F1 = Application.GetOpenFilename
If F1 = False Then Exit Sub
MsgBox "vous avez sélectionné le fichier " & F1
F2 = Application.GetOpenFilename
If F2 = False Then Exit Sub
MsgBox "vous avez sélectionné le fichier " & F2
Workbooks.Open (F1)
Worksheets(1).Range("A1").CurrentRegion.Copy
Workbooks(F2).Worksheets(1).Range("1, Columns.Count").End(xlToLeft).Offset(, 1).Activate
ActivateSheet.Paste
ActiveWorkbook.Save
End Sub
 

Patrice33740

XLDnaute Impliqué
Re : problème copier coller entre 2 fichiers excel

Re,

Si tu places le curseur sur GetOpenFilename et que tapes F1, dans l'aide tu peux lire :

Cette méthode renvoie le nom du fichier sélectionné ou le nom tapé par l'utilisateur. Le nom renvoyé est susceptible d'inclure une spécification de chemin. Si MultiSelect a la valeur True, la valeur renvoyée est un tableau des noms de fichiers sélectionnés (même si un seul nom de fichier est sélectionné). Renvoie la valeur False si l'utilisateur annule la boîte de dialogue.

Autrement dit, elle renvoie soit :
- une chaîne (String)
- un tableau
- un booléen (False)

Il faut donc écrire :
Dim F1 As Variant
Dim F2 As Variant

Patrice
 

samo.m

XLDnaute Nouveau
Re : problème copier coller entre 2 fichiers excel

Merci Patrice !!

En ce qui concerne les variables c'est ok, mais il me reste toujours l'erreur d'exécution 9...
Si quelqu'un a déjà rencontré un problème semblable, ça me serait très utile.

Merci !!
 

samo.m

XLDnaute Nouveau
Re : problème copier coller entre 2 fichiers excel

Bonjour,
Merci Patrice, j'ai un peu modifié mon code et j'ai apporté les modifications que vous m'avez fournie.
Néanmoins cela bloque au niveau de "Selection.Paste" avec une erreur d'exécution 438 "l'objet ne gère pas cette propriété ou méthode"

Voici mon code:

Sub testcomplet()
Dim F1 As Variant
Dim F2 As Variant
F1 = Application.GetOpenFilename
If F1 = False Then Exit Sub
MsgBox "vous avez sélectionné le fichier " & F1
F2 = Application.GetOpenFilename
If F2 = False Then Exit Sub
MsgBox "vous avez sélectionné le fichier " & F2
Workbooks.Open Filename:=F1
Range("A1").CurrentRegion.Select
Selection.Copy
Workbooks.Open Filename:=F2
Cells(1, Columns.Count).End(xlToLeft).Offset(, 1).Select
Selection.Paste
ActiveWorkbook.Save
ActiveWorkbook.Close
End Sub
 

Patrice33740

XLDnaute Impliqué
Re : problème copier coller entre 2 fichiers excel

Re,

Essaies ce code :
Code:
Option Explicit
Sub testcomplet()
Dim F1 As Variant
Dim F2 As Variant
Dim W1 As Workbook
Dim W2 As Workbook
Dim rng As Range
Dim cel As Range
  F1 = Application.GetOpenFilename("Excel File (*.xls;*.xlsx),*xls;*.xlsx", , "Source")
  If F1 = False Then Exit Sub
  MsgBox "Le fichier source sélectionné est :" & vbCr & F1
  F2 = Application.GetOpenFilename("Excel File (*.xls;*.xlsx),*xls;*.xlsx", , "Destination")
  If F2 = False Then Exit Sub
  MsgBox "Le fichier destination sélectionné est :" & vbCr & F2
  Set W1 = Workbooks.Open(Filename:=F1)
  Set rng = W1.Worksheets(1).Range("A1").CurrentRegion
  Set W2 = Workbooks.Open(Filename:=F2)
  With W2.Worksheets(1)
    Set cel = .Cells(1, .Columns.Count).End(xlToLeft).Offset(, 1)
  End With
  rng.Copy Destination:=cel
  W2.Save
  W2.Close
  W1.Close
End Sub
 

samo.m

XLDnaute Nouveau
Re : problème copier coller entre 2 fichiers excel

Bonsoir !
Je ré-ouvre la conversation car j'ai quelques détails à ajouter à la macro et cela me pose quelques difficultés.
Comment faire si je ne souhaite pas copier la première colonne du fichier A, ni les 3 premières lignes, c'est à dire que je souhaite copier mon fichier A (classeur1) à partir de la cellule B4

Je vous joins 2 fichiers afin de vous montrer ce que je souhaite faire, le fichier "titi" dispose de toutes les informations nécessaires et c'est pour cela que je ne souhaite pas les ajouter avec le classeur1.
Le fichier recap correspond à ce que j'aimerais avoir à la fin (c'est mon objectif).

Merci de votre aide !
 

Pièces jointes

  • titi.xlsx
    8.5 KB · Affichages: 30
  • Classeur1.xlsx
    8.4 KB · Affichages: 37
  • recap.xlsx
    8.6 KB · Affichages: 34
  • Classeur1.xlsx
    8.4 KB · Affichages: 51
  • recap.xlsx
    8.6 KB · Affichages: 39

Discussions similaires

Statistiques des forums

Discussions
312 195
Messages
2 086 075
Membres
103 111
dernier inscrit
Eric68350