Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

[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 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
544
Réponses
1
Affichages
1 K
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…