Récupération de données nommée dans plusieurs fichiers

whynot_93

XLDnaute Nouveau
Bonjour à tous,

Je me remets peu à peu au langage VBA et j'ai encore quelques difficultés à faire fonctionner certaines parties de mon code pour la partie facturation de notre petite entreprise.
J''en appelle donc à votre expertise :cool:

Pour vous résumer, j'ai commencé par créer un modèle de fichier .xlsm avec un onglet RECAP et un autre onglet de modèle facture (il est prévu un fichier Excel par affaire.
Chaque facture est basée sur le même modèle avec des plages nommées pour les champs particuliers : Nom_Client, Taux_TVA, Montant_TVA, Montant_HT, Montant_TTC, Date.
Dans mon onglet RECAP, des formules permettent de récupérer chaque information de facture pour les disposer dans le tableau RECAP, ce qui me permet d'avoir un état de facturation par affaire.
Ainsi, il suffit de dupliquer l'ancienne facture pour que les différents champs s'ajoutent automatiquement dans le tableau.

Jusqu'ici tout va bien :)

Maintenant je voudrais créer un tableau RECAP dans un fichier Excel autre de l'ensemble des factures que je trouve dans le dossier où je me trouve.
J'ai donc entrepris de lancer une boucle Dir qui va me scanner l'ensemble des fichiers du dossier et pour chaque fichier, je veux qu'il scanne les divers onglets (sauf RECAP) et me ressorte les infos.

Par la suite, il faudra que je travaille sur les filtres de mon fichier RECAP pour que je puisse trier les factures par Mois-Année et qu'elles s'organisent automatiquement.

Voici une extraction de mon code actuellement qui bien évidemment ne fonctionne pas :( :
Code:
Sub CreationSynthese()
    ' Initialisation
    Dim DossierTrav As String
    Dim NomFichier As String
    Dim wb As Workbook
    Dim wb2 As Workbook
    Dim i As Byte
        
    Application.ScreenUpdating = False
    
    ' Définition des variables
    wb = ThisWorkbook.Name
    
    ' Effacement de la feuille
    [A6:Z60000].ClearContents
    
    'Répertoire de Travail
    'DossierTrav = ThisWorkbook.Path
    
    'Liste des fichiers .xlsm*
    NomFichier = Dir("*.xlsm*")
        
    ' Ouverture des fichiers :
    Do While Len(NomFichier) > 0
    Workbooks.Open (NomFichier)
    wb2 = ActiveWorkbook.Name
    
    'Copie des données
    ligne = 6
    For i = 1 To Worksheets.Count
        If UCase(Sheets(i).Name) <> "RECAP" Then
            
            wb.Range("A & ligne") = wb2.Sheets(i).Name
            wb.Range("B & ligne") = wb2.[Affaire]
            
        End If
    Next
    
    'Fermer le fichier
    wb2.Close False
    ligne = ligne + 1
 
Loop
Application.ScreenUpdating = True

End Sub
 

Discussions similaires

Statistiques des forums

Discussions
312 098
Messages
2 085 265
Membres
102 844
dernier inscrit
atori2