Affecter un répertoire contenant données sources pour exécuter une macro

Bonsoir à tous,

J'espère que vous allez bien.

J'ai besoin de votre aide pour finaliser mon besoin.

Je voudrai pouvoir choisir mon fichier source dans un répertoire où il est déposé chaque mois.

En effet, c'est la MOA qui extrait le fichier chaque mois puis me le dépose dans un répertoire.

Comme il change chaque mois, mes macros ne peuvent pas être dans ce fichier (source contenant mes deux onglets dont j'ai besoin).

Le fichier source contient plusieurs onglets. Pour l'instant j'ai besoin uniquement les deux onglets "source_engagement" et "source_versement" et donc je voudrai sélectionner ces onglets quand j'aurai chargé le fichier source.

Je joins les deux fichiers "source" et le fichier contentant mes macros.

Je n'arrive vraiment pas à le faire.

Je vous remercie vraiment.

Remarque : Je pourrai adapter le chemin

Je reste à votre disposition si besoin plus de détails.

Bonjour,

Voici un exemple de code à adapter :

Sub test()
srep$ = "C:\..."
chdir srep
filename = application.getopenfilename()
if filename <> False then
    with workbooks.open(srep & filename) '< doute
        .sheets(array(1, 2)).copy after:=thisworkbook.sheets(thisworkbook.sheets.count))
        .Close true
    end with
end if
end sub

Cdlt,

Bonjour 3GB,

Je vous remercie pour retour rapide.

Par contre j'ai essayé le programme, pour le moment rien ne se passe.

La ligne suivante est en rouge !

.sheets(array(1, 2)).copy after:=thisworkbook.sheets(thisworkbook.sheets.count))

Je continue à chercher aussi.

Bonne journée

Bonjour,

Rien ne se passe mais le classeur est bien ouvert quand même ?

Oui, j'avais un petit doute à cet endroit...

Est-ce que vous connaissez les noms des feuilles à l'avance ?

Si oui, ce code (à adapter bien sûr) devrait aller :

Sub test()
srep$ = "C:\..."
chdir srep
filename = application.getopenfilename()
if filename <> False then
    with workbooks.open(srep & filename) '< doute
        .sheets(array("Feuil1", "Feuil2")).copy after:=thisworkbook.sheets(thisworkbook.sheets.count))
        .Close true
    end with
end if
end sub

Sinon, plus standard :

Sub test()
srep$ = "C:\..."
chdir srep
filename = application.getopenfilename()
if filename <> False then
    with workbooks.open(srep & filename) '< doute
        .sheets(1).copy after:=thisworkbook.sheets(thisworkbook.sheets.count))
        .sheets(2).copy after:=thisworkbook.sheets(thisworkbook.sheets.count))
        .Close true
    end with
end if
end sub

Cdlt,

Bonjour 3GB,

Je vous remercie pour votre retour.

Oui je connais le nom du fichier et les noms de mes deux onglets à l'avance.

Fichier : Extratiton_BO.xlsx

Onglet 1 : Engagement

Onglet 2 : Decaissement

Rechercher des sujets similaires à "affecter repertoire contenant donnees sources executer macro"