Bonjour le forum,
Après plus 72 heures de recherches infructueuses je viens solliciter votre aide.
Mon problème est le suivant je dispose d'un dossier nommé "Contenant" dans lequel j'ai un fichier Rapport.xlsm et 5 fichiers xls dont les noms débutent par "FONC_" ( FONC_01, FONC_02...) et chaque fichier FONC_"i" contient une feuille nommé "Source".
Je souhaite donc copier le contenu de chaque feuille "source" des fichiers FONC_"i" afin de le coller à chaque fois sur la feuille "Destination" du fichier Rapport.xlsm
Le code que j'ai concoté est le suivant :
	
	
	
	
	
		
	
	
	
	
	
		
Quand je lance ma procédure Execution j'ai le message d'erreur :
[
	
		
et le Débogage me place sur cette ligne-ci:
	
		
Quelqu'un aurait-il une piste ou une solution à me proposer,
Merci par avance.
Salutations.
	
		
			
		
		
	
				
			Après plus 72 heures de recherches infructueuses je viens solliciter votre aide.
Mon problème est le suivant je dispose d'un dossier nommé "Contenant" dans lequel j'ai un fichier Rapport.xlsm et 5 fichiers xls dont les noms débutent par "FONC_" ( FONC_01, FONC_02...) et chaque fichier FONC_"i" contient une feuille nommé "Source".
Je souhaite donc copier le contenu de chaque feuille "source" des fichiers FONC_"i" afin de le coller à chaque fois sur la feuille "Destination" du fichier Rapport.xlsm
Le code que j'ai concoté est le suivant :
		Code:
	
	
	Sub Jetraite(Repertoire As String)
    
    Dim Fso As Scripting.FileSystemObject
    Dim SourceFolder As Scripting.Folder
    Dim SubFolder As Scripting.Folder
    Dim FileItem As Scripting.file
    Dim Dlig As Long
    Dim Dcol As Long
    Dim D As Range
    
       
    Set Fso = CreateObject("Scripting.FileSystemObject")
    Set SourceFolder = Fso.GetFolder(Repertoire)
 
    
    'Boucle sur tous les fichiers du répertoire
    For Each FileItem In SourceFolder.Files
                
        
        
        If (InStr(1, FileItem.Name, "FONC") > 0) Then
                
            Workbooks.Open (FileItem.ParentFolder & "\" & FileItem.Name)
            
            With Sheets("Source")
                'Dernière ligne non vide de la feuille "Source"
                 Dlig = Range("A" & Rows.Count).End(xlUp).Row
                'Dernière colonne non vide de la feuille "Source"
                 Dcol = Cells(1, Cells.Columns.Count).End(xlToLeft).Column
                'Plage à copier
                .Range("A1", Cells(Dlig, Dcol)).Select
                Selection.Copy
            End With
                      
            'On se replace sur la le fichier courant
            ThisWorkbook.Activate
            With Sheets("Destination")
                 'On effacee toutes les cellules de la feuille "Destination"
                 Cells.ClearContents
                 .Range(Cells(1, 1), Cells(Dlig, Dcol)).Select
                  Selection.Paste
            End With
            'On enregistre le fichier courant
            ThisWorkbook.Save
            
            'On revient sur le fichier  parcouru  qu'on ferme sans enregistrer
            Windows(FileItem.Name).Activate
            ActiveWorkbook.Close savechanges:=False
       End If
    
    
    Next FileItem
    Application.Quit
End Sub
	
		Code:
	
	
	Sub Execution()
Dim dossiers As String
dossiers = "D:\Contenant\"
Jetraite (dossiers)
End Sub
	Quand je lance ma procédure Execution j'ai le message d'erreur :
[
		Code:
	
	
	Erreur d'éxécution '438': 
Propriété ou méthode non gérée par cet objet
	et le Débogage me place sur cette ligne-ci:
		Code:
	
	
	Selection.Paste
	Quelqu'un aurait-il une piste ou une solution à me proposer,
Merci par avance.
Salutations.
			
				Dernière édition: