Copier le contenu d'un fichier Excel fermé vers un fichier Excel ouvert

Bonjour à tous,

Voilà mon problème :

Je souhaite copier le contenu d'une cellule d'un excel fermé vers mon fichier excel ouvert. Pour cela j'utilise la macro suivante :

Sub insertion_bibliotheque()

Workbooks.Open Filename:= _

"R:\Departements\Departement Production\BIBLIOTHEQUE\" & Cells(64, 3).Value & ".xlsx"

Cells(13, 2).Select

Selection.Copy

Windows("FICHE TRAVAIL EXEMPLE version 5").Activate

Sheets("Gamme").Select

Cells(443, 2).Select

ActiveSheet.Paste

Application.DisplayAlerts = False

Windows("" & Cells(64, 3).Value & ".xlsx").Activate

ActiveWindow.Close

End Sub

Vous pouvez constater dans l'adresse que j'utilise " & Cells(64, 3).Value & " car le nom du fichier fermé peux varier et je le rentre directement dans une cellule de mon fichier excel ouvert.

Cette macro rempli sa fonction c'est à dire qu'elle copie bien le contenu qui m'intéresse pour l'envoyer vers mon fichier ouvert. La ou ça coince c'est au niveau du Windows("" & Cells(64, 3).Value & ".xlsx").Activate il me met le message d'erreur suivant :

Erreur d'execution '9' :

L'indice n'appartient pas à la sélection

Je suis sûr que c'est une mauvaise écriture de ma part, mais la je sèche complètement. Si quelqu'un à une idée..

Bonjour,

Peux-tu joindre un ou des fichiers pour que l'on voit à quoi ça ressemble plus précisément ?

Pour ton code :

Windows(Cells(64, 3).Value & ".xlsx").Activate
'Est-il utile de mettre "" & au début ?

Plus généralement, tu as quoi dans ta cellule C64 ? Un nom de fichier ? Un chemin complet ? Est-il ouvert ?

Bonjour Pedro22,

Je te remercie pour ce bout de code, mais malheureusement il ne fonctionne pas, j'ai toujours l'erreur d'execution 9

Pour le joindre sa vas être compliquer car dans le code nous faisons référence à d'autre fichier excel dans un répertoire sur serveur.

Mais en gros dans ma cellule C64 j'ai simplement le nom du fichier Excel qui est fermé (Je dis bien le fichier, et non pas le nom de l'une de ses feuilles) C'est un nom basique avec des lettre et des chiffres, aucun caractères spéciaux

bonjour,

Windows("" & Cells(64, 3).Value & ".xlsx").Activate

ActiveWindow.Close

ActiveWorkbook.Close

Bonjour,

Dans ton fichier "FICHE TRAVAIL EXEMPLE version 5.xlsm"

Supposons que la feuille qui contient le nom du fichier fermé se nomme "Feuil1"

Supposons que la feuille du fichier fermer se nomme "Source"

Sub insertion_bibliotheque()

Workbooks.Open Filename:= _
    "R:\Departements\Departement Production\BIBLIOTHEQUE\" & Cells(64, 3).Value & ".xlsx"

Workbooks(Cells(64, 3).Value & ".xlsx").Worksheets("Source") _
    .Cells(13, 2).Copy Workbooks("FICHE TRAVAIL EXEMPLE version 5.xlsm") _
    .Worksheets("Gamme").Cells(443, 2)

Application.DisplayAlerts = False
Workbooks(Cells(64, 3).Value & ".xlsx").Close

End Sub

Fonctionne sous Excel 2016

ric

Bonsoir rls, le forum,

à tout hasard, essaye avec :

Windows("" & Cells(64, 3).Value & ".xlsx""").Activate

dhany

Bonsoir, Salut à tous !

Je remplacerais ta macro par ceci :

Sub insertion_bibliotheque()
    Dim ws As Worksheet
    Set ws = ThisWorkbook.Worksheets("Gamme")
    With Workbooks.Open("R:\Departements\Departement Production\BIBLIOTHEQUE\" _
     & ws.Cells(64, 3).Value & ".xlsx")
        ws.Cells(443, 2) = .Cells(13, 2)
        .Close False
    End With
End Sub

Ce qui suppose que ton classeur Fiche Travail etc. est celui avec lequel tu opères, que la cellule (64, 3) se trouve sur la feuille Gamme de ce classeur, sinon il faudra une petite adaptation...

Cordialement.

Bonjour à tous,

Merci pour vos nombreuse réponse ! J'ai pris le temps de les essayer :

@dhany et @Xmenpl malheureusement les solutions que vous proposez ne marche pas, j'ai toujours la même erreur qui s'affiche

@ric, j'ai essayé en remplacant le nom de la feuille du fichier fermé par "Source" comme indiqué, mais je retrouve également la même erreur d'exécution 9, et il me surligne en jaune l'ensemble suivant :

Workbooks(Cells(64, 3).Value & ".xlsx").Worksheets("Source") _

.Cells(13, 2).Copy Workbooks("FICHE TRAVAIL EXEMPLE version 5.xlsm") _

.Worksheets("Gamme").Cells(443, 2)

@MFerrand, effectivement cela pourrais peut-être fonctionner, par contre mon Cells(64, 3) se trouve sur une autre feuille appeler "CHOIX"

Petite modification :

Sub insertion_bibliotheque()
    Dim ws As Worksheet, chF$
    With ThisWorkbook
        chF = "R:\Departements\Departement Production\BIBLIOTHEQUE\" _
         & .Worksheets("CHOIX").Cells(64, 3) & ".xlsx"
        Set ws = .Worksheets("Gamme")
    End With
    Application.ScreenUpdating = False
    With Workbooks.Open(chF)
        ws.Cells(443, 2) = .Worksheets("Source").Cells(13, 2)
        .Close False
    End With
End Sub

Cordialement.

Sub insertion_bibliotheque()

Dim nomimport as workbook

nomimport=R:\Departements\Departement Production\BIBLIOTHEQUE\" & Cells(64, 3).Value & ".xlsx

Workbooks.Open Filename:= _

"R:\Departements\Departement Production\BIBLIOTHEQUE\" & Cells(64, 3).Value & ".xlsx"

Cells(13, 2).Select

Selection.Copy

Windows("FICHE TRAVAIL EXEMPLE version 5").Activate

Sheets("Gamme").Select

Cells(443, 2).Select

ActiveSheet.Paste

Application.DisplayAlerts = False

nompimport.Close SaveChanges:=False

End Sub

peut être avec un dim pour le nom de workbook à réutiliser ?

@Xmenpl : Je n'avais pas eu le temps de revenir sur ce sujet...

Si j'ai pu émettre parfois quelques critiques (à titre amical ! ), j'étais tout de même habitué à un meilleur code de ta part que la reproduction d'un code bourré de Select...

Et déclarer une variable de type Workbook en lui affectant le chemin et le nom du fichier sous forme de chaîne, sans les guillemets.... crois-tu que ça peut fonctionner ?

De toute façon, tu ne pourrais lui affecter le classeur tant qu'il n'est pas ouvert...

Cordialement.

Bonjour MFerrand

Effectivement la chaleur la fatigue ou les neurones qui vieillissent .

C'est vraiment pas mon truc les pages de code sans fichier test

Et effectivement il faut d'abord attendre l'ouverture pour récupérer le nom de fichier dans les lignes de codes.

Sub insertion_bibliotheque()

End Sub

J'ai fais un test sur un fichier serveur … si le reste de son code fonctionne çà devrait le faire cette fois.

La prochaine fois je post plus sans fichier test lol

Rechercher des sujets similaires à "copier contenu fichier ferme ouvert"