Copie de données d'un classeur vers un autre classeur

quicktibong

XLDnaute Nouveau
Bonjour,

me voilà confrontée à un problème (de syntaxe je pense) que je n'arrive pas à résoudre.

Dans un fichier nommé "Bilans", j'aimerais rapatrier des données se trouvant dans un fichier nommé "FICHE - Test".
Le principe de mon programme est le suivant : en cliquant sur un bouton d'importation, je rapatrie les données de tous les fichiers nommé comme suit "FICHE - *" dans mon fichier "Bilans". Sachant que les fichiers "FICHE - *" se trouvent dans un répertoire au même endroit que mon fichier "Bilans".

Voici le code permettant d'aller voir si j'ai des Fiches à importer. Si c'est le cas, ce code fait appel à une fonction "RecupInfosFiches". Et c'est dans le code de cette fonction que j'ai un soucis (il me semble...)

Code:
Option Compare Text
Public Ecraser As Boolean

Sub Importer()

Freeze

'Déclarations
    Dim fso As Object
    Dim f As Object, f1 As Object, f2 As Object
    Dim monrepertoire As String
    Set fso = CreateObject("Scripting.FileSystemObject")

'Chemin de fichier
    monrepertoire = ThisWorkbook.Path
    
'Ecraser les données déjà importées ou non ? Imprimer ou non ?
    If MsgBox("Les Fiches vont être cherchées dans le dossier parent de ce fichier ainsi que les sous-dossiers." & Chr(10) & "Elles doivent porter un nom sous la forme : FICHE - *" & Chr(10) & Chr(10) & "Continuer ?", vbYesNo) = vbNo Then Exit Sub
    NbImportées = ThisWorkbook.Sheets("Données").Range("a65536").End(xlUp).Row - 1
    If NbImportées > 0 Then
        For X = 2 To 2 + NbImportées
            msg = msg & ThisWorkbook.Sheets("Données").Cells(X, 1).Value & vbLf
        Next X
        deja.ListBox1.RowSource = "=tabimport"
        deja.Show
        deja.Repaint
        If deja.Tag = "oui" Then Ecraser = True Else Ecraser = False
    End If
    
'Compte les fichiers
    For Each f1 In fso.GetFolder(monrepertoire).SubFolders
        nbfich = nbfich + f1.Files.Count
        For Each f2 In f1.Files
            If f2.Name Like "FICHE -*" Then Else nbfich = nbfich - 1
        Next
    Next f1
    If Ecraser = True Then nbfich = nbfich Else nbfich = nbfich - NbImportées
    If nbfich = 0 Then GoTo Finir

'Nettoie les données précédentes
    If Ecraser <> False Then Call Initialiser
    
    
'BOUCLE SUR LES FICHIERS "Fiches -*" _________________________
    Dim i As Integer
    i = 1
    numfich = 1
    
    For Each f1 In fso.GetFolder(monrepertoire).SubFolders
        For Each f2 In f1.Files
            If f2.Name Like "FICHE -*" Then
                If Ecraser = False Then
                    For X = 2 To 2 + NbImportées
                        If ThisWorkbook.Sheets("Données").Cells(X, 1).Value Like f2.Name Then GoTo PasserFichier
                    Next X
                End If
                    numfich = numfich + 1
                Call RecupInfosFiches(Folder:=f2.Path, Nom:=f2.Name, X:=i) '>>>>>>>>>   APPEL A LA FONCTION RecupInfoFiches
                i = i + 1
            ThisWorkbook.Sheets("Données").Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Value = f2.Name
            End If
PasserFichier:
        Next f2
    Next f1
    

Finir:
    If nbfich = 0 Then MsgBox ("Aucun nouveau fichier n'a été trouvé")
    
End Sub

Voici le code de la fonction "RecupInfosFiches"

Code:
Function RecupInfosFiches(Folder As Variant, Nom As Variant, X As Integer)

    'Fichier excel "Fiche - *"
    Dim Fi As Workbook
    Dim Fiche As Worksheet
    
    'Fichier excel "Bilan"
    Dim Bilans As Workbook
    Dim Données As Worksheet
    
    Set Bilans = ThisWorkbook
    Set Données = Worksheets("Données")
    
    Dim i As Integer
    Dim j As Integer
    
    i = 2
    j = 1
    
    Workbooks.Open Filename:=Folder
    Set Fi = Workbooks(Nom)
    With Fi
        Set Fiche = Worksheets("Fiche")
    End With

    Bilans.DonnéesFC.Cells(i, j) = Fiche.Cells(11, 4)
    
    i = i + 1
    j = j + 1

End Function

Mon erreur : Propriété ou méthode non gérée par cet objet
>>> Impossible de trouver la bonne syntaxe !

Si jamais mon explication n'est pas très claire, j'ai des fichiers exemples à vous transmettre.
Merci d'avance pour votre aide.
 

Discussions similaires

Réponses
4
Affichages
418

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
314 628
Messages
2 111 337
Membres
111 104
dernier inscrit
JEMADA