[Résolu]Récupérer valeur de plusieurs cellules et feuilles depuis plusieurs classeurs

Kreg

XLDnaute Nouveau
Bonjour ici !

Pour un besoin de reporting tout bête, je planche sur un vba basé sur un exemple du forum.

Mon besoin : Récupérer le contenu des cellules C2/D2/E2/F2 des feuilles "portables" et "fixes" depuis une 100ène de fichier XLSX.
Et coller le tout dans un fichier "recap" vers les cellules A1/B1/C1/D1 de la feuille "SN".

J'ai essayé quelque le code ci-dessous, mais il ne ce passe rien...

Code:
Sub Transferer()
Dim dossier As Object, Fichier As Object, Chemin As String, Lg As Integer
Application.ScreenUpdating = False
Application.DisplayAlerts = True

Chemin = ThisWorkbook.Path
FName = Dir(Chemin & "\" & "*.xlsx")
Set dossier = CreateObject("Scripting.FileSystemObject").GetFolder(Chemin)
Lg = 10

For Each Fichier In dossier.Files
NomFichier = Fichier.Name
If Not Fichier.Name = "RECUP.XLSM" Then
Workbooks.Open Filename:=Chemin & "/" & NomFichier

On Error Resume Next
        
With Workbooks(NomFichier)
.Sheets("portables").Range("C2").Copy ThisWorkbook.Sheets("SN").Range("A" & Lg)
.Sheets("portables").Range("D2").Copy ThisWorkbook.Sheets("SN").Range("B" & Lg)
.Sheets("portables").Range("E2").Copy ThisWorkbook.Sheets("SN").Range("C" & Lg)
.Sheets("portables").Range("F2").Copy ThisWorkbook.Sheets("SN").Range("C" & Lg)
.Sheets("fixes").Range("C2").Copy ThisWorkbook.Sheets("SN").Range("A" & Lg)
.Sheets("fixes").Range("D2").Copy ThisWorkbook.Sheets("SN").Range("B" & Lg)
.Sheets("fixes").Range("E2").Copy ThisWorkbook.Sheets("SN").Range("C" & Lg)
.Sheets("fixes").Range("F2").Copy ThisWorkbook.Sheets("SN").Range("C" & Lg)

.Close

Lg = Lg + 1

End With
End If

Next

End Sub

Une idée ? :)

Merki!
 
Dernière édition:

Pierrot93

XLDnaute Barbatruc
Re : Récupérer valeur de plusieurs cellules et feuilles depuis plusieurs classeurs

Bonsoir,

commence peut être déjà par enlever cette instruction qui ne fait que paaser à l'instruction suivante si erreur :
Code:
On Error Resume Next

ensuite execute ton code pas à pas, utilisation de la touche de fonction F8 dans l'éditeur vba, et vois ce qui se passe....

bonne soirée
@+
 

Kreg

XLDnaute Nouveau
Re : Récupérer valeur de plusieurs cellules et feuilles depuis plusieurs classeurs

Hello !

En mode débogage il arrive sur la ligne suivante, et s'arrête :(
Code:
Workbooks.Open Filename:=Chemin & "\" & NomFichier

Je creuse!

NB : J'ai enlevé le "On Error Resume Next"
 

Pierrot93

XLDnaute Barbatruc
Re : Récupérer valeur de plusieurs cellules et feuilles depuis plusieurs classeurs

Bonjour,

Véérifie bien ce que contiennent ces variables et si la concaténation de tout ca correspond bien à un nom de fichier valide....
Code:
Chemin & "\" & NomFichier

bonne journée
@+
 

ChTi160

XLDnaute Barbatruc
Re : Récupérer valeur de plusieurs cellules et feuilles depuis plusieurs classeurs

Bonjour Kreg
Bonjour le fil
Bonjour le Forum

une idée comme une autre lol !!!!
peut être en déclarant les variables NomFichier et FName

Code vb:
Dim FName As Object
Dim NomFichier As string





à tester avec Option Explicit
Bonne journée
Amicalement
Jean marie
 
Dernière édition:

Kreg

XLDnaute Nouveau
Re : Récupérer valeur de plusieurs cellules et feuilles depuis plusieurs classeurs

Bonjour Kreg
Bonjour le fil
Bonjour le Forum

une idée comme une autre lol !!!!
peut être en déclarant les variables NomFichier et FName

Code vb:
Dim FName As Object
Dim NomFichier As string




à tester avec Option Explicit
Bonne journée
Amicalement
Jean marie

Bonjour et merci pour ta réponse !

Maintenant au moins j'ai une erreur :
"erreur d'exécution 91
Varaible objet, ou variable de bloc With non définie"

Ca avance :)
 

Pierrot93

XLDnaute Barbatruc
Re : Récupérer valeur de plusieurs cellules et feuilles depuis plusieurs classeurs

Re, bonjour Jean-Marie:)

si tu déclares "FName" comme "object" il y a lieu de faire précéder d'un "set" son initialisation :

Code:
Set FName = Dir(Chemin & "\" & "*.xlsx")

par contre je ne vois pas trop l'utilité de cette variable, à priori elle n'est pas utilisée dans la suite du code...

bon après midi
@+
 

Kreg

XLDnaute Nouveau
Re : Récupérer valeur de plusieurs cellules et feuilles depuis plusieurs classeurs

Bonjour à tous,

Désolé mais je ne m'en sort toujours pas... Maintenant j'obtiens une erreur 91
Je pense avoir suivi vos conseils, nettoyé mon code. Toujours pareil.
Du coup j'ai uploadé un exemple simple, si vous trouvez une coquille :)

Download multiple files from Sendspace.com - send big files the easy way

2 fichiers xlsx contenant mes données
1 fichier xlsm "recup.xlsm" fichier qui censé récupéré mes données de mes 2 fichiers xlsx...

Merci :)
 

Kreg

XLDnaute Nouveau
Re : Récupérer valeur de plusieurs cellules et feuilles depuis plusieurs classeurs

Problème résolu.
Voici pour info à quoi ressemble la macro :

Code:
Option Explicit

Sub Transferer()
Dim Chemin As String, NomFichier As String
Dim Dest As Range
Dim Lg As Long

  Application.ScreenUpdating = False

  Chemin = ThisWorkbook.Path
  Set Dest = Worksheets("SN").Range("A10:D10")

  Lg = 10
  NomFichier = Dir(Chemin & "\" & "*.xlsx")
  Do While NomFichier <> ""
    If Not NomFichier = ThisWorkbook.Name Then
      With Workbooks.Open(Filename:=Chemin & "\" & NomFichier)
        Lg = Lg + 1
        .Sheets("HKN portables").Range("C2:F2").Copy Dest.Rows(Lg)
        .Sheets("HKN UC").Range("C2:F2").Copy Dest.Rows(Lg).Offset(, Dest.Columns.Count + 1)
        .Close
      End With
    End If
    NomFichier = Dir
  Loop
End Sub
 

Discussions similaires

Réponses
4
Affichages
522
Réponses
1
Affichages
1 K

Statistiques des forums

Discussions
312 108
Messages
2 085 363
Membres
102 874
dernier inscrit
Petro2611