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

[Resolu] Récupération données dans classeurs fermés

  • Initiateur de la discussion Initiateur de la discussion Bearn 64
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Bearn 64

XLDnaute Occasionnel
Bonjour le Forum


J'ai fait fonctionner une macro qui récupère des données des plusieurs autres feuilles fermées.

1) Petit pb la zone B23:C47 ne récupère que de B24:C47

2) Comment récupérer les cellules K48, K49, K50, K51 et K53 ou la plage J48:K53


Merci de votre avis
 

Pièces jointes

Dernière édition:
Re : Récupération données dans classeurs fermés

Bonjour,

Ta macro en retour.
Dans tes factures s'il n'ya pas d'accompte, il y a dans récup une ligne vide avant le Total TTC.
Pour éviter cela déplacer le mot Accompte dans les facture, d'une cellule vers la droite.

Pour les histoires de ligne 23 manquante, il suffit de mettre le paramètre HDR de la connexionString à No.
C'est d'autant mieux que la deuxième plage J48:k53 n'a pas d'en-tête.

Code:
Sub cumul_factures()
    ' Récupérer le contenu de classeurs fermés sans les ouvrir
    ' --------------------------------------------------------
    Dim Cn As ADODB.Connection    ' Définir une variable ADODB Connection
    Dim Rst As ADODB.Recordset    ' Pour accueillir un RecordSet
    Dim req_SQL As String    ' Contiendra la Requête SQL
    Dim Fichier As String    ' Nom du fichier (classeur)
    Dim chem_fichier As String    ' Chemin + nom du fichier
    Dim Onglet As String    ' Nom de la feuille à traiter
    Dim chemin As String    ' Chemin d'accès aux fichiers à traiter
    'chemin d'accès aux fichiers à traiter
    chemin = "G:\factures\"
    'Définir le premier classeur à traiter
    Fichier = Dir(chemin & "M*.xls")    ' Pointer les fichiers f*.xls et f*.xlsx
    chem_fichier = chemin & Fichier
    'Nom de la feuille à traiter dans le classeur fermé
    Onglet = "Facture"
    'Boucler tant qu'il y a des fichiers f*.xls ou f*.xlsx
    While Fichier <> ""
        Set Cn = New ADODB.Connection    ' Créer une nouvelle instance
        ' --- Connexion à la source (pour nous, un classeur)
        With Cn
            .Provider = "Microsoft.Jet.OLEDB.4.0"
            .ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" _
                                & chem_fichier & ";Extended Properties=""Excel 12.0;HDR=no;"""
            .Open
        End With
        ' --- Fin Connexion
        ' >>>>> Attention, ne pas oublier le symbole $ après le nom de la feuille.
        
           plage = "B23:C47"
        req_SQL = "SELECT * FROM [" & Onglet & "$" & plage & "]"
        Set Rst = New ADODB.Recordset    ' Récupérer un ensemble d'enreg.
        Set Rst = Cn.Execute(req_SQL)    ' Exécuter la requête SQL
        'Cumuler le montant de chaque facture
        ThisWorkbook.Sheets("Recup").Cells(Rows.Count, 1).End(xlUp)(2).CopyFromRecordset Rst
        
        Rst.Close
        Set Rst = Nothing
        Set Rst = New ADODB.Recordset
        
        'Récupération de la plage des totaux
        plage = "J48:K53"
        req_SQL = "SELECT * FROM [" & Onglet & "$" & plage & "]"
        Set Rst = Cn.Execute(req_SQL)
        
        ThisWorkbook.Sheets("Recup").Cells(Rows.Count, 1).End(xlUp)(2).CopyFromRecordset Rst
        Rst.Close
        Set Rst = Nothing
        
        '--- Fermeture de la connexion ---
        Cn.Close
        Set Cn = Nothing    ' Libérer la ressource
        plage = ""
        Fichier = Dir    ' Nom du Classeur suivant
        chem_fichier = chemin & Fichier
    Wend
End Sub
A+
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

N
Réponses
17
Affichages
3 K
ninajams
N
M
Réponses
5
Affichages
1 K
mathiouze22
M
B
Réponses
6
Affichages
2 K
beann
B
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…