Sélectionner un fichier et copier certaines cellules

Bonsoir,

Voici mon problème, j'essaye de sélectionner un fichier excel (=fichier A) parmi une liste de fichiers ouverts et de copier certaines cellules de diverses feuilles dans le fichier contenant la macro (=fichier B).

Pour la 1ère partie :"sélectionner un fichier parmi une liste de fichiers ouverts", j'ai utilisé votre poste ci-dessous, il est très bien fait

https://forum.excel-pratique.com/excel/vba-selectionner-un-fichier-deja-ouvert-t23359.html

Mais alors je bloque un peu sur la manière de "copier certaines cellules de diverses feuilles du fichier A dans les diverses feuilles du fichier contenant la macros" et d'insérer au bon endroit cette partie de code dans la première macro.

Si quelqu'un avait une bonne idée à me conseiller, ce serait super sympa de votre part.

Merci beaucoup,

jro

Bonsoir,

Tu n'as pas l'air de t'être décidé de travailler sur des fichiers ouverts ou d'aller les chercher pour les ouvrir...

Cordialement.

Bonjour,

Je travaille avec des fichiers ouverts, désolé si je n'ai pas été clair.

Avez-vous une suggestion, svp ?

Merci

Bonjour,

Sans savoir où se trouvent les cellules que vous voulez copier et où elles doivent être collées nous ne pourrons pas t'aider de manière optimal. nous ne savons pas si il y a une possibilité de boucler sur toutes les feuilles ou bien faire au cas par cas ?

Pour ce qui est de copier/coller une cellule d'un classeur vers un autre, il semble que tu saches déjà le faire à l'aide de la technique présente dans ton code :

Sortie.Worksheets("Feuil1").Cells(2, 2) = Entree.Worksheets("Feuil1").Cells(1, 1)

Grâce à laquelle la cellule B2 de la feuille 1 du fichier Sortie prendra la valeur de la cellule A1 de la feuille 1 du fichier Entree.

A toi d'adapter cette ligne pour chaque cellule de chaque feuille que tu veux copier/coller.

A plus !

Bonjour,

Désolé je n'étais plus très bien réveillé quand j'ai posé ma question hier soir

Je vais essayer d'être plus précis.

J'aimerai insérer la partie copier/coller d'une cellule (Module 2) d'un classeur sélectionné via le Module 1 (ou le UserForm) vers un autre classeur identique.

Pour être plus complet, l'utilisateur ouvrira le fichier contenant la macro.

Il aura plusieurs fichiers excel déjà ouvert à l'écran et,

lorsqu'il exécutera la macro cela lui permettra de sélectionner le classeur dont les cellules devront être recopier vers le fichier contenant la macro, et ces 2 fichiers seront identiques

Merci pour voter aide,

jro

Bonjour,

J'ai essayé tant bien que mal à trouver par moi-même, mais je bloque complètement.

Voici le classeur contenant la macro et le classeur dont il faudrait recopier certaines cellules vers le classeur contenant la macro.

Lorsque j'ai les 2 fichiers ouverts, que j'exécute la macro et que je sélectionne le fichier, il me donne une erreur d'exécution '13' Incompatibilité de type.

Quelqu'un aurait-il une solution, svp ?

Merci beaucoup,

jro

29infos.xlsx (13.14 Ko)

bonjour,

voila une proposition à mettre sur un CommandButton après avoir sélectionner le fichier à copier dans la listbox.

EDIT : Avec la mise en forme source.

Private Sub CommandButton1_Click()

    Dim Wb_Copy As Workbook
    Dim Wb_Paste As Workbook
    Dim MaPlage As Range
    Dim cel As Range
    Set Wb_Copy = Workbooks(Me.ListBox1.Value)
    Set Wb_Paste = Workbooks(ThisWorkbook.Name)
    Set MaPlage = Wb_Copy.ActiveSheet.UsedRange

    MaPlage.Copy
    Wb_Paste.Sheets("Feuil1").Range("A1").PasteSpecial Paste:=xlPasteColumnWidths
    ActiveSheet.Paste
    Application.CutCopyMode = False

End Sub

A plus !

Merci beaucoup Braters,

Je n'avais pas pensé à l'ajout d'un bouton, ça fait quelques années que je ne fais plus de VBA, j'avoue que j'ai un peu de mal à m'y remettre

Lorsque je sélectionne le fichier et que j'exécute le bouton 'Copier', il ne fait rien et reste sur le User_form sans erreur

Voici le fichier adapté avec le bouton 'Copier'

Merci pour ton aide,

jro

Voilà mon fichier où j'ai réalisé la macro.

Dans ton fichier, tu as bien mis la macro sur le commandbutton mais tu as renommé ton bouton en "Copier" donc ta macro doit être "Copier_Click" et plus "CommandButton1_Click" !

99copier-fic.xlsm (26.62 Ko)

Merci beaucoup Braters,

Dernière petite question : dans ce cas-ci tu recopies toutes cellules d'une feuille d'un classeur vers l'autre.

Je souhaiterai uniquement copier certaines cellules de différentes feuilles, aurais-tu une suggestion, stp ?

A+

.UsedRange ne copie que la plage utilisée et non toute la feuille.

Utiliser .Copy/.PasteSpecial te permettra d'avoir la mise en forme source ou de coller avec chacune des options de collage excel.

si tu connais les différentes cellules à copier/coller, et dans le cas ou il n'y en a pas trop, tu peux utiliser la technique initiale c'est à dire :

MonFichierMacro.MaFeuille.MaCellule = MonFichierBase.MaFeuille.LaCelluleàCopier
'et donc
Wb_Paste.Sheets("Feuil1").Range("C5") = Wb_Copy.Sheets("Infos").Range("C5")
'par exemple

pour chaque cellule que tu veux copier/coller ou bien faire une boucle si les cellules le permettent.

A plus !

Merci Braters,

Désolé, mais lorsque j'utilise cette option, je reçois une erreur d'exécution '9' l'indice n'appartient pas à la sélection sur la ligne de code :

Wb_Paste.Sheets("Feuil1").Range("C5") = Wb_Copy.Sheets("Infos").Range("C5")


Désolé, j'ai fait une fausse manipulation, mon problème est résolu Braters

Merci beaucoup pour tes explications,

bonjour, serait-il possible d'avoir le code final pour copier uniquement certaines cellules?

Rechercher des sujets similaires à "selectionner fichier copier certaines"