Extraire le nb de lignes de differents fichiers
Résolu
Mag13180
Messages postés
23
Date d'inscription
Statut
Membre
Dernière intervention
-
Mag13180 Messages postés 23 Date d'inscription Statut Membre Dernière intervention -
Mag13180 Messages postés 23 Date d'inscription Statut Membre Dernière intervention -
Bonjour à tous
Je sollicite votre aide pour construire une boucle et récupérer des données.
j'ai une macro "EXTRAIRE" qui me liste le chemin et le nom de différents fichiers excel de structures identiques.
en colonne A j'ai extrait le chemin des fichiers
en colonne B j'ai extrait le nom des fichiers
tout cela sur une feuille nommée "shfichiers"
je voudrais reporter en colonne C le nombre de lignes non vides de chaque fichier présent en colonne b (la feuille concernée par le comptage des lignes s'appelle "base" dans tous les fichiers)
je joins un fichier démo en support
merci pour les pistes que vous pourriez me fournir
Mag
http://www.cjoint.com/c/FBzom1zru5C
Je sollicite votre aide pour construire une boucle et récupérer des données.
j'ai une macro "EXTRAIRE" qui me liste le chemin et le nom de différents fichiers excel de structures identiques.
en colonne A j'ai extrait le chemin des fichiers
en colonne B j'ai extrait le nom des fichiers
tout cela sur une feuille nommée "shfichiers"
je voudrais reporter en colonne C le nombre de lignes non vides de chaque fichier présent en colonne b (la feuille concernée par le comptage des lignes s'appelle "base" dans tous les fichiers)
je joins un fichier démo en support
merci pour les pistes que vous pourriez me fournir
Mag
http://www.cjoint.com/c/FBzom1zru5C
A voir également:
- Comment s'appelle la memoire volatile pix
- Extraire une video youtube - Guide
- Extraire le son d'une vidéo - Guide
- Partage de photos en ligne - Guide
- Explorateur de fichiers - Guide
- Impossible de supprimer un fichier - Guide
2 réponses
Re,
En attendant:
En attendant:
Sub Lire_Fichier_Ferme() Dim P As Long, Fichier As String, Chemin As String, PL As Long Dim Cnn As Object, RsL As Object Dim TLigne() With Worksheets("SHFICHIERS") Plage = .Range("A1:B" & .Range("A" & Rows.Count).End(xlUp).Row) 'mise en memoire Plage de cellules End With Nb1 = UBound(Plage, 1): PL = -1: ReDim TLigne(Nb1 + 1) For P = 1 To Nb1 'boucle sur colonne A et B pour repertoire et fichier Chemin = Plage(P, 1) Fichier = Plage(P, 2) Set Cnn = CreateObject("ADODB.Connection") Set RsL = CreateObject("ADODB.Recordset") With Cnn .ConnectionString = "Driver={Microsoft Excel Driver (*.xls, *.xlsx, *.xlsm, *.xlsb)};DBQ=" & Chemin & "\" & Fichier & ";ReadOnly=true;" .Open End With Set RsL = Cnn.Execute("SELECT count(*) as nb FROM [Base$]") PL = PL + 1 TLigne(PL) = RsL("nb") 'mettre +1 si pas d'entete Cnn.Close Set RsL = Nothing Set Cnn = Nothing Next P Worksheets("SHFICHIERS").Range("C1").Resize(Nb1 + 1) = Application.Transpose(TLigne) End Sub
bonsoir,
tout d'abord merci pour votre aide.
les Feuilles Bases des différents fichiers ont des entêtes en ligne 1.
J'ai essayé votre code, il me sort un message d'erreur :
erreur d'execution '-214767259 (80004005)':
[Microsoft][pilote ODCB Excel]Erreur générale Impossible d'ouvrir la clé de Registre <<Temporary 'volatile) Ace DSN for process 0x2ec Thread 0x1184DBC 0x1653cfdc Excel>>
Je pense qu'il doit me manquer une référence vba mais je n'arrive pas à trouver laquelle.
je continue à chercher
bonne soirée
Mag
tout d'abord merci pour votre aide.
les Feuilles Bases des différents fichiers ont des entêtes en ligne 1.
J'ai essayé votre code, il me sort un message d'erreur :
erreur d'execution '-214767259 (80004005)':
[Microsoft][pilote ODCB Excel]Erreur générale Impossible d'ouvrir la clé de Registre <<Temporary 'volatile) Ace DSN for process 0x2ec Thread 0x1184DBC 0x1653cfdc Excel>>
Je pense qu'il doit me manquer une référence vba mais je n'arrive pas à trouver laquelle.
je continue à chercher
bonne soirée
Mag
oui
c'est sur
.open
remarque : avant de buter sur
. open
lorsque je passe la souris sur Set Cnn = CreateObject("ADODB.Connection") il reconnais bien Cnn= driver ...
lorsque je passe la souris sur Set RsL = CreateObject("ADODB.Recordset")
il ne reconnait rien sur Rsl
je ne sais pas si ça peux vous aider ...
c'est sur
.open
remarque : avant de buter sur
. open
lorsque je passe la souris sur Set Cnn = CreateObject("ADODB.Connection") il reconnais bien Cnn= driver ...
lorsque je passe la souris sur Set RsL = CreateObject("ADODB.Recordset")
il ne reconnait rien sur Rsl
je ne sais pas si ça peux vous aider ...