Copier la valeur d'un fichier pour la coller dans celui de travail (actif)

Bonjour tout le monde,

Ca fait un petit moment que je bloque sur une erreur et je n'arrive pas à trouver la source du problème.

Objectif :

L'objectif de ma macro à pour but de parcourir tous les dossiers d'un chemin qui est présent en cellule "F1". Une fois dans le dossier je recherche le fichier "*.xlsx" et je récupère la valeur de la cellule "N1" dans l'onglet "PV_Ouvert" que je copie et que je souhaiterais coller dans mon fichier de travail dans la feuille "Resultats".

Le problème à l'air simple or j'obtiens l'erreur 1004 :

Erreur définie par l'application ou par l'objet

Voici mon code :

Sub Consolider_Simu()
    Dim S_Commande As Worksheet
    Dim Chemin As String
    Dim Extension As String
    Dim Nb As Integer

    Set S_Commande = ThisWorkbook.Sheets("Resultats")
    Chemin = S_Commande.[F1]
    Extension = "*.xlsx"
    i = 2

    Nb = BoucleFichiers(Chemin, Extension)
    MsgBox Nb & " fichier(s) copié(s)"

End Sub

Function BoucleFichiers(Chemin As String, Extension As String) As Integer
    Dim Fso As Object
    Dim Dossier As Object
    Dim Fichier As Object
    Dim WB_TargetFichier As Workbook
    Dim TargetSheet As Worksheet
    Dim MainSheet As Worksheet

    Set Fso = CreateObject("Scripting.FileSystemObject")
    Set MainSheet = ThisWorkbook.Sheets("Resultats")

    For Each Dossier In Fso.GetFolder(Chemin).SubFolders
        For Each Fichier In Dossier.Files

            If Fichier.Name Like Extension Then
                Application.ScreenUpdating = False

                Set WB_TargetFichier = Workbooks.Open(Fichier)
                Set TargetSheet = WB_TargetFichier.Sheets("PV_Ouvert")

                TargetSheet.Activate
                Range("N1").Select
                Selection.Copy
                MainSheet.Activate
                Range(Cells(i, 1), Cells(i, 2)).Select
                Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
                    False, Transpose:=True

                'TargetSheet.Range("K4").Copy
                'Worksheets("PV_Ouvert").Cells(i, 2).PasteSpecial Paste:=xlPasteFormats

                'TargetSheet.Range("N37").Copy
                'Worksheets("PV_Ouvert").Cells(i, 3).PasteSpecial Paste:=xlPasteFormats

                Application.CutCopyMode = False
                i = i + 2
                BoucleFichiers = BoucleFichiers + 1

                WB_TargetFichier.Close savechanges:=False

            End If

        Next Fichier
    Next Dossier
End Function

L'erreur apparaît toujours sur la ligne :

Range(Cells(i, 1), Cells(i, 2)).Select

Tous les fichiers de tous les dossiers sont bien exécutés, la valeur se copie mais ne vient pas se coller quand j'utilise l'incrémentation avec i. SI j'utilise Range("A2") par exemple cela fonctionne.

Merci d'avance pour votre retour

cordialement,

Bonjour, Essaie en mettant :

                ThisWorkbook.Activate
                MainSheet.Activate
                Range(Cells(i, 1), Cells(i, 2)).Select

Daniel

Bonjour,

Outre les Select à éviter, je doute fort que la variable i (non déclarée dans ton post) soit reportée dans la fonction.

Donc Cell(i,1) correspond à la ligne 0...

définis i dans la fonction et affecte lui une valeur au tout début, peut-être?

Bonjour,

Super je vous remercie, DanielC le problème venait bien de là :)

Marty

Rechercher des sujets similaires à "copier valeur fichier coller celui travail actif"