Copier plages cellule fichiers sources vers fichiers dest

Bonjour,

Je bloque actuellement sur la récupération de données de deux fichiers sources vers mon fichier de destination qui s'avère être un fichier d'analyse.

J'ai déjà une macro me permettant de sélectionner et ouvrir les deux fichiers souhaités.

Maintenant, ce que je n'arrive pas a faire c'est sélectionner les informations qui m’intéresse dans ces deux fichiers et les copier dans mon fichier de destination.

Détails de mon besoin :

Mon fichier de destination se nomme Analyse, c'est depuis ce fichier à partir de la Feuil"Analyses" que je lance ma macro.

Elle permet de sélectionner et ouvrir les fichiers sources de mon choix, en l’occurrence :

- Source120112020

- Source220112020

Ces deux fichiers voient leurs nom évoluer quotidiennement en fonction de la date. Seule la racine Source1 et Source2 est fixe, la suite change chaque jour.

1 ère difficulté, comment réussir a activer ces fichiers une fois ouvert afin de venir copier la plage de cellule que j'ai besoin.

J'essaye de faire dire la chose suivante à ma macro sans succès => Activer le workbook qui commence par Source1*

Un début de code qui ne marche pas en dessous.

Set Wbk1 = ThisWorkbook

'

For Each wb In Workbooks

If UCase(wb.Name) Like "Source1*" Then wb.Select: Exit For

With ActiveSheet
25analyse.xlsm (24.62 Ko)

Une fois mes 3 fichiers ouverts (Analyse, Source1*, Source2*), je souhaite :

1) Venir copier les cellules C7:I200 de la Feuil("Export_22112020") de classeur Source1 vers la Feuil "Variables1" de mon classeur Analyse (en démarrant par la cellule A12)

On note également que la Feuil du classeur Source1 à une partie de son nom variable selon la date, seule la racine "Export_" reste inchangée.

2) Venir copier les cellules des plages suivante => A7:B5000 puis G7:O5000 puis V7:Y5000 du fichier source2 depuis la Feuil "Base_de_données" vers mon classeur Analyse Feuil Variables2.

Ces 3 plages de cellule formeront dans la Feuil Variable2 du classeur Analyses un tableau, elles seront donc copiées successivement à la suite des autres sans laisser de colonnes vides.

3) Fermer les deux classeurs source une fois la copie réalisée.

Merci d'avance pour votre aide.

En PJ les 3 fichiers.

Cdt

Bonsoir à toutes et à tous,

Je relance le sujet, est-ce qu'une âme charitable aurait des élément de réponses quant à mon besoin ?

Encore désolé si je l'exprime avec maladresse (relativement débutant en VBA).

Merci d'avance et bonne fin de journée

Bonjour Spike, bonjour le forum,

Peut-être comme ça :

Sub Ouverture_fichiers_source2()
Dim CD As Workbook
Dim OD As Worksheet
Dim BSF As FileDialog
Dim FS As Byte
Dim CS() As Variant 'déclare la variable CS (tableau des Classeurs Sources)
Dim OS() As Variant 'déclare la variable OS (tableau des Onglets Sources)

Set CD = ThisWorkbook
Set OD = CD.Worksheets(1)
Set BSF = Application.FileDialog(msoFileDialogOpen)
BSF.AllowMultiSelect = True
BSF.Show
If BSF.SelectedItems.Count = 0 Then Exit Sub
For FS = 1 To BSF.SelectedItems.Count
    ReDim Preserve CS(1 To FS) 'redimensionne le tableau des Classeurs Sources
    ReDim Preserve OS(1 To FS) 'redimensionne le tableau des Onglets Sources
    Application.Workbooks.Open (BSF.SelectedItems(FS))
    Set CS(FS) = ActiveWorkbook 'définit le classeur source
    Set OS(FS) = CS(FS).Worksheets(1) 'définit l'onglet source
    CD.Activate 'inutile dans la boucle
    OD.Activate 'inutile dans la boucle
Next
CS(1).Activate 'juste pour voir le resultat pas à pas...
CS(2).Activate'juste pour voir le resultat pas à pas...
End Sub

Ensuite tu pourras faire tes copier/coller juste en spécifiant l'onglet source OS(1) ou OS(2) et l'onglet destination OD du style :

OS(1).Range("A1:G15").Copy OD.Range("A1") 'juste un exemple...


Bonjour ThauThème et merci pour ta réponse.

Ton code fonctionne à merveille, plus qu'à l'adapter à mon fichier.

Un grand merci !

Bonne journée à toi.

Rechercher des sujets similaires à "copier plages fichiers sources dest"